-1

我不明白 roll < 1000 的作用。我的意思是我不明白为什么在 rand 函数生成随机数时使用它。

public class Hello {
    public static void main(String[] args) {
        Random rand = new Random();
        int freq[] = new int[7];
        for (int roll = 1; roll < 1000; roll++) { // is there a reason for roll<1000
            ++freq[1 + rand.nextInt(6)];
        }
        System.out.println("Face \tFrequency");
        for (int face = 1; face < freq.length; face++) {
            System.out.println(face + "\t" + freq[face]);
        }
    }
}
4

3 回答 3

2
for (int roll =1; roll<1000;roll++){ // is there  a reason  for roll<1000
    ++freq[1+rand.nextInt(6)];
}

这里的作用是将 +1 添加到频率数组上的随机位置 999 次。

这里的“真正”随机数是 rand.nextInt(6),它生成一个 0 到 6 之间的数字。

这里:

for( int face=1;face<freq.length;face++){
    System.out.println(face + "\t"+freq[face]);
}

打印频率数组上的 6 个数字

干净简单的代码:

`public class Hello {
    public static void main(String[] args) {

        //Creates an instance of Random and allocates 
        //the faces of the dices on memory
        Random rand = new Random();
        int freq[] = new int[6];

        //Rolls the dice 1000 times to make a histogram
        for (int roll = 0; roll < 1000; roll++) {
            ++freq[rand.nextInt(6)];
        }

        //Prints the frequency that any face is shown
        System.out.println("Face \tFrequency");
        for (int face = 0; face < freq.length; face++) {
            System.out.println(face + "\t" + freq[face]);
        }
    }
}`

现在它在内存上分配了 6 个 int 作为骰子面,滚动 1000 次,并且应该很容易理解

于 2013-04-09T12:52:12.343 回答
0

因为他们只想生成最多 999 个随机数。

于 2013-04-09T12:48:38.020 回答
0

在这种情况下,滚动用作 for 循环中的计数器,以在达到限制后中断循环。在此示例中,限制为1000。由于 roll 被初始化为 1,它会生成999数字。

于 2013-04-09T12:48:53.937 回答