随机数生成

Posted emcikem

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了随机数生成相关的知识,希望对你有一定的参考价值。

随机数生成

随机数大小是在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;

以上是关于随机数生成的主要内容,如果未能解决你的问题,请参考以下文章

关于Python中的随机数生成步骤和随机数质量

Shell进阶脚本-生成随机数( $RANDOM )

R语言|生成随机数

MATLAB的简单随机生成函数

java如何生成随机数?

使用perl 生成随机数