Java 随机数计数器不工作

Java 随机数计数器不工作,java,Java,这是一个掷骰子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

这是一个掷骰子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);
    }


}
import java.util.*;
苹果类{
公共静态void main(字符串参数[]){
Random rand=新的Random();
扫描仪输入=新扫描仪(System.in);
int freq[]=新的int[6];
System.out.println(“你想掷多少次骰子”);
int n=input.nextInt();
System.out.println(“turn\t面”);
对于(int i=1;i校正:

  float p=(float)freq[i]/n;
您必须将其中一个运算符强制转换为
float

所以它可能是第二个操作符,也可能是这样的:

float p=freq[i]/(float)n;

整数除法向0舍入


解释如下:您将一个整数(freq[i])除以另一个整数(n)。结果将再次是一个整数(因此,小数点后的所有内容都将丢失)。将其转换为浮点将延迟(因为数字已经完全为零)。您必须确保将一个浮点数除以一个整数,然后您的结果也将是一个浮点数(并且正确)。

这将对您有所帮助,或者不通知我
float p=((float)freq[i])/n


如果你想得到浮点值,你必须用浮点除以int。因此,在这种情况下,你必须转换你的freq[i]值。这将使结果更好。

提示:整数的除法和舍入。