rand函数与srand函数

  srand 初始化随机种子,rand 产生随机数。

如果不用srand函数,每次产生的随机数列是相同的;如果用srand函数设置了种子,每次可以产生不同的随机数列。


1.随机种子:

随机种子是一种以随机数作为对象的以真随机数(种子)为初始条件的随机数。

2.伪随机数:

首先大家要知道,计算机是结构,条理非常清晰的数理逻辑.它所执行的东西都是按照人们编好的程序一步一步来的.所以它产生并不是真正的随机.我们所说的随机数的输出,仅仅是让计算机获取一切信息,然后根据一连串的算法输出看似随机的数。


2.伪随机数:伪随机数是以一个称为“种子”的数作为初始条件,通过固定的算法产生一个看上去像是随机产生的数字序列。举例来说,这个算法可以设计成类似于“将给定的种子开平方,取 有效数字的第2至9位作为下一次迭代的种子,重复此过程3次后,以结果的第1-4位作为返回值、并将该结果作为下次调用本过程的种子”等等。



然而,无论这个算法如何复杂,只要它固定不变,则对于相同的种子来说,每一次从这个种子开始、第n次通过该算法取得的伪随机数却总是一样的,因此必须再通过各种真正客观的途径使得该初始的种子不同。一般来说常用的方式是以运行时候的时钟时间,经一定变化后作为初始的种子的。
简言之,种子相同,伪随机数列相同。
比较理想的是用变化的数,比如时间来作为随机数生成器的种子。time的值每时每刻都不同,即种子不同,所以产生的随机数也不同。
3.rand和srand函数的头文件:#include<stdlib.h>,但是这个头文件是包含在#include <algorithm>的。
/*随机生成10个数,每次生成的10个数都不同*/
#include<iostream>
#include<algorithm>
#include<ctime>//必须有,time的头文件
using namespace std;
int main()
{
    int a=10;
    srand(time(NULL));
    while(a--)
        cout<<rand()<<endl;
    return 0;
}




**********************************


/*随机生成10个数,每次生成的都相同*/
/*只是把srand函数去掉了0.0*/
#include<iostream>
#include<algorithm>
#include<ctime>//必须有,time的头文件
using namespace std;
int main()
{
    int a=10;
    while(a--)
        cout<<rand()<<endl;
    return 0;
}





  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值