初学者编码器,卡住随机发生器

时间:2014-10-24 09:19:05

标签: java

这是我的代码,对象是计算10,000个卷的双倍1s,2s,3s ......的数量。这就是我到目前为止所写的内容,我无法弄清楚为什么它会将每一卷都计算为双重

while (count < 10000)
{
    Random rand = new Random();  
    die1Value = rand.nextInt(6) + 1;
    die2Value = rand.nextInt(6) + 1;

    if(die1Value == die2Value)
    {
        if (die1Value == 1)
        {
            ++snakeEyes;
        }
        else if (die1Value == 2)
        {
            ++twos;
        }
        else if (die1Value == 3)
        {
            ++threes;
        }
        else if (die1Value == 4)
        {
            ++fours;
        }
        else if (die1Value == 5)
        {
            ++fives;
        }
        else if (die1Value == 6)
        {
            ++sixes;
        }
        ++count;
    }
}

非常感谢您的反馈。

2 个答案:

答案 0 :(得分:2)

您正在count内增加if

if(die1Value == die2Value)
{
    // ...
    ++count;
}

您的while循环位于count值:

while (count < 10000)

所以,你实际做的就是弃掉你没有双倍投掷的每一次投掷并重新投掷它。

答案 1 :(得分:1)

因为++count位于if(die1Value == die2Value)

所以它会根据需要循环多次以找到10000个双打。大约是这个数字的6倍。

重新格式化上面的代码可以更清楚地显示这一点。