初入随机数时的思考

是我曾经的一些心路笔记,分享给初学者
random函数
最开始了解到随机数函数,是在primer书上看到的random函数,后来才知道,random函数虽然是随机数,但是,其实它并不是标准函数,以至于在vs,vc上无法编译通过。
rand函数
于是,这时候,我才了解到了一个标准的函数rand,这个函数不需要单独的头文件,只需要最常见的即可运行,很是方便。
例子:
#include #include int main(){ int a = rand(); printf("%d\n",a); return 0; }

运行结果我就不列举了,因为是随机数值。
srand函数
我第一次了解到srand函数,是在一道题里看到的,当时很好奇这个和rand有什么区别,后来查询了资料才知道,rand是“伪随机”,比如,将上面的例子多次运行,会发现,它的数字不变了,这显然不是我们期望的。
这是由于rand也是公式推算的,而公式推导的结果类比于正态分布。
初入随机数时的思考
文章图片

因此,srand函数的作用就来了,通过重新计算,使得随机数依然不同。
void srand (unsigned int);
随机数可以有范围限制
举个例子:
int a = rand() % 100; //产生0~100的随机数,注意100会被整除

【初入随机数时的思考】刚刚这个解释可能不够具体,再看下面这个
int a = rand() % 11 + 11;
rand()%11+13这个地方,我们可以看成两部分:rand()%10是产生 0~10 的随机数,后面+11保证 a 最小只能是 11,最大就是 10+11=21
好啦,今天的分享就到这儿了,希望这个博客可以帮助到为这个问题疑惑的同学。

    推荐阅读