一碗酸梅湯 作品
第286章 破解壞蘋果
江寒用python設計了一個程序,將“彈性碰撞”算法實現了出來。
所謂“彈性碰撞”,通俗的說法就是“碰瓷兒”。
首先準備一個種子函數,然後讓算法隨機修改函數的參數和結構,衍生出各種各樣的函數。
在極其罕見的情況下,有的函數可能與81個核心方程中的某一個,在某些特徵上表現出足夠的相似度。
當搜索到了這樣的函數,就將其替換到“蘋果核”上去。
眾所周知,兩個同階微分方程,如果結構、係數等方面,並不完全相同,那麼通常來說,就是兩個完全不同的方程,理論上來說,是不能互相替換的。
但在計算機中,有的時候這樣做卻是可行的。
這是因為,任何計算機的精度都是有限的,只能近似地體現出方程或函數的部分特徵,而非全部。
所以,如果兩個函數或方程,在某些方面可以重合,尤其是上下文中需要體現的那部分特徵,只要沒有出現任何出入,那麼就可以在計算機內部,將兩者等同看待。
當然,單靠人力計算,想要進行這樣的碰瓷兒,幾乎是不可能的。
但現在嘛……
有了“彈性碰撞”算法,就為機器求解提供了實施的途徑。
相比於窮舉法,“彈性碰撞”的優點是可以節省大量時間,缺點就是可能存在漏解。
而且,這是一種碰運氣的算法,可能一秒鐘就能找到答案,也可能一輩子都找不到。
那麼,如何提高碰瓷成功的概率,縮短等待的時間呢?
答案很簡單,可以採用並行計算。
好吧,說實話,這個時候,江寒就深刻地認識到量子計算機的優越性了。
而在只有經典計算機的當下,解決這種大規模計算,只能靠人多力量大……
江寒將“彈性碰撞”程序上傳到了自己佈置在車庫中的ibm服務器和五臺工作站中,讓它們同步運行了起來。
隨後,他就拿出一本《密碼學算法》,看了起來。
每隔大約1個小時,江寒就通過筆記本電腦,遠程檢查一下服務器和各個工作站,看看“彈性碰撞”的運行情況。
事實證明,他今天的運氣還真不錯。
僅僅在第3次例行巡查中,江寒就欣喜地發現,居然有三臺工作站,找到了可用數據。
碰瓷成功!
接下來,就比較簡單了。
將這3條數據中的任意一條,替換到“蘋果核”上去,都會讓原本完美無瑕的壞蘋果,產生一條細微的裂隙。
如果將3條數據全部換上去……
江寒這樣做完之後,欣賞著遍體鱗傷的“蘋果核”,不禁滿意地一笑。
隨後他就開始抽絲剝繭,手工拆解“蘋果核”。
這個過程異常繁瑣,持續了足足10個小時。
所謂“彈性碰撞”,通俗的說法就是“碰瓷兒”。
首先準備一個種子函數,然後讓算法隨機修改函數的參數和結構,衍生出各種各樣的函數。
在極其罕見的情況下,有的函數可能與81個核心方程中的某一個,在某些特徵上表現出足夠的相似度。
當搜索到了這樣的函數,就將其替換到“蘋果核”上去。
眾所周知,兩個同階微分方程,如果結構、係數等方面,並不完全相同,那麼通常來說,就是兩個完全不同的方程,理論上來說,是不能互相替換的。
但在計算機中,有的時候這樣做卻是可行的。
這是因為,任何計算機的精度都是有限的,只能近似地體現出方程或函數的部分特徵,而非全部。
所以,如果兩個函數或方程,在某些方面可以重合,尤其是上下文中需要體現的那部分特徵,只要沒有出現任何出入,那麼就可以在計算機內部,將兩者等同看待。
當然,單靠人力計算,想要進行這樣的碰瓷兒,幾乎是不可能的。
但現在嘛……
有了“彈性碰撞”算法,就為機器求解提供了實施的途徑。
相比於窮舉法,“彈性碰撞”的優點是可以節省大量時間,缺點就是可能存在漏解。
而且,這是一種碰運氣的算法,可能一秒鐘就能找到答案,也可能一輩子都找不到。
那麼,如何提高碰瓷成功的概率,縮短等待的時間呢?
答案很簡單,可以採用並行計算。
好吧,說實話,這個時候,江寒就深刻地認識到量子計算機的優越性了。
而在只有經典計算機的當下,解決這種大規模計算,只能靠人多力量大……
江寒將“彈性碰撞”程序上傳到了自己佈置在車庫中的ibm服務器和五臺工作站中,讓它們同步運行了起來。
隨後,他就拿出一本《密碼學算法》,看了起來。
每隔大約1個小時,江寒就通過筆記本電腦,遠程檢查一下服務器和各個工作站,看看“彈性碰撞”的運行情況。
事實證明,他今天的運氣還真不錯。
僅僅在第3次例行巡查中,江寒就欣喜地發現,居然有三臺工作站,找到了可用數據。
碰瓷成功!
接下來,就比較簡單了。
將這3條數據中的任意一條,替換到“蘋果核”上去,都會讓原本完美無瑕的壞蘋果,產生一條細微的裂隙。
如果將3條數據全部換上去……
江寒這樣做完之後,欣賞著遍體鱗傷的“蘋果核”,不禁滿意地一笑。
隨後他就開始抽絲剝繭,手工拆解“蘋果核”。
這個過程異常繁瑣,持續了足足10個小時。