我正在为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;
}
}
答案 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()
的返回类型和参数,以匹配方法中的操作。