【发布时间】:2014-08-25 01:50:34
【问题描述】:
我正在尝试编写一个 java 程序,要求用户输入掷骰子的数量和掷骰子的次数。
到目前为止,我编写的程序并没有正确掷骰子:如果我掷 2 个骰子,那么 2 和 24 的掷骰次数应该最少,而中间的数字应该掷骰的次数最多。现在它非常均匀地滚动每个数字。
有谁知道我该如何解决这个问题?
import java.util.Random;
import java.util.Scanner;
public class DiceStats {
public static Random rand= new Random();
public static int rollDice() {
int dice;
dice=(rand.nextInt(6)+1);
return dice; // returns the sum dice rolls
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("How many dice will constitute one roll? ");
int diceNumber = input.nextInt();
System.out.print("How many rolls? ");
int rollNumber = input.nextInt();
int[] frequency = new int[6*diceNumber+1];
for (int i = 0; i < rollNumber; i++) {
++frequency[(rollDice()*diceNumber)];
}
System.out.printf("%s%10s\n", "Face", "Frequency");
for (int face= diceNumber; face <frequency.length; face++)
System.out.printf("%4d%10d\n", face, frequency[face]);
}
}
【问题讨论】:
-
现在你每卷只掷一个骰子,然后将该值乘以
diceNumber。您实际上需要 rolldiceNumber次(即使用另一个循环)。 -
main中没有调用方法
标签: java arrays probability stat dice