0

我怎样才能制作一段代码来偶然生成我的位图。我希望 bitmap1 有 50% 的机会,bitmap2 有 50% 的机会,bitmap3 有 20% 的机会。我可以就如何做到这一点获得一些建议吗?

我知道怎么做 550:

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

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

但如果我想再添加一个有 20% 几率生成的球,我不知道该怎么做。

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 回答