從文檔:如果一個Delphi庫使用Random,是否應該避免調用Randomize本身?
請勿將呼叫在一個循環中以隨機與調用的 隨機函數。通常,Randomize被稱爲只有一次,在全部 調用Random之前。
(由我突出了「只有一次」)
最佳實踐的問題:如果一個Delphi庫使用Random
,它應該只記錄的Randomize
初始化呼叫的要求
,並將Randomize的調用留給庫的用戶?
還是應該圖書館照顧的初始化,像
if System.RandSeed = 0 then Randomize;
+1確實,你不能假設任何事情。用戶可能會根據從固定(祕密/存儲)種子生成的隨機數字製作一些「滾動自己的」加密方案 - 這是我過去的說法;-)想象一下,當您的圖書館突然再次調用Randomize時,會造成嚴重破壞。 –