C++中如何生成随机数

  • A+
所属分类:代码笔记 信息技术

C++编程中,许多地方要用到随机数,比如随机化快排。那到底怎样生成随机数呢?

其实在C++中是有相应的函数的——rand(),返回一个随机数,包含在头文件<stdlib.h>中。但只有这一个函数还不够,因为这个随机函数其实也只是一个复杂的算法,把一个数作为种子(无符号整型),以后的随机数都由这个种子用固定的算法得来。如果没有指定种子,则默认为1,所以每次生成的随机数列会一毛一样。

我们可以用函数srand()来设置种子,用time()获取当前时间,以时间作为种子,保证每次种子的不同,随机数自然也就不会重复了。

那么如何生成指定范围内的随机数呢?方法很简单:a+rand()%b即可在a~b之间生成随机数。

完整代码如下:

  1. #include<iostream>  
  2. #include<stdlib.h>  
  3. #include<time.h>  
  4. using namespace std;  
  5. int main()  
  6. {  
  7.     srand((unsigned int)time(NULL));  
  8.     int a,b,n,i;  
  9.     cin>>a>>b>>n;  
  10.     for(int i=0;i<n;i++)  
  11.     {  
  12.         cout<<a+rand()%b<<" ";  
  13.     }  
  14.     cout<<endl;  
  15.     return 0;  
  16. }  
xcc

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:2   其中:访客  2   博主  0

    • xcc xcc 2

      test

      • xcc xcc 2

        ttt