偏置随机发生器迷你程序

时间:2014-03-26 23:31:19

标签: java random input while-loop counter

我正在为JAVA中的Algorithms类进行小型编程工作。

我试图弄清楚如何正确实现我的while循环,但我没有运气。

我将此程序设置为我创建的方法将边缘放在1的位置,其中返回1的可能性大于0。我试图让while循环运行10,000次,并有两个计数器,countZeros和countOnes,看看有多少计数器出现在10,000次之内。

public class BiasedRandom {
  public static void main(String[] args) {
    int countZeros = 0, countOnes = 0;
    double value = randomNumberGen(1); 

    // while loop here
    // while(value < 10000)
  }

  public static double randomNumberGen(double n) {
    double r = Math.random();
    double p = 0.6;
    if (r > p)
      return 0;
    else
      return 1;
  }
}

1 个答案:

答案 0 :(得分:1)

public static void main(String[] args) {
    int countZeros = 0, countOnes = 0;

    for (int i=0; i<10000; i++) {
        int value = randomNumberGen();
        if (value==0)
            countZeros++;
        else if (value==1)
            countOnes++;
        else
            throw new RuntimeException("Bad number");
    }

    System.out.println("0: "+countZeros);
    System.out.println("1: "+countOnes);
}

public static int randomNumberGen() {
    double r = Math.random();
    double p = 0.6;
    if (r > p)
        return 0;
    else
        return 1;
}

我使用循环的经典for循环格式,并更改了randomNumberGen()的返回类型和参数,以匹配方法中的操作。