数学模型实验项目
错误:错误使用随机数引擎
程序需要随机生成若干个对象,每个对象有两个不相关的属性值,属性值通过随机数引擎产生。程序使用了两个随机数引擎,以 time(0)作为种子。运行程序,发现每个对象的两个属性值相等。
此次错误的原因是:程序运行速度过快,程序可以在1秒之内运行完成,因此,每个随机数引擎获得了相同的随机数种子。
对错误进行修复,使用微秒级别的时间作为随机数种子。代码如下:
std::chrono::duration_cast<std::chrono::nanoseconds>(std::chrono::system_clock::now().time_since_epoch()).count()
发现两个引擎每次使用的种子数值不同。每个对象的两个属性值不相关,完成修复。