前言
本文主要讲解C语言的随机函数,学习随机函数将由此拉开序幕,亲爱的准备好了没?
随机数
随机数主要是通过rand()函数产生的,rand() 函数可以随机产生一个正整数,它会产生一个无符号整数,范围在1~32767,即两字节16位的整数最大值。而GNU C++产生的随机数范围为2147483647。 范围中的每一个数在每次随机调用rand时都有相同的概率被选中。使用随机函数的时候需要加上#inlcude 头文件。如以下案例:
注意:每次程序运行的结果答案都是相同的,这显然不是我们想要的。这是因为,rand函数不是真正的随机数生成器,而srand()会设置供rand()使用的随机数种子。如果你在第一次调用rand()之前没有调用srand(),那么系统会为你自动调用srand()。而使用同种子相同的数调用 rand()会导致相同的随机数序列被生成。如果要确保每次产生的都不一样,我们需要引用一个专门为rand设置随机化种子的函数srand().
随机函数种子
随机函数种子srand函数在库中说明如下:
//接口说明:
time() returns the time as the number of seconds since the Epoch,
1970-01-01 00:00:00 +0000 (UTC).
If tloc is non-NULL, the return value is also stored in the memory pointed to by tloc.
意思就是:要想每次随机结果不一样,就要每次运行更改种子,time函数返回当前时间距离197-01-01的描述,每次运行都不一样,正好可以当做种子,既就是大家学习的rand()函数的时候,老师让大家写srand((unsigned int)time(NULL))的原因,让随机数与时间绑定关系,时间在改变,随机数自然能够改变。
其实srand函数的参数编程中可以自己随意设置,伪随机就是每次得到的数据有规律可循,默认情况下数字在1~0x7fff,也就是(1~32767)。当设置参数为srand(1000),则生成的随机数是1000~0x7fff。
如下实例:
随机函数固定范围
主要思路其实非常简单,就是通过取余来做即可
尾言
文章都是手打原创,每天最浅显的介绍C语言、C++,windows知识,喜欢我的文章就关注一波吧,可以看到最新更新和之前的文章哦。如果足下基础比较差,不妨关注下人人都可以学习的视频教程
《C语言51课视频教程合集》
《C++45课视频教程》
通俗易懂,深入浅出,一个视频只讲一个知识点。视频不深奥,不需要钻研,在公交、在地铁、在厕所都可以观看,随时随地涨姿势