2012-04-05 11 views
1

私は、ボタンをクリックすることができる宝くじタイプのゲームを作成しています。そして、彼らはコインの無作為な量を得ることができます(大量は希少で、少額は普通です)。ある種の宝くじゲームを作成する

これまで考えていたのは配列ですが、これを行うためのより効率的な方法はありますか?

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

あなたが正確な報酬を指定したい場合は、配列は問題ありません。 –

+0

あなたは['Collections#shuffle()'](http://docs.oracle.com/javase/6/docs/api/java/util/Collections.html#shuffle(java.util.List))です探している? –

+0

@ Eng.Fouad: 'shuffle()'は繰り返しのない一様な配布に適しています。これは明らかにここには当てはまりません – amit

答えて

1

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

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

ここでの合計重量は91としてカウントできます。賞を授与するには、1-91の乱数を選択します。次に、加重された範囲内のどこに座っているかを見つけます(たとえば、数値から各段階の重みを減算して負の値になるまで)。

ここで注意して、1つ1つの間違いや徹底的なテストを行ってください。

関連する問題