纯新人 是大一新生
我比较好奇 为什么我的c语言的rand函数生成是随机数都在一个范围内 而且基本上是递增的
有朋友可以来解释一下吗!orz谢谢




C语言的rand随机数是一个伪随机数,原理可以看一下这篇blog
https://blog.csdn.net/chenyiming_1990/article/details/8648681
rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数(我们可以称它为种子)为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统,为了改变这个种子的值,C提供了 srand()函数,它的原形是void srand( int a) 功能是初始化随机产生器既rand()函数的初始值,即使把种子的值改成a; 从这你可以看到通过sand()函数,我们是可以产生可以预见的随机序列,那我们如何才能产生不可预见的随机序列呢?我们可能常常需要这样的随机序列,利用srand((unsign)(time(NULL))是一种方法。
给你找了一篇非常好的博客,你可以看看是否有帮助,链接:为什么rand()函数产生的是相同的随机数你这图片没显示上去,你把图片链接别放代码里
You say that you're using WAMP.
PHP's rand() isn't very random on Windows (it only generates 15 bits of randomness) so it's unable to distribute its random numbers evenly enough between the 50 bins.
In particular, bin 0 will receive 656 / 32768 of the random numbers, which is about 0.0200195