常用于去随机数的函数为rand()(在stdlib.h头文件中,不同的编译器可能有不同),但是实际在使用这个函数时却发现每次程序运行产生的数都是一样的,这是什么原因呢?其实是它的用法不正确.
随机数实际上都是根据递推公式 由初始数据(称为种子)计算的一组数值,当序列足够长,这组数值近似满足均匀分布。在使用时如果不改变初始数据每次计算出的数都是一样的,即伪随机数.例如:
该程序每次运行结果都为这三个数.即伪随机数
如果想要变成真正的随机数就需要每次运行时的种子(即初始数据)不同,如何才能实现呢?目前常用的是以系统时间作为种子,因为系统时间每时每刻都在变化.这就需要用到另一个函数srand()(也在stdlib.h头文件中,不同的编译器可能有不同),同时加入一个time.h的头文件用当前时间的值作为srand的种子,这样就能保证每次运行时都能取到不同的随机数.对上一个程序做一下修改就能实现取到真正的随机数.
这样每次运行结果都不一样.
***如果要限定范围rand()%100,范围为0-99.以此类推.