您介意帮我解决以下问题吗?谢谢。
问题: 6面一次掷3个骰子的百分比可以用数学或模拟方法求出。蒙特卡罗方法是一种通过计算机模拟找出问题解决方案的计算机过程。编写一个程序,掷三个骰子,计算它们的总和,并找出掷出每个可能结果的概率。
给你一个框架程序 q1dskeleton.c,它生成 10000 次掷六面骰子的统计数据。修改程序,使其生成滚动三个六面骰子总和的统计信息。下面给出了程序输出的一个例子。请注意,由于掷骰子的随机性。
提示:每次掷骰子调用 rand() 三次,每个骰子调用一次。
骨骼:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define SIZE 7
int main() {
int face, roll, frequency[SIZE] = { 0 };
srand( time(NULL) );
for (roll = 1; roll <= 10000; roll++) {
face = rand() % 6 + 1;
++frequency[face];
}
printf("%s%12s\n", "Face", "Frequency");
for (face = 1; face <= SIZE - 1; face++)
printf("%4d%12d\n", face, frequency[face]);
getchar();
}
输出:
Face Frequency
3 49
4 129
5 276
6 481
7 669
8 994
9 1131
10 1213
11 1269
12 1197
13 962
14 707
15 464
16 268
17 144
18 47