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 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/

相关文章:

java - 格式良好的 java 字符串

java - 我是否需要通过 CDI 中的生产者进行所有对象实例化

java - 事件来到 Esper Engine 后阅读 Mysql 数据库?

java - 制作android游戏: can not acces my SharedPreferences in class which extends SurfaceView implements SurfaceHolder.回调

java - 在 Java 中,如何定义返回多个答案中最佳答案的 Future<V>?

java - 有没有一种简单的方法可以在 Java 中将两列输出到控制台?

java - NetBeans 错误 : package org does not exist

java - 无法解释的 AmazonS3Client getObject() 403 AccessDenied 异常

java - 使用Jsoup库从android中的网站获取html表的数据,

java - Uber API 的“稍后预订”选项