大家帮我看看这道C语言题目出了什么问题
#include<stdio.h>#include<stdlib.h>#include<time.h>main(){intb,i;floata[6]={0};for(i=...
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
main()
{
int b,i;
float a[6]={0};
for(i=0;i<500;i++)
{
srand(time(NULL));
b=(rand()%6)+1;
a[b-1]++;
}
for(i=0;i<6;i++)a[i]=a[i]/500;
for(i=0;i<6;i++)printf("%d的概率为%.2f\n",i+1,a[i]);
printf("\n");
} 展开
#include<stdlib.h>
#include<time.h>
main()
{
int b,i;
float a[6]={0};
for(i=0;i<500;i++)
{
srand(time(NULL));
b=(rand()%6)+1;
a[b-1]++;
}
for(i=0;i<6;i++)a[i]=a[i]/500;
for(i=0;i<6;i++)printf("%d的概率为%.2f\n",i+1,a[i]);
printf("\n");
} 展开
9个回答
2012-11-28
展开全部
1、随机函数的问题;
每次种子相同,srand()函数需要不同的种子;所以每次的种子都需要改变
参考:http://baike.baidu.com/view/876758.htm
2、样本容量;(概率的问题)
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
int b=0,i=0;
float a[6]={0};
int temp=time(NULL);
for(i=0;i<500;i++)
{
srand(temp);
b=rand()%6+1;
temp=b+rand()%100;
a[b-1]++;
}
for(i=0;i<6;i++)
a[i]=a[i]/500;
for(i=0;i<6;i++)
printf("%d的概率为%.2f\n",i+1,a[i]);
printf("\n");
return 0;
}
每次种子相同,srand()函数需要不同的种子;所以每次的种子都需要改变
参考:http://baike.baidu.com/view/876758.htm
2、样本容量;(概率的问题)
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
int b=0,i=0;
float a[6]={0};
int temp=time(NULL);
for(i=0;i<500;i++)
{
srand(temp);
b=rand()%6+1;
temp=b+rand()%100;
a[b-1]++;
}
for(i=0;i<6;i++)
a[i]=a[i]/500;
for(i=0;i<6;i++)
printf("%d的概率为%.2f\n",i+1,a[i]);
printf("\n");
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for(i=0;i<6;i++)a[i]=a[i]/500;
for(i=0;i<6;i++)printf("%d的概率为%.2f\n",i+1,a[i]);
改为 for(i=0;i<6;i++)
{a[i]=a[i]/500;
}
printf("%d的概率为%.2f\n",i+1,a[i]);
printf("\n");
}
for(i=0;i<6;i++)printf("%d的概率为%.2f\n",i+1,a[i]);
改为 for(i=0;i<6;i++)
{a[i]=a[i]/500;
}
printf("%d的概率为%.2f\n",i+1,a[i]);
printf("\n");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
思路没有错,需要把 srand(time(NULL))放在for循环前面
只需要执行一次这个函数,后面每次调用rand()就能产生不同的随即数了
只需要执行一次这个函数,后面每次调用rand()就能产生不同的随即数了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个产生随机数的方法产生的是伪随机数,它其实是以时间为种子,产生随机数。你的程序中,500次循环对cpu来说不过一瞬间的事情,时间不会有变化的,所以产生的随机种子都是固定的,产生的随机数也是固定的,所以500次循环的结果都是一样的,即某一个概率为1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询