为什么我的输出有数百个,当我想要成千上万时

时间:2017-03-15 01:23:55

标签: java

import java.util.Random;

public class diceSimulation {

private static Random rollDice = new Random();

public static void main(String[] args) {

    final int ROLLCOUNT = 100000;
    final int SIDES = 12;
    int count, dice1, dice2;


    int [] doubleCounts = new int [SIDES];


    welcome ();


    for (count=1; count<=ROLLCOUNT;count++){

        dice1=roll(SIDES);
        dice2=roll(SIDES);

        if (dice1==dice2){
            doubleCounts[dice1-1]++;
        }

    }

    // Display results totals of paired rolls 
    for (int idx=0; idx<doubleCounts.length; idx++){
        System.out.format(" You rolled set of %d %d times\n",(idx+1), doubleCounts[idx]);
    }
}

private static int roll(int sides){
    return rollDice.nextInt(sides) +  1;
}

public static void welcome () {
    System.out.println("Here are your rolling dice percentages");
}
}

这是我的骰子模拟项目的代码,我应该检查骰子的每一侧使用12个边滚动多少次,但由于某种原因,我的代码输出只给出了数百个骰子#39; t加起来是10,000,这是rollcount。有人可以为我解决这个问题吗?我很抱歉,如果我的代码不好,但我是新编码和堆栈溢出所以请告诉我是否有任何我可以解决的问题。

2 个答案:

答案 0 :(得分:1)

当你掷出两个骰子时,你获得一对的概率只是16.7%所以如果你翻了100000次,你可能会得到16700对。我相信你的代码应该如何工作。

答案 1 :(得分:-1)

如果您只关心重复计数,那么在12面模具上滚动双打的可能性显着小于100000,因此您不应期望双打计数总和为100000。