从头开始,用2个骰子重复第四部分。让我们这次使用10000而不是1000。
每个骰子可以是1- 6个,因此2个骰子的总数必须在2- 12个范围内。
您的输出将在2- 12的范围内。
请注意,与滚动7相比,滚动2的可能性要小得多,因为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");
}发布于 2012-10-03 11:50:25
试一试
array[cnt]*100/SIZE;也是
您可能希望在Binomial distribution中查找此内容
发布于 2012-10-03 11:58:23
提示:
如果您将单个骰子的“计数”存储在一个数组中,您可能会得到如下内容:
数组是单个骰子掷出"1“的次数;array1是掷出"2”的次数,依此类推。
也许对于两个骰子,您希望数组存储和。例如:
数组是我为两个骰子掷出的次数之和为"2“;array1为我掷出的次数为"3",依此类推。
数组应该有多大?你永远不会得到一个小于2或大于12的和,所以"intSIZE“("11")应该就足够了。
在开始滚动之前,您需要将数组中的所有元素清除为"0“。
“希望能让你找到正确的方向……
https://stackoverflow.com/questions/12701586
复制相似问题