c语言随机函数的生成问题(了解种子函数)

当c语言用随机生成数,
来做测试时,应该怎么做呢?????

我们先引入两个库函数:

#include<stdlib.h>
#include<time.h>

再引入两个函数:

rand()
srand()

那么现在来解释下这两个东东有什么用:

rand()

可以理解成 生成数据的东西,吃粥还是吃饭就靠这东西了,
可以看成是一颗种子突然从光秃秃的地上崩出来。

srand()

这个又是什么呢?
你看前面不是有颗蹦出的种子吗,嘿嘿,那么肯定要有播种子的函数啦,
就像你一样,没有播种你怎么能生出来,哈哈。

那么疑问来了:
为什么要播种,时间函数又有什么用???
我们看看下面:

srand(1)
t=rand()%10

这时候,我们可以得到多次t的值,
而这个时候我们可以惊奇地发现,
多次的t值都是一样的。
那么这个时候,就不叫随机数了,而叫伪随机数。
为什么会这样呢?
因为播种的种子是1,是一成不变的。


好的,那我们现在来思考一下,如何让多次t不一样呢,
这个时候,我们想到了用一个变化的种子,那么最简单的种子是什么呢??
哈哈,当然是会动的时间啦。
time(NULL)函数出现了,
话不多说,
那么就有如下代码:
(可以直接把形式记住,大多数都是一样的)

srand(time(NULL))
t=rand()%10

大功告成,
自己好好领会下原理。

猜你喜欢

转载自blog.csdn.net/qq_43504939/article/details/89962780