如何利用C语言生成随机数 | 您所在的位置:网站首页 › c语言中产生一个随机数的条件 › 如何利用C语言生成随机数 |
生成随机数有个库函数----rand,使用前需要引头文件----#include,rand函数参数为void无参,返回类型为int整形. 接下来我们来生成随机数看看 第一次生成随机数: 第二次生成随机数: 我们可以发现两次生成的随机数是一样的,所以说这种生成随机数的方法是不可行的. 我们可以看到rand返回的是从0到RAND_MAX之间的一个随机值 RAND_MAX的值是32767 所以说rand函数返回了一个从0-32767之间的一个数字,但是这个数字不够随机! 这里提到调用rand函数之前要先调用srand函数来设置随机数的生成器. srand函数是设置一个随机的起点. 我们看到这时候生成的随机数就发生变化了,但是... 每次生成的随机数都是一样的,这样也达不到我们的目的 当srand()里的整数变化的时候,生成的随机数也会发生变化. 所以我们只有让括号里的数字是变化的,是个随机值,才可以得到不一样的随机数. 这时候可能有人有疑惑了,“我们现在需要生成个随机数,而你说这里得需要个随机数,那怎么给你啊”. 但是我们电脑的时间是一直在变化的,所以我们可以把时间传进去,这里的时间指的就是时间戳. 时间戳就是由时间转化成的一个数字 那么如何获取时间戳呢? 有个函数是time(),这个函数会返回一个时间戳,返回的时间戳是调用这个函数的这个时间点和计算机起始的时间之间的一个时间戳 ,time()函数是有参数的,但是这里我们不想用它的参数,所以可以传个空指针NULL进去,即time(NULL)
所以time函数返回的是个整形 而srand函数需要的是unsigned int 类型的值 所以我们就把time函数强制类型转换成unsigned int 类型 time函数需要的头文件是#include 另外,我们只需要把随机数的生成起点调用一次就可以了,所以说srand函数要放在主函数里面(还要放在rand函数前面),只调用一次,不要每次都调用 每次都调用的结果是---- 生成的随机数离得很近. 注意:我们这时候得到的随机数是0-32767之间的数,若想得到1-100之间的数,只需要把得到的随机数%100+1就可以了.因为0-32767之间的数%100为0-99,再+1就是1-100了. 最终可以得到这样的效果~ |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |