码迷,mamicode.com
首页 > 其他好文 > 详细

随机数生成

时间:2019-10-05 10:47:22      阅读:82      评论:0      收藏:0      [点我收藏+]

标签:seed   srand   str   产生   cti   iostream   http   pac   src   

随机数生成

随机数大小是在0到RAND_MAX,值为2147483647
它是在stdlib中定义的,如果我们希望在某个范围内,可以使用 % 结合 / 来实现。
技术图片
但是发现每组生成的数据都是一样的

#include <iostream>
#include <cstdio>
#include <cstdlib>
using namespace std;
int main(){
    for(int i=0;i<10;i++){
        int x=rand();
        printf("%d\n",x);
    }
    return 0;
}

非重复随机数生成

之所以生成的数据是一样的,因为存在着一个随机数种子seed,默认seed(1)
只要改变seed就可以改变随机数
srand(time(0));是根据你当前的时间为seed,随着时间变化,seed的值也就不一样

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <ctime>
using namespace std;
int main(){
    srand(time(0));
    for(int i=0;i<10;i++){
        int x=rand();
        printf("%d\n",x);
    }
    return 0;
}

产生确定区间

rand()%x指的是[0,1)*x
[0,x)产生0到x-1的随机数

rand()%a+b
就是产生[b,a+b)

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <ctime>
using namespace std;
int main(){
    srand(time(0));
    for(int i=0;i<10;i++){
        int x=rand()%10;
        printf("%d\n",x);
    }
    return 0;
}

随机数生成

标签:seed   srand   str   产生   cti   iostream   http   pac   src   

原文地址:https://www.cnblogs.com/Emcikem/p/11624027.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!