h5网页网站制作代码网站优化seo是什么意思
十面骰子(一):
v 有一个十面的骰子,每一面分别为1-10,不断投掷骰子,投10000次,统计每一面1-10出现的次数或概率.
v 提示:可用rand()产生1-10之间的随机数,再统计1-10出现的机会,存放于数组里,如count[1]存放点数为1的次数,如count[2]存放点数为2的次数
十面骰子(二):
v 有一个十面的骰子,每一面分别为1-10,不断投掷骰子,直到骰子上的数累计和超过100停止,问这个和最可能的是哪个数?平均要投掷多少次?
v 玩一次游戏:
v 需要多次抛掷,直到点数和超过100.
v 十面的骰子,每次抛得的点数:p=rand()%10+1
v 累加和点数:sum = sum +p
v if sum>100 stop 抛掷
v 求sum 以及得到这个sum所抛掷的次数
v 以上游戏反复10000次。
分析:
10000次游戏结束后:
统计所得到点数的和的次数?sum可能的结果范围是101-110.可定义一个sum[110](也可定义两个数组分别存放抛到和的次数和抛到和所用的次数),数组元素sum[101]表示在10000次中,抛掷得到点数和为101的次数,sum[110]表示在10000次中,抛掷得到点数和为110的次数……
得到点数和超过100这样的结果,要投掷多少次?可能投掷的次数范围是11-101次,也可用数组来存放,如数组元素sum[11]表示抛掷了11次就得到和超过100,在10000次游戏中,有多少次?
(一)代码
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int main()
{int count[11] = { 0 };int i;srand((unsigned)time(NULL));for (i = 1; i <= 10000; i++){count[rand() % 10 + 1]++;}for (i = 1; i <= 10; i++){cout << "投到面" << i << "的次数是:" << count[i] << endl;//cout << "投到面" << i << "的概率是:" << count[i] / 10000;//cout << endl;}return 0;
}
(二)代码
#include <iostream>
#include <iomanip>
#include <stdlib.h>
#include <time.h>
using namespace std;
int main()
{int count[102] = { 0 }, Sum[111] = { 0 }; //count[102]用来装10000次游戏每次要投掷到累积点数超过100的次数,Sum[111]用来装10000次游戏每次投掷后累积点数超过100后的具体累积点数int i,p,sum,n; //sum是一次游戏的累积点数,n是一次游戏的投掷次数 srand((unsigned)time(NULL));for (i = 1; i <= 10000; i++) //重复10000次游戏{sum = 0, n = 0;while (1){p = rand() % 10 + 1;sum += p;n++;if (sum > 100)break;}count[n]++;Sum[sum]++;}cout << "统计所得到的点数的和的次数?" << endl;for (i = 101; i <= 110; i++){cout << "累积点数和为 " << i << " , 投到该点数和的次数为 " << Sum[i] << endl;}cout << endl;cout << "得到点数和超过100这样的结果,要投掷多少次?" << endl;cout << " 得到点数和超过100时投掷的次数 " << "投掷了该次数点数和才超过100的游戏次数" << endl;for (i = 11; i <= 101; i++){cout <<setw(4)<< i <<setw(36)<< count[i] << endl;;}return 0;
}