c++问题 rand() 默认产生的随机数范围

如何才能确保每次产生的都不相同?

  rand()函数可以用来产生随机数;
  rand()会返回一随机数值,范围在0至RAND_MAX 间。返回0至RAND_MAX之间的随机数值,RAND_MAX定义在stdlib.h,(其值至少为32767),运算的结果是一个不定的数,要看你定义的变量类型,int整形的话就是32767。
  在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。一般用for语句来设置种子的个数。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-19

随机数产生的范围是:0-0x7fff(也就是0到32767)

    #include <stdlib.h> 
    #include <iostream> 
    #include <conio.h> 
    #include <time.h> 
    using namespace std;
    void main() 
    { 
     srand( (unsigned)time( NULL ) ); //时间参数作为种子
     for(int i=0;i<32767;i++) 
     { 
     cout<<rand()<<endl; 
     } 
    }

时间参数种子唯一,然后取的数目不大于32767个,基本能够保证产生的随机数唯一

本回答被提问者采纳
第2个回答  2013-10-22
0到RAND_MAX,RAND_MAX的值视编译器而定一般不小于32767,你可以测试一下。可以用当前时间做随机数的种子保证产生的值不同。在程序开始之前调用srand((unsigned)time(NULL));就行了。
相似回答