回 帖 发 新 帖 刷新版面

主题:这句是在做什么的?

import java.util.Random;
public class Rand {
    public static void main (String[] args){
        
        Random number = new Random();
        int freq[]=new int[7];
        
        for (int roll=1;roll<1000;roll++){
            ++freq[1+number.nextInt(6)];
        }
        
        System.out.println("Face\tFrequency");
        
        for(int counter=1;counter<freq.length;counter++){
            System.out.println(counter+"\t"+freq[counter]);
        }
    }
}

-----------------------------------------------------------------------------------
输出的结果:

Face    Frequency
1    173
2    149
3    168
4    173
5    159
6    177

-----------------------------------------------------------------------------------

问题 : ++freq[1+number.nextInt(6)] 这句是在做什么?

回复列表 (共2个回复)

沙发

number.nextInt(6)生成一个0~5的伪随机数,再加上一个1,变成1~6的伪随机数(注意不是0~6,因而freq[0]一直未使用),这个随机数就代表选中了freq[1]~freq[6]中的一个,并使选中的那个增加1,就是前面++的作用,这要实现统计伪随机数分布频率

板凳


要是双精度的怎么改啊?

我来回复

您尚未登录,请登录后再回复。点此登录或注册