如何使用随机添加1/100的几率

时间:2014-12-12 22:16:09

标签: java random

我试图做到这一点,所以我的游戏有1/100的机会获得重击。我不确定这是怎么做到的。我很确定这不起作用:

criticalChance = crit.nextInt(1)/100;

我该如何做到这一点?

4 个答案:

答案 0 :(得分:3)

您可以使用

if (Math.random() > 0.99) {
    System.out.println("You have hit the 1 % chance!");
}

Math.random()返回在单位间隔[0,1]中均匀分布的double,因此它将大于0.99,概率为1%。

答案 1 :(得分:1)

执行(crit.nextInt(100)),然后使用if检查随机数是否为50,例如。

答案 2 :(得分:1)

nextInt(int)方法返回0之间的整数,包括整数,不包括整数。在您的情况下,它将返回0,包括{和1之间的整数,不包括。这意味着总是0。

如果你想处理概率,那么你可以使用nextDouble()代替nextInt(int),这会返回0.01.0之间的数字。然后你会看到这个数字是否小于概率。在您的情况下,1%(= 0.01),它应该是:

if(crit.nextDouble() < 0.01) //will happen 1% of the time

希望有所帮助

答案 3 :(得分:0)

使用Random类并使用它生成一个浮点数。它将是介于0.0和1.0之间的数字。所以要有百分之一的机会,检查它是否小于1/100 == 0.01。

Random crit = new Random();
boolean isCriticalHit = crit.nextFloat() < 0.01;