生成随机数

来源:互联网 发布:js 数组包含复杂对象 编辑:程序博客网 时间:2024/06/13 13:40

程序开始时调用一次srand(time(NULL))初始化“随机数种子”,然后使用rand()即可,产生的随机数在闭区间 [0 , RAND_MAX] ,RAND_MAX至少为32767(2^15-1),是个const量,可以直接打印出来。

#include<bits/stdc++.h>using namespace std;int main(){    cout<<RAND_MAX<<endl;    srand(time(NULL));    for(int i=0;i<10;i++){        cout<<rand()<<ends;    }}

如何产生[0,n]之间的随机数呢?如果n<=RAND_MAX,直接用rand()%n可产生区间[0,n-1]的一个随机数,如果n>RAND_MAX,可以可以将rand()除以RAND_MAX,得到[0,1]之间的随机实数,扩大n倍后四舍五入,得到[0,n]之间均匀整数,可满足一般要求。

#include<bits/stdc++.h>using namespace std;int main(){    srand(time(NULL));    int n=1000000;    for(int i=0;i<10;i++){        int x=((double)rand()/RAND_MAX*n+0.5);        cout<<x<<ends;    }}
0 0
原创粉丝点击