| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 569 人关注过本帖
标题:关于随机数的问题
只看楼主 加入收藏
lqqnjust
Rank: 1
来 自:江苏南通
等 级:新手上路
帖 子:52
专家分:0
注 册:2008-7-17
结帖率:100%
收藏
 问题点数:0 回复次数:3 
关于随机数的问题
我最近在做一个有关随机数的问题。可出现以下情况:我输入N时,100和5的头5个结果时一样的,帮忙分析一下,谢谢

#include<iostream.h>                              //包含输入输出
#include<stdlib.h>                                //包含随机数的生成
#include<fstream.h>                               //文件的读写




int getRandInt(int min,int max)
{   
int n;
        
        n=rand();
        n=n%(max-min+1)+min;
        return n;
}                                                     //产生随机数
             
void show()
{
int a,b;
    a=getRandInt(1,99);
    b=getRandInt(1,99);
    while(a+b>99){
    a=getRandInt(0,99);
    b=getRandInt(0,99);}
    cout<<a<<'+'<<b<<'='<<a+b<<endl;                  //输出合法数据
    
}
void main()
{
     
   
    cout<<"请输入题数:";
    cin>>N;
    while(N--)    show();
}
搜索更多相关主题的帖子: 随机数 
2008-09-15 15:23
沼泽
Rank: 4
等 级:业余侠客
威 望:8
帖 子:291
专家分:228
注 册:2008-9-15
收藏
得分:0 
这主要是rand()函数的原因,如果直接用rand()函数产生的随机数其实是伪随机数,当你输入100和99时,你会发现前99种结果都是相同的。这是因为rand()函数它涉及到随机数种子的问题,当随机数种子相同时,用rand()函数产生的随机数虽然数与数之间是随机的,但是每次产生的随机数序列都是一样的。
 所以每次只有设置不同的随机数种子才能真正保证随机数序列的随机。用srand()函数来设置随机数种子,只要象下面这样加一条语句就可以了。
void main()
{
     
   
    cout<<"请输入题数:";
    cin>>N;
    srand(N);
    while(N--)    show();
}
2008-09-15 21:45
lqqnjust
Rank: 1
来 自:江苏南通
等 级:新手上路
帖 子:52
专家分:0
注 册:2008-7-17
收藏
得分:0 
谢谢了。这个问题已经解决了。我还想问下,例如在设置缺省时,如果不在调用函数的情况下可以设置缺省吗?
比如:
cout<<"输入值";
cin>>N;
这下面n可以用缺省吗

正在学习编程。希望各位不吝赐教,(*^__^*) 嘻嘻……
2008-09-16 12:40
沼泽
Rank: 4
等 级:业余侠客
威 望:8
帖 子:291
专家分:228
注 册:2008-9-15
收藏
得分:0 
可以的,会由编译器默认
2008-09-16 12:51
快速回复:关于随机数的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023057 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved