在100次中调用方法1

时间:2011-12-03 22:23:46

标签: java android andengine

我需要在100个机会中调用一些功能。现在我正在使用以下代码,但它的调用次数通常超过1%。

int randomItem = (int)(Math.random()*100);
if (randomItem >= 90 && randomItem <= 100)
{
    // Do something ...
}

5 个答案:

答案 0 :(得分:5)

当随机数介于90和100之间时,你会添加精灵。这样就有10%的几率。只测试Math.random()是< 0.01

答案 1 :(得分:2)

你必须说if (Math.random() * 100 >= 99.0),或者只是没有缩放,if (Math.random() >= 0.99)或整数if (randomItem == 99)

Math.random()返回[0.0, 1.0)范围内的浮点数,因此100次为您提供范围[0.0, 100.0),转换为整数会得到{{1}范围内的整数}。

如果您不需要将其转换为其他任何内容,则可能无需转换为整数。

答案 2 :(得分:1)

你应该替换

randomItem >= 90 && randomItem <= 100

randomItem == 99

答案 3 :(得分:1)

现在你有1个10的机会。获得百分之一的机会这样做:

int chance = (int)(100*Math.random())
if (chance == 1) {
    //Code
}

答案 4 :(得分:0)

Math.Random会返回介于1和0之间的数字。要获得1%的几率,您希望代码看起来像这样:

Math.Random() <= 0.01

此外,nextDouble类的Random方法也以相同的方式使用。

r.nextDouble() < 0.01; //r is a instance of Random

这两种情况都会给你1%的机会。