掌握了前面的知识,我们可以写一个猜数游戏,让系统给出一个数,我们来猜
一、rand
首先怎么样产生随机数呢,我们需要用到一个函数rand
rand函数会返回⼀个伪随机数,这个随机数的范围是在0~RAND_MAX之间,这个RAND_MAX
的大小是依赖编译器上实现的,但是⼤部分编译器上是32767。
rand函数的使⽤需要包含⼀个头⽂件是:stdlib.h
下面我们就来试一下
再试一次呢
我们可以看出这并不是完全随机的,深入了解我们可以知道,rand函数是伪随机的伪随机数不是真
正的随机数,是通过某种算法⽣成的随机数。真正的随机数的是无法预测下⼀个值是多少的。而
rand函数是对⼀个叫“种子”的基准值进⾏运算⽣成的随机数。之所以前⾯每次运⾏程序产⽣的随机
数序列是⼀样的,那是因为rand函数⽣成随机数的默认种⼦是1。如果要⽣成不同的随机数,就要
让种⼦是变化的。
二、srand
C语言中还有一个srand函数,是用来初始化随机数的生成器
在调用rand函数之前先调用srand函数,通过srand函数的参数seed来设置rand函数生成随
机数的时候的种子,只要种子在变化,每次生成的随机数序列也就变化起来了。
那也就是说给srand的种子是如果是随机的,rand就能生成随机数;在生成随机数的时候又需要⼀
个随机数,这就矛盾了。
那怎样才能得到这个随机数呢,我们下一篇再讲。