人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

プログラムのアルゴリズムで質問です。
よく、ゲームとかで

90%で2位の可能性と、80%で3位の可能性などと
合計が100%オーバーしている場合がありますが
この場合の抽選は、どの様に行えば良いのでしょうか?

現状は、ランダム値が80%以上を出した場合は、2位と3位のどちらかを
1/2で抽選するようにしてますが
他に方法ってありますか?


●質問者: makocan
●カテゴリ:インターネット ウェブ制作
✍キーワード:アルゴリズム オーバー ゲーム プログラム ランダム
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● azuco1975
●35ポイント

90/(90+80)-2位の確率

80/(90+80)-3位の確率

http://q.hatena.ne.jp/answer


2 ● ana_log
●35ポイント

今行っている処理

80%の値が出たら50%の確率で2位となるので

8/10*1/2=8/20

80%の値が出たら50%の確率で3位となるので

8/10*1/2=8/20

残りの20%の値が出たらはずれ?となるので

2/10

この割合でいいのですか?

それなら単純に0?3→2位、4?7→3位、8,9→はずれにしたらよいのでは


割合として100%を超えているので思ったような動作にはならないかもしれませんが

if(乱数 <= 90) {

2位

} else if(乱数2 <= 80) {

3位

} else {

はずれ

}

Cもどき

と上位確率からはじいていくか、100%の割合に変換するかでしょうか

上位確率からはじくとはずれ率が極端に低くなりますが「90%で2位なのになんでこんなに出ないの」となりますのでこちらのほうが正しい気がします

確率的には

90/100→2位

8/100→3位

2/100→はずれ

になります

これを乱数の閾値にします


ちなみに「90%で2位の可能性と、80%で3位の可能性?」なんて判定は見たことがありません

厳密にいえばまだほかに条件があるはずです

たとえば「90%で2位の可能性、はずれても80%で3位の可能性」のような

そもそも観測可能確率が100%を超えるなんておかしいですから

http://q.hatena.ne.jp/answer

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ