(c++问题)怎么不产生随机数呢?

Laozql 2008-11-04 08:56:04
大家看下我的代码,怎么不产生随机数了呢?
#include<iostream.h>
#include<time.h>
#include<stdlib.h>
bool judge()
{
int a,b,c;
srand(time(0));
a=rand()%6+1;
b=rand()%6+1;
c=a+b;
if(c==7||c==11)
return false;
else if(c==2||c==3||c==12)
return true;
else
{
int n;
for(n=1;n<=7;n++)
{
a=rand()%6+1;
b=rand()%6+1;
if(a+b==c)
return true;
}
}
return false;
}
int main()
{
int n,countw=0;
for(n=1;n<=12;n++)
if(judge()==true)
countw++;
cout<<"前12次赢:"<<countw<<"次。"<<endl;
for(n=1;n<=888;n++)
if(judge()==true)
countw++;
cout<<"后888次赢:"<<countw-12<<"次。"<<endl;
double k=countw/1000.0;
cout<<"前一千次赢的机会是:"<<countw/1000.0*100<<"%"<<endl;
if(k>=0.4&&k<=0.6)
cout<<"基本公平!"<<endl;
cout<<"不公平!"<<endl;
for(n=1;n<=1000;n++)
if(judge()==true)
countw++;
if(countw/2000.0>k)
cout<<"是玩的越久赢的机会越大!"<<endl;
else
cout<<"不是玩的越久赢得机会愈大!"<<endl;
return 0;
}
那位大虾解答下啊?
小弟先谢过啦!
...全文
103 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Laozql 2008-11-05
  • 打赏
  • 举报
回复
哦!谢谢啊!
谢谢啊!
原来如此!
arong1234 2008-11-04
  • 打赏
  • 举报
回复
srand只应该调用一次,你在judge中调用,由于judge调用太频繁,每次进入judge,time(0)的值都是一样的,等于你每次用同样的种子生产随机数,结果当然是一样了。如果你把srand方到主函数,不放在judge,就应该对了
zapdos 2008-11-04
  • 打赏
  • 举报
回复
要用种子...

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧