由rand()函数导致的error
error描述
在完成一个需要生成多个随机过程的项目的时候,发现每一次的输出均为固定值。
原因
随机过程的生成是通过生成随机数实现的,而生成随机数又是通过使用rand()函数实现的。然而rand()函数产生的随机数是由种子决定的。在编写程序的过程中,我用系统时间来初始化该种子,然而由于程序运行时间非常短,故而在循环调用rand()函数时,种子并不会产生变化,其结果就是生成的随机数是重复的,进而导致生成的随机过程也是重复的。
影响
由于随机过程的重复,导致最后的结果与预期结果相差甚远。
发现过程
在发现最终结果与预期结果相差甚远后,我将生成的随机过程打印了出来,发现其是重复出现的而不是完全随机的。于是进而测试了rand()函数,发现其生成的是基于时间的伪随机数,便更改了生成随机数的方法,进而成功解决这个问题。