HSPで、おみくじソフトを作っています。その運勢を出すのにrndを使っているのですが、0=10% 1=30% 2=10% 3=20%...のように、でる確率を指定したいのですが、どのように書けばよいでしょうか。

回答の条件
  • 1人50回まで
  • 登録:
  • 終了:2012/01/30 18:35:09

ベストアンサー

id:taknt No.1

回答回数13539ベストアンサー獲得回数1198

その確率は 何本に対してですか?

たとえば 10本に対して?
100本に対して?

とりあえず 100本分の配列を用意し、
それに 順に 値をセットしていきます。
それから その配列を順に 乱数で出た値の箇所と 交換して
かきまぜるようにします。

で おみくじを出すときは 配列の順に出せばいいだけです。

配列がなくなったら 再度 セットしなおせばいいでしょう。

その他の回答1件)

id:taknt No.1

回答回数13539ベストアンサー獲得回数1198ここでベストアンサー

その確率は 何本に対してですか?

たとえば 10本に対して?
100本に対して?

とりあえず 100本分の配列を用意し、
それに 順に 値をセットしていきます。
それから その配列を順に 乱数で出た値の箇所と 交換して
かきまぜるようにします。

で おみくじを出すときは 配列の順に出せばいいだけです。

配列がなくなったら 再度 セットしなおせばいいでしょう。

id:TransFreeBSD No.2

回答回数668ベストアンサー獲得回数268

例えばこういうグラフを想像してください
http://officeimg.vo.msecnd.net/ja-jp/files/160/390/ZA010224896.gif

|-0-|----1----|-2-|---3--|---4--|-5-|

すると0の範囲は0%~10%、1の範囲は10%~40%、2の範囲は40%~50%、……となります。
(正確には0%以上10%未満、10%以上40%未満……○%以上100%未満、となります)
全体で100ですからrnd(100)で得た数字が、このグラフのランダムな位置に当てはまります。
それがどの範囲なのかif文などで判定してください。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません