0

プレイヤーがボタンをクリックすると、ランダムな量のコインを獲得できる宝くじタイプのゲームを作成しています(高額はまれで、低額は一般的です)。

これまでのところ、私が考えることができるのは配列だけですが、これを行うためのより効率的な方法はありますか?

private static final int[] REWARDS = {10, 25, 50, 100, 250, 500, 1000};
4

1 に答える 1

1

おそらく、加重確率モデルが必要です。例えば

Prize : Weight
---------------    
$10 : 50
$25 : 20
$50 : 10
$100 : 5
$250 : 3
$500 : 2
$1000 : 1

ここでの合計重量は 91 と数えることができます。したがって、賞品を授与するには、1 ~ 91 から乱数を選択します。次に、重み付けされた範囲内のどこに位置するかを見つけます (たとえば、数値がマイナスになるまで、数値から各階層の重みを差し引くことによって)。

ただし、ここではオフバイワン エラーに注意し、徹底的にテストしてください。

于 2012-04-05T06:33:12.060 に答える