- ベストアンサー
VBAで偏りのある乱数を出したい場合
質問が的外れだったらすみません ExcelのVBAで、たとえば1から5の数字をランダムで出す時 2の出る確率を他より高くする方法はありますでしょうか? 宜しくお願いします
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
昔、Accessでやった場合はこんな感じ。参考になるかな? Function omikuji() '大凶5、凶10、小吉30、末吉25、吉20、大吉10 の比率 Dim mikuji As Single Randomize omikuji = Int((100 * Rnd) + 1) Select Case omikuji Case Is > 95 Forms!Fおみくじ!おみくじ = "大凶" Case Is > 85 Forms!Fおみくじ!おみくじ = "凶" Case Is > 55 Forms!Fおみくじ!おみくじ = "小吉" Case Is > 30 Forms!Fおみくじ!おみくじ = "末吉" Case Is > 10 Forms!Fおみくじ!おみくじ = "吉" Case Is > 0 Forms!Fおみくじ!おみくじ = "大吉" End Select End Function
その他の回答 (2)
乱数の発生と別に表をつくります。 乱数側で発生した数字に対応するVLOOKUP関数にて、 表から1~5までの数値を拾います。 発生する乱数は100でも200でもOK。 表の2の割合を多くする。 ・・説明下手&的はずれ?
お礼
参考になりました 有難うございました
- Xaval
- ベストアンサー率58% (61/105)
確率自体にウェイトをおけばよいのでは? 1,2,3,4,5の比率をそれぞれ10,20,10,10,10 にしたければ、(合計が60であるのを考慮して) MAX 60のランダムな数値nが 0/60 < n < 9/60 なら1 10/60 < n < 29/60 なら2 30/60 < n < 39/60 なら3 : など
お礼
参考になりました 有難うございます
お礼
参考になりました 有難うございます