蒙地卡羅法與隨機化方法
隨機種子(random seed)
把偽隨機產生器想成一本極長、固定、只印一次並存在演算法裡的「隨機」數字書。種子就是你翻開的頁碼。給同一個頁碼,你每次都讀到同一段;給不同頁碼,你就從這本書的別處開始。隨機種子就是你交給產生器的初始狀態,用來決定數字要從它那條確定性序列的「哪裡」開始。
就機制而言,產生器的整個輸出都是其起始狀態的函數,而種子設定那個狀態。用 42 播種你得到一條固定序列;用 43 播種你得到一條看起來完全不同的序列。這給你兩種相反的能力。要讓一次執行「可重現」——讓你、合作者或審查者能重跑一模一樣的模擬並得到相同的數字——你就明確固定種子。要每次都得到全新、不可預測的執行,你就從外部真正的熵源(作業系統的硬體隨機、時鐘、滑鼠抖動)取種子,而且絕不重複使用。
播種正是可重現性與獨立性悄悄出錯的地方。在你想要獨立實驗時卻重複用同一顆種子,會使所有「重複」變得一模一樣,假造出確定性。用時鐘為平行工作者播種,可能把同一顆種子發給好幾個(時鐘在微秒尺度上幾乎不變),讓你以為獨立的執行相互關聯。而要真正可重現,你不只要釘住種子,還要釘住確切的產生器與函式庫版本,因為不同產生器會把同一顆種子變成不同序列。紀律很簡單:每筆結果都記下種子,而平行工作要用一個能從單一主種子衍生出獨立子序列的產生器。
把種子設為 7,跑一次蒙地卡羅估計 pi,得到比方說 3.1428。關掉程式,再把種子設為 7 重跑——你得到一模一樣的 3.1428,每個位元都相同。把種子改成 8,估計值變成 3.1392:方法相同,隨機抽樣不同。
同一顆種子、同一條序列——可重現隨機性的關鍵。
固定種子讓結果可重現,卻可能給出虛假的樂觀印象:剛好在種子 42 上能用的方法,換別的種子可能就失敗。務必跨好幾顆獨立種子測試,並回報種子讓別人能重現你的結果。
又称
另见