这是一个程序,掷骰子n次,并显示得到每一面的频率和概率............
import java.util.*;
class apples{
public static void main(String args[]){
Random rand = new Random();
Scanner input=new Scanner(System.in);
int freq[]=new int [6];
System.out.println("How many times do you want to roll the dice");
int n=input.nextInt();
System.out.println("turn\tface");
for(int i=1;i<n+1;i++){
int num=1+rand.nextInt(6);
System.out.println(i+"\t"+num);
++freq[num-1];
}
System.out.println("face\tfrequency\tprobabitity");
for(int i=0;i<freq.length;i++){
float p=freq[i]/n;
System.out.println((i+1)+"\t"+freq[i]+"\t\t"+p);
}
}
}
运行程序后,我得到每个骰子面的概率为0。请帮我整理一下。
最佳答案
更正:
float p=(float)freq[i]/n;
您必须将其中一个运算符转换为float
。
所以它也可能是第二个运算符,如下所示:
float p=freq[i]/(float)n;
Here's an explanation from JLS:
Integer division rounds toward 0.
关于java - 随机数计数器不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29250074/