2021年9月21日 星期二

常用亂數種子 42 的由來

今天在 "精通機器學習" 這本書第二章關於如何建立測試組的部分讀到, 在呼叫排列組合函數產生隨機的測試組索引前, 可以先設定一個亂數產生器種子例如 np.random.seed(42) 來避免每次執行程式時產生不同的測試組資料集 (這樣多執行幾次就會將整個資料集看光光, 有違設立測試組之目的).

作者在此標註 : 你可能會在很多資料科學與機器學習的書上看到亂數產生器種子被設為 42, 這是為什麼? 其實使用 42 這個數值並沒有特殊的意義, 那只是工程師在寫程式時隨手參考所形成的流行文化 (pop culture) 而已. 

這個數字 42 出自道格拉斯-亞當斯 (Douglas Adams) 1979 年開始發行的科幻小說 "銀河便車指南" 系列 (The Hitchhiker’s Guide to the Galaxy), 這些小說曾被改編成廣播劇, 電視劇, 漫畫等形式, 2005 年還被好萊塢改編成電影 "星際大奇航". 亞當斯在大學畢業後工作並不順利, 曾當過保鑣, 保全, 建築工, 以及養雞場工人, 直到 1979 年他的小說被改編成廣播劇才步上成功之路. 亞當斯於 2001 年因心臟病離世, 享年 49 歲, 當時他正在寫銀河便車指南三部曲系列中的第六本小說. 

在這本小說的末尾, 主角 Authur Dent 在馬格西亞星球上得知地球的存在只是一個實驗, 其實幾百萬年前的老鼠是一種高智慧動物, 它們建造了一部超級電腦叫做 Deep Thought (深思), 這些老鼠詢問 Deep Thought : 生命, 宇宙, 以及萬事萬物的終極答案 (Great Question) 是甚麼? 經過很長時間的計算後, 老鼠的後代得到 42 這個答案. 

Deep Thought 表示它只能算出答案是甚麼, 背後的原因必須用更高級的電腦才能解釋, 而這部電腦就是地球本身, 參考 :


在 Deep Thought 得出這答案後的五分鐘, 地球就被來自 Vogsphere 行星的 Vogons 人毀滅了 (為了建造超太空星際公路, 這是都更概念嗎? ), Arthur Dent 與他來自參宿四的朋友 Ford Prefect 搭乘 Vogons 人的飛碟離去. 由於地球所有資料被毀, 但 Arthur Dent 腦中儲存了所有資料, 老鼠們為了探求 Great Question 的原因, 決定拿 Arthur Dent 的腦袋開刀 ..... 哈哈, 好有趣的故事. 

沒有留言 :