This question already has answers here:
Java: do something x percent of the time
                                
                                    (8个答案)
                                
                        
                5年前关闭。
            
        

我正在尝试编写一些代码,并且想使用Java已经必须将true设置为true或false的Random类,但是结果会受到一定百分比的机会的影响。

例如,我想创建一个方法,该方法在某人生病或未生病时随机生成。如果服用维生素,则有20%的患病机会。如果不服用维生素,则有25%的疾病。

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

我知道我将需要一个测试类来创建一个person对象,并且我知道该怎么做,但这就是我所拥有的。不知道从这里去哪里。

import java.util.Random;

public class SicknessTest {

    private boolean sickness;
    private boolean vitamin;

    public void takeVitamin()
    {
        vitamin = true;
    }

    public void getSick()
    {

    }

}

最佳答案

生成一个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;
 }

关于java - 具有机会百分比的随机 boolean 生成器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26109676/

10-10 14:38