C编程百分比帮助2个骰子程序滚动10000次

时间:2012-10-03 03:41:52

标签: c

从头开始,用2个骰子重复第4部分。我们这次使用10,000而不是1000。

每个骰子可以是1到6个,所以2个骰子的总数必须在2到12之间。

您的输出范围为2 - 12.

请注意,滚动2的可能性要小于滚动7的可能性,因为2只能滚动1 + 1.但是7可以是6 + 1,5 + 2,4 + 3 ,3 + 4,2 + 5,1 + 6.

计算每个值发生的次数,并输出与上一部分相同的计数。

计算滚动2,3,4等最多12的时间百分比。输出百分比,精确度为小数点后一位。在讨论板上发布这个结果。

我的问题是在我的程序中我写了它以便输出滚动量。我在尝试使用百分比公式来输出掷骰子的百分比时遇到了极大的问题。

到目前为止,这是我的代码。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define SIZE 11
#define TOTAL 10000


int main(void)   {

    int cnt = 0;
    int die1, die2, sum;
    int array[SIZE];
    srand(time(NULL));

    for (cnt = 0; cnt < SIZE; cnt++)
        array[cnt] = 0;

    for (cnt = 0; cnt < TOTAL; cnt++)
    {
        die1 = rand() % 6 + 1;
        die2 = rand() % 6 + 1;
        sum = die1 + die2;
        ++array[sum-2];
    }
    for (cnt = 0; cnt < SIZE; cnt++)
        printf("Number of %d's: %d\n", cnt+2, array[cnt]);
    system("pause");
}

2 个答案:

答案 0 :(得分:0)

尝试

array[cnt]*100/SIZE;

另外

您可能希望查看Binomial distribution

答案 1 :(得分:0)

提示:

如果您为阵列中的单个骰子存储了“计数”,也许您可​​能会有类似的内容:

  

array [0]是#/ times我为单个骰子滚动了“1”; array [1]#/ times我滚动了一个“2”等等。

也许对于两个骰子,您希望数组存储 sums 。例如:

  

array [0]是#/次我为两个骰子滚动了一个“2”的总和; array [1]#/ times我滚动了“3”等等。

阵列应该有多大?你永远不会有小于2或大于12的总和。所以“int [SIZE]”(“11”)就足够了。

在开始滚动之前,您需要将数组中的所有元素清除为“0”。

'希望能让你指出正确的方向......