生成随机对象以获得java的产生

时间:2016-07-11 01:35:11

标签: java

我试图为我的作业部分生成随机double 问题是 "每周,每个10周龄或以上的女性Guppy有25%的机会产卵"

我想生成一个随机double来确定每个雌性Guppy是否应该产卵。

到目前为止我的代码:

Random r = new Random();
if (isFemale == true && getAgeInWeeks() >= 10) {
    //?
}

2 个答案:

答案 0 :(得分:1)

根据你的问题,我没有看到任何理由产生随机翻倍。你需要的是一个0到3之间的整数,其中每个数字占产卵的25%。

_get_attr

查看此链接以获取有关随机的更多信息: Random (Java Platform SE 7

答案 1 :(得分:1)

要生成随机double,您可以查看this question,但是,通过生成随机int可以更轻松地解决此问题。

在您的情况下,在int0之间生成3是您想要的,因为检查它是0将是25%的时间(1)值/ 4可能值= 25%)。

编辑:如果您还要生成一个随机数,以查看Guppy将像以前一样使用threadLocalRandomInstance.nextInt(int bound);生成多少个。

这些约束可以转换为这样的代码:

import java.util.concurrent.ThreadLocalRandom;

public class Test {
    public static void main(String[] args) {        
        ThreadLocalRandom tlr = ThreadLocalRandom.current();

        int num = tlr.nextInt(3 + 1); //Bound is exclusive so add 1.
        int spawn;

        if(num == 0) {
            spawn = tlr.nextInt(100 + 1); //Again, bound is exclusive so add 1.
        } else spawn = 0;

        System.out.println("This guppy had " + spawn + " spawn.");
    }
}

我使用ThreadLocalRandom因为this answer支持它更直接 如果您不使用Java 1.7+,请使用Random#nextInt(int),而不是that answer所示。