具有百分比机会的随机布尔生成器

时间:2014-09-29 22:06:38

标签: java

我正在尝试编写代码,我想使用Java已经拥有的Random类来设置等于true或false的东西,但结果会受到一定百分比的影响。

例如,我想创建一个随机生成的方法,如果有人生病了。如果服用维生素,则有20%的患病几率。如果不服用维生素,则有25%的病情。

我做了一些研究,我发现API中的Random类确实有一个随机的布尔方法,但是我应该使用它吗?如果是这样,我将如何实现我的机会百分比?

我知道我需要一个测试类来创建一个人物对象,我知道如何做到这一点,但这就是我所拥有的。不知道从哪里开始。

import java.util.Random;

public class SicknessTest {

    private boolean sickness;
    private boolean vitamin;

    public void takeVitamin()
    {
        vitamin = true;
    }

    public void getSick()
    {

    }

}

2 个答案:

答案 0 :(得分:2)

生成一个double并检查它是否大于您要比较的值。 nextDouble()返回0到1.0之间的值

Random rnd = new Random();

public void getSick()
{
   if (vitamin)
     sickness = rnd.nextDouble() <= 0.2;
   else
     sickness = rnd.nextDouble() <= 0.25;
 }

答案 1 :(得分:0)

如果您知道目标百分比,例如35%的真实概率,则生成0到99之间的随机整数。如果它&lt;&lt; s&lt; 35,那是真的。否则它就是假的。