1

イベントA、B、Cが発生する相対的な確率がある場合。

つまり、P(A)= 0.45、P(B)= 0.35、P(C)= 0.20、

0から1までの乱数ジェネレーターを使用してこれを表すにはどうすればよいですか?

つまり、R = rand(0,1)

if (R < 0.45)
   event A

else if(R < 0.35)
  event B

else if(R < 0.20)
  event C

上記は2つのイベントA、Bで機能しますが、重複しているため、3つ以上では上記は間違っていると思います。

これは明らかに非常に単純な質問であり、答えはすぐに明らかになるはずですが、私はそれを見るにはあまりにも愚かです。

4

2 に答える 2

5

確率を一緒に追加する必要があります。明示的なif/thenステートメントを示していますが、ループのある配列の確率を使用してこれを行うのは簡単なので、非常に動的にすることができます。順序は重要ではないことに注意してください。

if (R < 0.45)
   event A

else if(R < 0.45 + 0.35) // R < 0.80
  event B

else // (R must necessarily be < 0.45 + 0.35 + 0.20, or 1) 
  event C
于 2012-06-09T04:39:19.543 に答える
3

以下の条件が必要です。

if(R < 0.45)
    Event A
else if(R < 0.80)
    Event B
else
    Event C
于 2012-06-09T04:40:36.707 に答える