java模拟一枚硬币抛三次,并打印出其中一枚硬币有三条尾巴的情况的百分比
附件是问题:http://puu.sh/42QtI/ea955e5bef.png
就代码而言,这就是我目前掌握的
这个问题要求“计算三条尾巴的模拟百分比”,这是我一直坚持的部分。有人能告诉我下一步的进展吗
public static boolean isThreeTails(){
Random rand = new Random();
int numberOfTosses = 3;
int numberOfHeads = 0;
int numberOfTails = 0;
for(int i = 1; i <= numberOfTosses; i++){
int value = rand.nextInt(2);
if(value == 0){
numberOfTails++;
}else{
numberOfHeads++;
}
}
if(numberOfTails == 3){
return true;
}
else{
return false;
}
}
double numTosses = 1000000; //choose whatever here
double threeTails = 0;
for(int i =0; i < numTosses; i++){
if(isThreeTails()){
threeTails++;
}
}
System.out.println("Theoretical probability of 3 Tails: " + (double) 1/8);
System.out.println("Actual results for " + numTosses + " tosses = " + threeTails/numTosses);
编辑:在这里,我创建了一个计数器,当有三个尾巴。它将增加numberOfTripleTails
计数器。如果它滚动一个“H”,那么numberOfTails
将返回到零。然而,我的代码似乎只给出“3”作为答案
编辑2:完成
# 1 楼答案
好的,你已经运行了你的模拟,你有你的头数和尾数的值。现在你需要再跑几次
每次运行模拟时,增加一个变量,该变量跟踪运行模拟的总次数。如果尾数为3,则增加另一个变量:我们称之为成功
问题的结果是模拟运行的总时间内的成功
# 2 楼答案
问题是,“理论上,你应该在八分之一的时间里得到三条尾巴”。现在它在说,“好吧,你知道这个理论,现在在电脑上做这个,看看你真正得到了什么。”
你要做的是多次运行这段代码,并记录你得到3条尾巴的次数。把这个数字除以你运行代码的总次数。这应该是模拟的百分比
以防你说不出来,我是说在代码中这样做,而不是通过反复手动运行当前代码。下面是一些伪代码:
# 3 楼答案
您已经编写的方法模拟了三次投掷。我已经修改了这个方法,所以它现在是一个可调用函数
isThreeTails()
现在您需要从
ThreeTosses.java
的主方法调用这个方法