c语言的随机事件问题(独立重复实验)

来源:百度知道 编辑:UC知道 时间:2024/07/02 13:10:26
我是刚开始学C语言不久的.在看书做题的过程中遇到一个难题.
希望大家帮忙.
是一个有关随机事件的问题.这与输出随机数或扔硬币等问题不同,我实在不知道该怎么做..
题目是这样的:一只狗从一个路灯出发,随机选择往前走2步或往后退一步,如果前进的距离到达10步就回家睡觉,如果再次回到路灯就待在路灯下不回家.请编写程序计算在500次的同样事件中狗回家睡觉的概率.
我实在是不知道该怎么做...请高手救命~!帮忙啊~!

大概代码如下

zero = ten = 0;
while(i < 500)
{
j=0;
do
{
if(rand()%2)
j += 2;
else j--;
}
while(j != 0 && j!= 10)
if(j == 0)
zero ++;
else ten++;
}

睡觉的概率是ten/500.0
不过由于500太小,你可以再加个外层的循环,多做几次实验,取最后的平均概率

void main()
{
int i = 0;
int s = 0;
int iGoHome = 0;
int iDontGoHome = 0;
for (i = 0; i < 500; i++)
{
srand(i);
do{
s += rand()%2 ? 2:(-1);
}while (s != 0 && s != 10)

if (10 == s)
{
iGoHome++;
}
else
{
iDontGoHome++'
}
printf("%f\n", (double)(iGohome)/(double)(500.0));
}

牛!,我也学刚学C,问题不错`