(急急急)C语言编程 数组 概率 (急急急)

来源:百度知道 编辑:UC知道 时间:2024/06/02 15:17:12
C语言编程
需要在 09年07月17日 中午12点之前用..为减少不必要的积分浪费答案满意 另加20积分... 谢谢
正题:

实验一回 0 1 2 出现的概率分别为1/3
试验14回 值 按照顺序排列成为一组数
模拟数组直到得到以下数组{0,1,2,2,1,0,1,1,1,0,0,0,2,1}为止 并且讨论能够得到所希望的数组 平均需要多少回?

C语言编程
需要在 09年07月17日 中午12点之前用..为减少不必要的积分浪费答案满意 另加20积分... 谢谢

如果没理解错的话:因为只有0,1,2,让其出现几率为1/3,这比较好弄。即:使用rand()% 3生成0-2之间的数。然后利用for循环生成那个长度的数组。
剩下的概率问题,就烦LZ或其他XDJM想想吧:数组第一个元素为0,出现概率为1/3,同理推得其他。但公式我忘了。
呵呵

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int shiyan(int x)
{
int i,KEY[14],temp[14]={0,1,2,2,1,0,1,1,1,0,0,0,2,1};
srand((unsigned)time(NULL)); /*实验一回 0 1 2 出现的
for(i=0;i<14;i++) 概率分别为1/3
KEY[i] = rand()%3; 模拟数组直到得到以下组
if(KEY=temp) {0,1,2,2,1,0,1,1,1,0,0,0,2,1}
x=1; 自定义函数模拟一次判断是否得到这个数组
return x; 若得到返回1*/
}
void main()
{
int i,n,t,aver; /*实验进行足够多的次数n
scanf("%d",&n) t为成功次数,
for(i=0,t=0;i<n;i++) 只要n足够大,aver就可算为
t=+shiyan(); 得到所希望的数组
aver=n/t;