0

偶然にビットマップを生成するコードを作成するにはどうすればよいですか。ビットマップ1の確率は50%、ビットマップ2の確率は50%、ビットマップ3の確率は20%です。その方法についてアドバイスをいただけますか?

私は50のためにそれをする方法を知っています:

Random r = new Random();
int randBall = r.nextInt(2);

if (randBall == 0) {
   return Gball;
} else if (randBall == 1) {
   return Bball;
}

しかし、スポーンの可能性が20%のボールをもう1つ追加したい場合、その方法がわかりません。

4

3 に答える 3

3

java Random.nextInt(int)メソッドを使用できます。
電話nextInt(100);して使用する

int p1 = 30;
int p2 = 50;

if ( n < p1 )
   return GBall;
else if ( n >= p1 && n < p1 + p2 )
   return BBall;
else // n < 100, always holds
   return RBall;
于 2012-09-18T14:26:30.487 に答える
2

つまり、合計で120%になります:)。しかし、50/30/20の配布を意味する場合:

randBall = r.nextInt(10);
if (randBall < 5) return bitmap1;
else if (randBall < 8) return bitmap3;
else { return bitmap2; }
于 2012-09-18T14:27:30.393 に答える
2

浮動小数点数を使用します。

r = random number between 0.0 and 1.0    
if (r < 0.2) { do something with 20% probability)}
else if (r < 0.9) {do something with 70% probability}
else {do something with remaining 10% probability}
于 2012-09-18T14:30:17.497 に答える