ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

C语言学习:随机数的生成

C语言学习:随机数的生成 C语言提供了⼀个函数叫 rand这函数是可以生成随机数的rand函数的使用需要包含⼀个头文件是stdlib.hrand函数会返回⼀个伪随机数这个随机数的范围是在0~RAND_MAX之间这个RAND_MAX的大小是依赖编译器上实现的大部分编译器上是32767。为什么叫它为伪随机数是因为它并不是真正意义上随机生成的数字而是通过算法来生成的。下面演示一下随机生成五个数字多运行几次之后就会发现它每次运行生成的数字是一模一样的证明了它并不是真正的随机数而是一个伪随机数。rand函数是对⼀个叫“种子”的基准值进行运算生成的随机数。之所以前面每次运行程序产生的随机数序列是⼀样的那是因为rand函数生成随机数的默认种子是1。如果要生成不同的随机数就要让种子是变化的。所以C语言中又提供了⼀个函数叫 srand用来初始化随机数的生成器在调用 rand 函数之前先调用 srand 函数通过 srand 函数的参数seed来设置rand函数生成随机数的时候的种子只要种子在变化每次生成的随机数序列也就变化起来了。那也就是说给srand的种子是如果是随机的rand就能生成随机数在生成随机数的时候又需要⼀个随机数这就矛盾了。在程序中我们⼀般是使用程序运行的时间作为种子的因为时间时刻在发生变化的。在C语言中有⼀个函数叫 time 就可以获得这个时间time 函数会返回当前的日历时间其实返回的是1970年1月1日0时0分0秒到现在程序运行时间之间的差值单位是秒。返回的类型是time_t类型的time函数的参数 timer 如果是非NULL的指针的话函数也会将这个返回的差值放在timer指向的内存中带回去。如果 timer 是NULL就只返回这个时间的差值。time函数返回的这个时间差也被叫做时间戳。time函数的时候需要包含头文件time.h如果只是让time函数返回时间戳我们就可以这样写那么生成随机数的整体代码如下多次运行后的结果也不同
返回列表