C随机数
最常用的随机数获得还是从C那里那里的一套 srand()
rand()
,通过随机数种子用随意的数字或者时间来获得伪随机数
#include<cstdio>
//#include<stdio.h>两行预处理代码相同
#include<ctime>
//#include<time.h>获得时间函数的头文件
#include<cstdlib>
//#include<stdlib.h>获得随机数函数头文件
int main(){
int range;//自定义上限
srand(unsigned(time(NULL)));//设置随机数种子,通常用 time 函数生成
//种子或许换一个词更好理解:初始推导值(毕竟随机数用算法或函数产生)
//使用 time 函数生成种子的最大有点是保证了每个种子不同,不会得到相同的序列
//不过也可以随意用一个 unsigned int 类型的数去设置
printf("%d\n",rand()%(range+1));
}
这就是最基础的,也是最常用的C/C++获得随机数的方法,比较古老,优缺点也都体现在这一点上了。因为老,所以编译所需要的版本可以很低,而且这份代码在低版本的环境下也都可以运行,但是不是真正的那么随机。还有一点就是只能产生整数随机数。
有兴趣的话,也可以自己写一些产生伪随机数的公式去获得随机数,这样可以减少编译时间,也减少文件大小
下面就举一个例子,采用公式为 x i + 1 = R x i ∗ ( 1 − x i ) x_{i+1}=Rx_i*(1-x_i) xi+1=Rx