プレイヤーがボタンをクリックすると、ランダムな量のコインを獲得できる宝くじタイプのゲームを作成しています(高額はまれで、低額は一般的です)。
これまでのところ、私が考えることができるのは配列だけですが、これを行うためのより効率的な方法はありますか?
private static final int[] REWARDS = {10, 25, 50, 100, 250, 500, 1000};
プレイヤーがボタンをクリックすると、ランダムな量のコインを獲得できる宝くじタイプのゲームを作成しています(高額はまれで、低額は一般的です)。
これまでのところ、私が考えることができるのは配列だけですが、これを行うためのより効率的な方法はありますか?
private static final int[] REWARDS = {10, 25, 50, 100, 250, 500, 1000};
おそらく、加重確率モデルが必要です。例えば
Prize : Weight
---------------
$10 : 50
$25 : 20
$50 : 10
$100 : 5
$250 : 3
$500 : 2
$1000 : 1
ここでの合計重量は 91 と数えることができます。したがって、賞品を授与するには、1 ~ 91 から乱数を選択します。次に、重み付けされた範囲内のどこに位置するかを見つけます (たとえば、数値がマイナスになるまで、数値から各階層の重みを差し引くことによって)。
ただし、ここではオフバイワン エラーに注意し、徹底的にテストしてください。