hw1
數(shù)學(xué)模型實(shí)驗(yàn)項(xiàng)目
?
錯誤:錯誤使用隨機(jī)數(shù)引擎
?
程序需要隨機(jī)生成若干個對象,每個對象有兩個不相關(guān)的屬性值,屬性值通過隨機(jī)數(shù)引擎產(chǎn)生。程序使用了兩個隨機(jī)數(shù)引擎,以 time(0)作為種子。運(yùn)行程序,發(fā)現(xiàn)每個對象的兩個屬性值相等。
?
此次錯誤的原因是:程序運(yùn)行速度過快,程序可以在1秒之內(nèi)運(yùn)行完成,因此,每個隨機(jī)數(shù)引擎獲得了相同的隨機(jī)數(shù)種子。
?
對錯誤進(jìn)行修復(fù),使用微秒級別的時間作為隨機(jī)數(shù)種子。代碼如下:
std::chrono::duration_cast<std::chrono::nanoseconds>(std::chrono::system_clock::now().time_since_epoch()).count()
?
發(fā)現(xiàn)兩個引擎每次使用的種子數(shù)值不同。每個對象的兩個屬性值不相關(guān),完成修復(fù)。
轉(zhuǎn)載于:https://www.cnblogs.com/matrota-hari/p/8550266.html
總結(jié)
- 上一篇: 光论是谁写的呢?
- 下一篇: 熟悉常用的Linux操作