楊振寧是一位理論物理學家,而理論物理學家是最有可能懷疑這個世界的本質其實是有人創造出來的一個虛擬世界。
為什麼呢?
我們先假設一下,這個世界真的是個“黑客帝國”式的虛擬世界,那麼我們怎麼發現這個真相呢?
從哲學角度來講,只要世界虛擬的足夠真實,我們是不可能發現這一點的,我們無法區分“真正的客觀”和“完美滿足意識主觀觀察的虛擬客觀”之間有任何的區別。
那麼,我們這個世界足夠真實嗎?
在物理學發展到量子階段以前,我們認為是足夠真實的,一切我們發現的科學規律都是既普適又自洽,而且經過思考以後會發現也非常符合直覺和邏輯。包括經典力學,熱力學,電磁理論等等,完全看不出有任何的問題,學起來也很容易。
可是,自從物理學發展到量子階段後,各種反直覺的實驗現象就開始出現了。
首先是光的波粒二象性,一個物體,既是波又是粒子,而且到底是波還是粒子居然取決於你怎樣觀測。這已經很反常識了,幸好科學不屈從於直覺,科學家們想不明白就不想了,姑且認為貓就是可以又死又活吧。
然後半透鏡實驗(延遲選擇實驗)就更離譜了,科學家擺弄來擺弄去,就是發現現實世界不遵守因果律。為什麼會這樣不符合邏輯?沒有任何人知道。幸好科學不屈從於邏輯,實驗結果如此就如此吧,科學家們只相信事實。
接著又是光子的全同性問題,兩個光子,或者很多基本粒子,居然是不能編號區分的,它們可以任意混淆,而且一旦產生混淆,用來區分它們的現象也就隨之消失了。這又是違背直覺和邏輯的現象,我們從出生就知道兩件東西長的再怎樣相似,也是可以彼此區分的,為什麼粒子就不可以?物理學家也不知道,只能認同事實。
再接著是更加詭異的粒子的自旋現象,粒子的自旋就像是一種奇怪的秉性,你測量一次,它就有可能變化一次,明明剛用磁場區分出來一致方向自旋的粒子,再次區分,它們依然還是一半向上一半向下,這符合常識嗎?當然不,而物理學家們只好用一句自旋現象沒有經典對應來一語帶過。
然後還有量子糾纏問題,超越光速的超距作用,彷彿空間是不真實存在的,為什麼會這樣?物理學家還是不知道,哪怕他們可以用公式描述,甚至可以用這個規律來進行保密通訊,但是沒有人能給出一個符合直覺和邏輯的簡潔解答。
當然,你可以說物理學有了很多解釋,什麼哥本哈根理論,多世界理論,可是沒有一個聽起來感覺是能令人信服的,世界在不斷分裂成平行世界?時光會回溯?全世界就一個電子?你還不如讓我去多看幾本科幻。
現代的物理學家們只能承認,量子現像是無法用直覺來理解的,無論你能如何瞭解這些規律,但是從內心裡,你並不是真正能明白瞭然為什麼會這樣。甚至很多研究了一輩子量子物理的大神們,這樣的疑問也同樣盤旋在他們的心裡。

這像不像一個不夠完美的世界?科學家們會不會在內心中生出一絲疑惑來:這些現象太類似一個人為創造出來的虛擬世界了。
對啊,虛擬世界裡物質就可以同時是波函數也可以是確定的值,比如一個隨機函數,沒有運行的時候就是一個隨機范圍,運行後(觀測)就是一個確定的值。網絡游戲裡這個現象太普遍了,一張地圖上如果有50%的概率刷出怪來,但是沒有玩家進入地圖前,刷怪程序並不執行,那麼如果沒有玩家去看,請問地圖上有怪嗎?
可能有,也可能沒有,各50%的概率,處於一種疊加態吧。
但是只要有玩家進入地圖,這個疊加態迅速就坍縮了,得到了一個確定的結果。
粒子的全同性在真實世界很難理解對吧,在虛擬世界裡多麼好理解啊。游戲裡面掉落的錢幣,因為數量太多,為了方便攜帶,玩家拾取後就會落到一個背包格子裡,這時候它和原來格子裡面的錢幣就不能區分了,因為這種大數量道具系統是不區分的,還有血瓶,材料等等。全世界就一個錢幣?確實是,就一個錢幣的代碼,到處生成對象而已,同一個代碼生成的無編號對象當然就是全同的嘛,你拿哪些全同量子的實驗來試試,全部完美解釋。
如果我們知道了粒子只是用函數模擬出來的,那麼粒子的那些奇怪的內稟屬性就不再神奇了。比如電子的自旋屬性,要不是我們非要把電子想像成一個小球的話,哪裡有什麼東西在自旋,只不過是粒子函數在電磁場中的表現出的一些特性罷了,也不用思考為啥轉兩圈只能算一週,我們只用知道每次進入磁場,帶電荷屬性的粒子函數就要被執行一次輸出,函數代碼需要根據自身的所謂自旋值隨機輸出一個運動方向。所以每用磁場來觸發粒子函數輸出一次,總會有一半向上,一半向下。下次再觸發還是調用同樣的函數,依然是這個結果,不會受上次調用的影響,所以永遠沒有確定的輸出值。
量子糾纏發生在真實世界很詭異是吧,虛擬世界裡到處都是這種現象,兩個同時產生的寶箱,要是他們裡面的道具出自一個概率表有嚴格的相關性,那麼你把其中一個搬到游戲中任何一個地方打開也能馬上影響另一個的結果,因為影響它們秉性的不是距離而是看不見的內部代碼。
還有那個違背因果律的延遲選擇實驗,現實世界裡感覺匪夷所思是吧,我們看看虛擬世界裡這種事件一般都是如何處理的。法師發出一個火球,擊中目標的概率為50%,那麼是飛行到接觸目標之前計算結果比較好呢,還是先按概率計算出結果,再反過來根據計算出的結果(命中/不命中)繪制飛行動畫比較好呢。顯然後者更合理一些,那麼這就給玩家造成了一個因果錯覺,玩家覺得是火球發出後根據目標的躲避情況來決定是否命中,而系統裡其實早有結果,給玩家看的只不過是之前結果的表現。玩家要是突然決定在火球的飛行路徑上再加一個檢測點,好嘛,這個動畫就得瞬間重畫,從檢測點開始再回歸計算,因果律看起來就不正常了是吧,其實碼農們都懂。
所以說出生在現代的學生們學習量子物理其實並不難,因為他們都有豐富的虛擬世界的體驗經驗,要是再學會一些網絡編程,那更是容易理解。這些事情對於現代的學生來說,簡直就是虛擬世界網游的現實翻版嘛。
如果人類只有科學,本也不該懷疑這些現象,因為客觀觀察到的事實是怎樣,就應該理所當然的承認嘛。不過,幸好人類不只有科學,人類還有數學和哲學,這些知識是高於科學的,從而讓我們能以超越當前客觀世界以外的思考視角來審視這個世界。而我們人類的很多直覺其實也是來自這些知識,這也令我們對我們所處的世界產生了懷疑,難道我們真是在一個他人創造出的虛擬世界裡嗎?
那,假設真的是有人創造出這個虛擬世界,為何又會在量子層面露出這麼多破綻呢?都滿足我們的直覺不好嗎?
其實,這事問程序員們就知道了。
為什麼不事先在地圖上把怪刷好啊,非要有玩家進去再刷?
因為要節省資源……
為什麼要製造一些不可區分的道具啊,不能所有道具都有唯一的ID嗎?
因為要節省資源……
為什麼粒子的自旋值每次都要復位啊,不能記錄下來嗎?
因為要節省資源啊……
為什麼粒子非要等觀測的時候才確定狀態啊,不能事先就生成好嗎?
還是因為要節省資源啊同學,這個宇宙場景很大的,我哪能做到把全宇宙裡所有粒子在每一個普朗克時長的狀態都計算出來啊,既浪費資源也沒有必要,你要看哪個我就算哪個不就完了,只要你不認真琢磨,看起來和全算狀態其實沒啥區別。
是不是很符合一個程序員的想法?
你現在是不是覺得物理學家們懷疑有人創造了這個虛擬世界是很有道理的?自然界的這些安排的確奇怪了,要是真的存在一個造物主的話,很多見鬼的現象就能解釋了!
真的,只能這麼解釋。
============================
【第一次追更】
多謝大家熱烈關注,那我們把這個代碼構成的虛擬世界的科幻想法再搞完善一點看看。
假如你是個小碼農,你的老闆要你開發一些虛擬的擬真世界,你要怎麼搞呢?
你想了想,決定先定義一些構成世界的誇克級的基本粒子,你構造了一些一維函數模擬出這些粒子的秉性,這就像“Minecraft”裡面小塊一樣,只不過你用的形狀是線條。
但是誇克太小了,就好像是像素一樣,很難賦予太復雜的秉性,於是你開始用誇克拼裝更高一等的基本粒子。用什麼辦法拼裝呢,你構造了一些小塊根據基礎秉性相互作用的效應,並在代碼裡用方程形式表現出來,分別叫強相互作用和電磁作用。這些線條彼此靠近就會按規律黏著或者排斥,然後自動組合出更多類型的高等粒子的框架來。
線條搭建的粒子好像是基本三維容器,用來裝承這些最小的一維函數,出於不可重復調用的原因,容器裡不能裝載屬性相同的誇克(泡利不相容原理)。
然後,再設定一些函數之間的相互作用,先設定個與質量有關的,把引力方程寫進去。
模擬兩個粒子運動一下,嗯,跑的不錯,任何時候把時間參數代進入馬上就可以得到速度位置,用個微分方程就好。
可是物體一多就不行了,得迭代,多體問題沒有解析解就只能求數值解。
這樣計算方面就有一個問題了,那就是時間不能連續,得有個最小單位,而且得足夠小。如果迭代步長太大結果誤差就太大了,那麼時間單位最小可以多小呢。
程序員研究了一下主機的參數,決定根據硬件條件的限制來定義,系統的最小時間片是多少呢?
是一個“普朗克時間”:1E-43秒,程序員發現定義完這個變量以後,很多參數也隨之確定出來了,比如宇宙的最大速度 = 最小普朗克長度/最小普朗克時間,於是光速就有了。
分子為啥是要用最小普朗克長度呢,因為這個世界要盡量擬真嘛,要讓物體運動的盡量平滑,能不跳格就不跳格。但是這事不能表現的這麼直白,於是程序員研究了下,正好根據作用效應把粒子質量和速度掛鉤起來,用質量來限制速度的上限,正好達到光速時候質量無窮大,從容器層解決了這個問題(洛倫茲變換)。
好了,搞定一些常數,程序員開始跑一個大規模的測試版本,模擬了幾萬億個粒子的行為,系統就開始卡頓起來。
程序員有點頭疼,這不省心啊,老闆不肯投資升級主機,這才多少粒子,離模擬一個星系的距離還很久呢。於是他去請教一個老程序員。
老程序員看了下他的代碼,冷笑一聲,你這個搞法再多少計算資源都能給你耗盡了知道不,你看看每個粒子都在佔用內存和CPU時間,彼此作用起來計算量是指數上升的,有必要嗎?你要想想,中間狀態有沒有必要存在?
可是程序員猶豫了一下說,那也不能直接模擬到終局啊,到了最後肯定是熱寂歸零。
老程序員用報紙敲了一下他的頭說,你程序跑給誰看的,客戶在哪?
程序員這才想起來,老闆之前指定了一個觀察者接口的。對嘛,誰調用哪個接口就馬上進行計算就好了。程序員重構了一遍系統,把粒子代碼全部腳本化了,這樣方便隨時調用。然後把系統輸出修改成針對意識接口的觀察流模式,按照意識接口的調用來驅動計算輸出。
這樣,整個仿真模型的主循環就大大簡化了,不用輸出中間狀態讓模擬計算量大大下降。有了這個方向,很多問題就迎刃而解了,程序員搓搓手,是時候開始解決宇宙宏觀架構的問題了,怎麼才能穩定整個大框架呢,好像要搞一些新的物質形態才行,程序員又開始拼小塊了,這次的目標是暗物質和暗能量,還有空間的屬性問題……
歡迎碼農們一起來開腦洞~~~
---—————————————-
一些有趣的小問題
熵為何不可逆?
因為宇宙代碼無法逆序執行,代碼一旦開始執行,整個過程就不再可逆,輸出結果也無法變回代碼。
量子加密究竟是什麼?
很簡單,我們無法將代碼執行後輸出的結果逆轉成未執行的代碼態,比如一個隨機函數執行輸出結果後,我們無法拿著這個結果再把它變回隨機函數。量子傳輸中的粒子只能被觀測一次,觀測後就變成了確定的狀態,這和沒被觀測過是有區別的,我們發現這個區別就能知道信息有沒有被人閱讀過。就好像游戲裡的寶箱開過了是無法還原的。
量子計算究竟是什麼?
其實經典計算就是讓“宇宙母機”運算之後,人類計算機再用確定的結果去運算。而量子計算則是直接調用腳本混合重編程,然後盜用了“宇宙母機”的算力來幫忙計算。比如,兩個隨機函數相乘,經典計算就是先運算兩個隨機函數得到結果,然後再把結果相乘。如果我們要直接乘積結果的分佈,那就得重復計算幾萬次來看。而量子計算則是把兩個函數的代碼合並,直接在代碼裡完成相乘,然後把混合後的函數交給“宇宙母機”重新打包成一個新的隨機函數,這樣這個函數的輸出結果就相當於包含了之前的多步計算,我們現在只用對這個函數的結果進行輸出抽樣就可以了。
量子計算的難點在哪裡?
最難的地方就是保存和合並兩個基本粒子函數的時候,不能觸發運算調用,一旦觸發,函數被執行就失去了代碼重編的效果(退相干),而真正要完成有價值的計算,量子計算機需要合並幾十個粒子函數,所以必須小心翼翼,還要排除誤觸發執行的干擾。
============================
【第二次追更】
再次感謝大家的熱烈捧場,追更回復一些留言,並發表一點點感想哈
首先請大家不要過度上升本文的境界,這不是科學理論,只是腦洞幻想,答主也不是專業學者,只是業余科幻愛好者。我的主要目的是幫助大家理解一下現代物理學家的困惑所在,順便幫大家科普科普晦澀難懂的量子力學,你看按本文的比喻,是不是量子力學理解起來感覺容易多了?
至於這些幻想是否有可能是真實的,我也只能聳聳肩。但是裡面的內容確實和量子物理領域和量子計算領域的真正專家都偶有討論過,雖然粗糙,但與現行的科學理論並無明顯的違和之處,大家可以用這個角度來理解量子力學,不會導致走火入魔。
其實量子物理領域凡是涉及到哲學層面的內容,都是沒法證偽的,比如意識的本質,平行世界是否存在,時光回溯有沒有等等,非要比較的話,按奧卡姆剃刀原則,把世界理解成虛擬的說不定還是最簡潔的版本。
但是,請不要因為世界有可能是虛擬的,大家就跑來問作弊碼是什麼,怎麼卡BUG,怎麼把系統搞宕機,怎麼把緩沖區搞溢出!你們是在嚴重低估上層世界程序員的水準,能開發這個規模系統的團隊能讓咱們這種層級的存在把系統搞宕機?你就想像一下吧,如果你是主程,這個系統的魯棒性會定義的多高?黑洞,超星系團都可以任意相撞,會怕人類造幾個還沒行星大的加速器?
就算退一萬步講,這個世界出BUG了,大家覺得那可能被你我知道嗎?處理系統崩潰的運維手段不就是停機,打補丁,清檔回滾數據,重啟,完了各位能知道發生過啥嗎?
還有一個重大問題是,如果真有造物主存在,他們開發這個系統到底想幹嘛呢?
當然,我們是永遠無法揣測更高維度的智慧在想什麼,就像螞蟻不能懂得穿白大褂的人在幹嘛一樣。但是這不妨礙我們換用自身的角度來思考下:如果人類可以創造出這樣一個虛擬世界,並且能在其中演化出虛擬的智能生命了,人類會創造並且持續運營這樣一個系統嗎?
顯然會,而且會運行非常多個!
因為這樣做至少有幾個對人類來說非常有意義的目的,我們來看看:
首先其實是很有趣。觀察一個虛擬宇宙從誕生到演化,誕生生命到產生智慧,這是多麼有意思的一件事啊,反復的模擬說不定可以看到各種各樣的演化結果,這就像我們現在看著自己創造AI不斷進化一樣有意思啊,為什麼不多看看呢?
其次,伴隨虛擬宇宙的演化,AI的進化本質上和現在人工智能的進化學習算法是類似的,反復的進化我們可以得到更優秀的AI模型,這不就是自動學習麼,這樣的AI模型說不定未來可以用來解決一些更有價值的問題(比如尋找宇宙終極答案是不是42);
第三,AI的進化帶給了我們更多的借鑑和思考,虛擬智能同樣會在它們發展的各個階段創造出五花八門的藝術,科學,迷信,政治,宗教,戰爭等等,而且會有各種各樣有趣的創新和創意。這些文明的創造產物,對於更高的文明同樣具有意義,觀察研究虛擬AI社會的各種各樣的演化現象和歷史,簡直就是在觀察一個豐富的文明寶藏;
最後,這樣的虛擬演化還有可能幫助我們尋求一些宇宙知識的答案。運行演化一個虛擬世界實際上就是在加速模擬真實世界的演化,我們觀察AI的行為對理解文明的未來發展顯然有莫大的幫助。
所以推己及人,如果人類未來會對創造並觀察虛擬世界感興趣的話,我們也可以認為更上層的智慧也會有類似行為(之所以用了更上層而不是更高等的說法,是因為我認為更上層的造物主也不一定就是智慧或者能力會遠超它的創造者,就像未來我們肯定可以創造出我們自身更加聰明和智慧的AI生命一樣)。
我們所處的宇宙很大,未來人類文明或許不缺物質,不缺能源,不缺空間,不缺時間,但是很可能會缺文明的同伴。費米悖論也許就是在提示我們,人類文明未來在宇宙中將會是完全孤獨的。我們不知道自己為什麼被鎖在了這個沒有別人的世界裡,也許三體文明已經用曲率波把可視宇宙覆蓋掉了,並把宇宙速度的上限限制在光速來永久的囚禁地球文明。也許人類文明玩的就是一個單文明虛擬游戲,我們是被分在單獨進化組裡隔離觀察的對象。
但是有一點幾乎可以確定的是,不管留給我們探索的環境有多大,未來人類如果發展的足夠久的話,我們的科學最終總會碰到這個世界的根本性的無法突破的規則之壁。就好像虛擬游戲裡的NPC永遠不可能跳到鍵盤前一樣,科學會碰到的是永遠無法踰越的規則級的天花板,也許是無法跨越的空間距離,也許是無法再拆解的微觀極限,也許是主觀世界和客觀世界的神秘界限,也許是人類不可碰觸的更高時空維度,甚至可能到人類最信賴的數學都無能為力的程度,那是真正的邊界。從這個角度來說,人類是不是被囚禁在一個虛擬時空裡根本不重要,所謂囚禁只是牢房大小的差別,就像罪犯關在監獄,但是自由人被關在地球一樣。
那麼,無法發展的人類要怎麼辦,生存的意義何在?
這個問題同樣可以拷問一個已經沒有玩家的網絡游戲中的NPC:你不過就是十字路口的一個路人NPC,你在這裡存在的目的已經不存在了,這個系統也沒有人在維護,只是在默默運轉而已,你的存在對造物主也毫無意義,甚至造物主們早就忘記這裡還有一個沒有關閉的系統了,那麼你能幹什麼?
文明自然不會輕易沉淪,就算面對絕壁文明也自然會懂得向自身尋找存在的意義。借用大劉的話,“給歲月以文明,而不是給文明以歲月”。
茫茫宇宙中,文明存在的本身就是意義,文明經歷歲月就是對自身意義的不斷證明。就算文明萬一無法向外探索,但是不妨礙文明可以繼續探究自身,藝術可以不斷創造,歷史可以永恆演繹,文明會在可觸及的時空裡精彩的存在著。試想有一天,宇宙這個游戲沒有玩家光顧了,也沒有人維護了,裡面的NPC文明卻繼續過的非常精彩,他們在小小的虛擬環境裡載歌載舞,種菜養羊,拍電影寫小說,甚至自己動手改造著整個宇宙,還養出了一大堆的小世界和小文明,這是不是應該叫做就算看破了世界的真相,但是還是依然熱愛生活的不屈文明呢?
所以我想,創造虛擬世界應該是每個文明發展到一定階段都會做的事情吧。任何文明在無法找到自己的造物主並與之對話後,應該都會想把自己化做造物主來賦予自身更多存在的意義。說不定上層世界也是相同的情況呢?
哈哈,我知道大家又要反對套娃了。可是,哲學上講我們本來就是無法去窮究任何問題的。造物主若有,那麼又是誰創造它呢?既然從哲學角度講對於任何終極問題的探尋都是永不可能有答案,所以我們不如好好關注當下,就像無人照料的游戲裡的智能NPC,在失去外部意義之後,依然把每一段歲月都活出精彩,這或許才是生命,或者文明存在的最大價值。
好了扯遠了,為這麼個問題胡謅了這麼多廢話,實在抱歉浪費大家時間。
不過深夜偶感,願有遠友心有靈犀能共嘆之。
============================
【第三次追更】
amz,居然兩萬贊了,實在沒有想到無意中的一篇腦洞貼引來大家這麼熱烈的討論。
感謝下各位知友的熱情支持點贊,我也很高興與各路大神們切磋交流,一起聊些與現實煩惱無關的哲科話題。
好吧,我繼續回應一些近期的留言和私聊。
首先我沒有過度曲讀楊振寧教授的原意,我也不認為他所指的造物主就是某種神靈,或者類似宗教信仰的東西,我個人也不支持所謂“科學的盡頭是神學”之類的說法。我只是就物理現象談個人理解,可以當作碼農+游戲製作者,從自身職業角度出發對量子物理領域作了一些業余科幻式的解讀,就算我懷疑存在世界是虛擬的可能,也不會因此而拋棄依靠證偽精神質疑一切的科學思維方式,我不會因為自己的腦洞,就會昏了頭把想像當作了不需證偽的信仰,我是一位堅定的科學思維方式的信奉者。
所以這些內容,大家當科幻來理解就好,不能證偽的想像就讓它留在想像的領域吧,而且確實科學也不關心這些內容。所以咱們聊咱們的腦洞,不礙著科學也不礙著神學,請大神們不要太較真。
不過既然是科幻,也不妨礙我們認真一點哈,鑑於大家對我們的世界存在虛擬的可能性的各種討論,我的看法是,如果真的要追問,感覺虛擬的可能性其實是相當大的,理由如下:
1 最直接的理由自然是來自費米悖論,我們這個星球的存在,包括人類的存在從任何邏輯角度來講也太特殊了,而至今這個環境裡空無他人的情況來看,同時對比宇宙歷史和人類文明史之間的懸殊的時間關系,從邏輯上分析簡直不可思議。按照宇宙學的最基本原理:“我們不特殊”來做出發點思考,隨便做個數學模型推算一下,計算下一定范圍內可能誕生文明的數量,在模擬下文明擴散的速度和宇宙年齡之間的關系,就知道人類現在這個奇怪的處境發生的概率能有多低,低到簡直不可想像的程度;
2 我們所處的環境也太特殊了,為什麼我們向宇宙的各個方向看去,星系的密度全部都是均勻一致的,完全看不出我們在宇宙的什麼位置?你要說服我不要聯想這外面是個系統生成的背景也很困難啊,宇宙唯一一個文明誕生在正好宇宙中間的位置?
3 現在對地球生命的各種演變歷史也還存在大量未知和爭議,進化論到現在也不能很完美的解釋整個生物進化的路徑,先不說整套地球的生物體系完全是在幾千萬年自然進化發展而來的證據說服力強不強,但我如果按我的職業角度,請上幾位資深的游戲策劃來閱讀一下地球生物的分類學,他們倒是一定會有一些非常熟悉的感覺,這種感覺就像在讀一套非常有目的設計文案。整個地球生物的譜系其實充滿了濃郁的策劃設計味道,就像解讀量子現像一樣,有些地方甚至巧合到了難以置信的地步。當然這個腦洞開起來就更復雜了,有機會再開貼扯淡吧;
4 更重要的一點是,人類馬上就會創造出屬於我們的虛擬小世界了。按照現在人類計算技術的發展速度,用不了一百年,我們估計就可以做到完全的將意識數碼化,從而完全的從技術角度理解意識的本質,並學會如何創造具有人工意識的智能AI。這應該比人類大規模定居火星要更早實現,而且伴隨量子計算技術的發展,在虛擬環境裡創造真正的元宇宙也指日可待。我不期待五百年內人類能到達比鄰星,但是這之前實現出一個虛擬宇宙則大有可能,也許剛開始我們只能模擬星系級別大小的擬真環境,其他都得用貼圖,但是幾十個版本迭代下來,這個環境顯然會越來越逼真,而且其中模擬的文明應該不會在意這個問題,因為他們看到的客觀世界是怎樣的他們都會全盤接受。
同樣根據宇宙學原理,推己及人,如果人類文明建立才幾千年就能向下創造虛擬世界,那麼虛擬世界的嵌套速度將遠勝過文明在物理層面傳播的速度。從直覺上想像一下就能知道,人類文明所處在一個虛擬環境裡的可能性真是超乎尋常的大,甚至我們都不知道我們到底在第幾層,這個神玩法一旦開始,恐怖疊上幾千幾萬層也是稀鬆平常的事情。我相信,人類沒有那麼幸運,別說正好我們就是能接觸真實物理世界的原始文明,就算運氣好在頭一兩百層的機率可能都不是那麼的大。
每個文明都在籠子裡,每個文明又都在造新的籠子,層層疊疊也許才是我們這個宇宙的真相。不信,再等幾百年看看人類能搞出什麼東東來。話說一百多年前,有雜志邀請很多當時的學者一起暢想未來,預測未來人類會做出那些成就。有人預測,人類會造出幾千層的摩天大樓,天空城市,無數的飛行汽車穿梭其中,人類還會定居在月球和火星,開采太空的能源和礦物。結果,一百年到了,人類並沒有干這些事情,人類主要成就是造了互聯網,並升級成了移動互聯網,創造了Facebook,Twitter,Wechat,Youtube,Biliili,Zhihu,並樂在其中。
再等五百年,你們猜人類在幹嘛?
============================
【第四次追更】
(好生氣,剛寫完追更居然突然丟失全部內容,這是有力量在阻止我公佈真相了,那你要失望了,我熬夜也要把這更補回來!)
有朋友留言對量子實驗的具體詮釋內容感興趣,這次追更我們就挑一個經典的量子實驗來嘗試用游戲式的方式來詮釋一下看看吧。
我們來看一個經典的基本量子實驗:惠勒延遲選擇實驗。“延遲實驗”是由愛因斯坦的同事約翰·惠勒提出的,也是傳說中的世界觀顛覆者,人生觀毀滅者,因果律殺手,理科生躁鬱症的重大致病因素之一,毀人不倦的經典實驗。
為了方便不太瞭解該實驗的朋友,我花一點文字把實驗的具體設置和過程描述一下,如果熟悉的高手們盡可略過。

如圖所示,該實驗的具體佈置非常簡單,一共只用到七件主要的實驗儀器,分別是單光子光源,半透鏡O,全反射鏡A和B,半透鏡C和兩只接收器(探測器)。所謂半透鏡,就是一種半鍍銀的透鏡,有50%的概率會反射光線,50%的概率會讓光線直接通過。
我們先看圖,我們先不在C處放置透鏡和接收器。如果這時從光源處發射一隻光子,那麼光子會怎樣傳播呢?不太熟悉量子物理的朋友可能會說,那光子應該50%概率走上邊,沿著OAC路徑傳播,50%概率走下邊,沿著OBC路徑傳播。這樣說也沒錯,如果現在光呈現出粒子特性的話,的確會如此。
但是,我們都知道光具備波粒二象性,它還可能像波一樣傳播。如果像波一樣,那麼光就會同時走上下兩條路徑,同時到達C點。這時候,如果你在C點放置一個屏幕的話,同時沿著兩條路徑到達的光波還會與自身發生干涉現象,在屏幕上呈現出干涉圖案來。
那麼,光到底會呈現出粒子特性還是波動特性呢?答案是,取決於實驗者改採取的觀測手段而定!
如果實驗者在OAC或者OBC的路徑上放探測器,檢查光子具體從哪條路徑傳播,那麼光子就馬上會呈現出粒子特性,只會從一條具體的路徑傳播,在C點屏幕的干涉圖案就消失了。而如果我們不去檢測光子走的哪條路徑,故意忽視光子的路徑信息的話,光子就會呈現波動特性,干涉圖案又出現了。
說到這裡,可能不熟悉量子力學的朋友已經有點納悶了,為什麼觀測的方式會決定光子的行為,光子又是如何得知我們會怎樣觀測它呢?但其實,這還不是這個實驗最離譜的地方。科學家們決定再將實驗推進一步,科學家們決定讓光子先出發,等光子已經經過了透鏡A或者B之後,再決定如何觀測。
具體的做法就是在C點,我們再准備一個半鍍銀的透鏡和兩只探測器,然後我們就可以先等光子發射,然後精確的控制時間,計算光子的飛行時間,等到光子已經經過了A或者B點之後,再決定是否插入C半透鏡,那麼現在就可能有兩種情況:
1. 不插入C半透鏡,那麼檢測器可以准確的瞭解光子從哪條路徑而來,光子呈現出粒子特性,只有兩個探測器檢測到光子的概率均為50%
2. 插入C半透鏡,那麼不同路徑而來光子再一次經過了半透鏡的概率反射,我們將無法判斷光子具體的路徑信息,光子就呈現出了波動特性,並在C點發生自我干涉,經過調整可使一邊的探測器始終能檢測到光子。
這樣,我們就可以不同的探測器輸出模式來判斷光子究竟展現的何種特性,以及插入C半透鏡有沒有影響光子之前的行為。結果實際實驗中先發生的光子行為果然非常詭異和後發生的觀測手段完美匹配了起來,實驗說明實驗者在C點插入半透鏡的行為雖然在光子經過AB點的時間點之後,但是卻影響了光子在整個傳播過程中的特性表現。這就好像是兩者之間的因果關系被倒置了一般,我們居然用置後的觀測手段的改變反過來影響了之前發生的光傳播事件,真實世界為什麼會發生這種事?
從實驗邏輯上來看,實驗中事件發生的順序似乎是這樣的:
單光子發射 → 經過半透鏡O → 經過鏡子A或B → 半透鏡C被插下 → 回溯修改傳播路徑 → 經過半透鏡C → 到達探測器
這已經完全不能理解了是吧,而且科學家們還在此基礎上繼續推進了一步,他們決定將實驗中OA和OB的距離繼續加大到星際空間的尺度,採用引力透鏡來代替實驗中的普通透鏡。結果大家猜怎樣?實驗結果果然與距離大小無關,光子依然我行我素。
不過在這個實驗裡,將尺度放大到這麼誇張的地步後,給人的感覺就非常毛骨悚然了。假設OA和OB的距離有一百萬光年,那會發生什麼?也就是說,我們可以等光子發射後,飛行了快一百萬年之後,再決定是否插下半透鏡C,觀測手段一旦改變,光子就得去修改之前一百萬年的傳播路徑,這可以想像嗎?那麼,這漫長的一百萬年的歲月裡,這顆光子究竟在哪裡呢?是同時在OA和OB嗎?還是哪裡都不在呢?它怎麼有能力去改變百萬年前發生的事情呢?
好了,我們先放下這個細思極恐的問題,來看看游戲版本的延遲實驗詮釋吧,也許世界還有救。
我們先定義下這個游戲的開發需求:
有一位會發射隱形火球的法師,他發射的隱形火球既能像粒子一樣飛行,也可以像波一樣傳播,至於究竟什麼時候會怎樣我們先放一邊。
接著我們又設計了一些道具,包括兩塊可以一半概率反射火球法術的魔晶O和C,然後還有兩個魔法反射鏡,兩個當做目標的挨打小精靈。好了,按圖擺好位置後,一個魔法版的延遲實驗我們就可以佈置出來了。
接著,我們抓了一位碼農,讓他來完成這個實驗的整個過程。
碼農愁眉苦臉的琢磨了一會後,決定這樣來安排整個實驗的事件過程:
1. 先計算出火球的飛行路徑,遍歷所有可能路徑,並找出路徑上可能發生的一切交互事件,因為各路徑無獨立交互事件,因此系統將所有路徑的傳播概率全部混合進行計算,從而得到全部事件概率結果;
2. 根據路徑的距離和傳播媒介,計算傳播時間,並將交互事件分別按時間軸順序排序;
3. 計算完畢後開始執行事件序列,先繪制一個發射動畫,因為是隱形火球,因此不用繪制飛行動畫,主循環開始進入idle,等待下個事件執行,同時系統繼續輪檢路徑變化情況,輪檢頻率為每普朗克時間一次;
4. 一段等候時間後,系統突然發現路徑上發生了變化,有新的交互物件插入,於是系統瞬間重算了所有交互事件,並刷新原事件序列。因為新的交互事件裡存在獨立的路徑交互行為,所以這次需要先根據概率計算選擇出具體子路徑,然後再回歸計算子路徑上的獨立交互事件;
5. 事件時間分別到達,依序執行各個具體的交互事件並輸出結果。每次交互事件執行後,重置火球的函數並重新遞歸計算路徑和事件。
碼農測試了一下,按這個算法非常節省系統開銷,反應迅速准確,完美實現了客戶需求。
現在大家是否明白了,碼農的這個做法從玩家角度來看,似乎就是因果倒置了。光子未來路徑上的變化刷新了交互事件序列,而玩家卻用還未發生的交互事件(探測器)在判斷光子之前的行為,渾然不覺事件結果已經在插入半透鏡後被內部刷新過了。
更重要的是,在碼農眼裡,隱形的火球沒有所謂的飛行過程。在沒有交互事件的時候,沒有必要將一個物體在三維坐標系裡移來移去浪費開銷,一切運動在碼農眼裡只不過就是按照速度安排的交互事件排序而已,有交互(觀測)才有輸出,無交互的時候,系統idle就好。所以在每個火球的交互行為(被觀察)之間,火球沒有任何行為發生,它只待在代碼裡等待事件而已。
所以,這個世界上其實也沒有什麼光子在飛行,光子被發射後就不存在實體了,有的只是宇宙母機的系統在後台默默的計時和輪檢路徑事件變化而已。光子也不用千幸萬苦的耗費百萬年的飛行路程來到我們眼裡,或者來到天文台的望遠鏡的底片上,這些事件在我們抬頭仰望星空的時候,就已經被合理的插入到某些粒子的事件序列裡了,到了該執行的時候,交互事件就會自然觸發,而你眼睛裡的視神經細胞就會感受到事件的影響結果。
所以每個微觀粒子的飛行運動過程,其實都是系統在後台不斷刷新一個未來待執行的路徑交互事件序列而已,只要事件還未被執行就可能因為環境變化而改變,所以隨便科學家們把路徑上的透鏡插來插去都沒關系,系統最終只會以事件執行前最後一個普朗克時間時事件的刷新結果來執行輸出,光子也不用那麼勞累隔一會就要去回溯更改歷史。那一百萬年,它哪裡都不在,只有系統在後台假裝它在飛行穿越空間而已。
各位碼農們,你們是否也認為這樣才是最合理的算法呢?
這是一個神奇的思想模式,一旦你們開始用程序員的思維理解量子行為後,很快就可以給各種量子實驗加上算法解釋,包括什麼魔術擦除實驗,什麼量子糾纏,什麼雙縫干涉,還有什麼貓貓狗狗的,觀測者難題也迎刃而解,整個世界頓時全然不同。
熟悉量子力學的朋友也可以來比較下你所知的延遲實驗的詮釋和游戲版本的相比如何,拿起你的奧卡姆剃刀來揮舞下,看看誰更簡潔易懂?
現在,是不是你也覺得這個世界有點不太真實了?
============================
【第五次追更】
又來追個更了,既然我們的腦洞已經開到這個程度了,大家還在熱烈關注本話題,那麼看來只好把我們的洞繼續往深處挖挖看羅
續接前文說到,我們已經反復討論了假設世界虛擬化的可能性,那麼如果真的這個世界是虛擬的,對我們有什麼幫助呢,比如說我們用程序員的思維能獲得更多對當前世界的理解嗎?
更有價值的內容暫時也沒有能力去推演,不過我們還是可以從理解量子力學的角度來看看,用程序員思維我們能不能夠更理解量子現象呢?
比如,光為什麼會具有波粒二象性?
從程序實現的角度思考,光的本質就是概率+波動方程編寫出的一個算法函數。在光傳播中觸發的交互事件在不被觀測的時候,宇宙母系統(後面我們簡稱系統)就會默認事件只有發生的概率而沒有實質發生,那麼一切事件都會先疊加成一個類似腳本的執行序列。一旦我們進行觀測,該腳本就會立刻被執行輸出具體結果,光子也看上去就有了具體的位置,表現的更像粒子了。而之前腳本疊加的階段,則充分展現了波函數的特徵。
我們理解這個邏輯之後,也可以用來做一些思想實驗,比如我們嘗試在延遲選擇實驗基礎上多搞一些花樣看看。
比如說:我們可以在惠勒實驗中,等待光子發射之後,計算時間在其經過了半透鏡O之後,去改變O的反射率,將反射率從50%調整為30%(我想通過某些液晶技術應該可以實現瞬時的調整吧),那麼在C點再進行觀測的話,光子走OAC路徑和OBC路徑的概率會發生變化嗎?
答案應該是不會,因為按事件時間軸計算,光子到達半透鏡O的交互事件已經發生,反射概率已經被記錄了,這時候再改變O的反射率已經不會再影響被記錄的事件概率了。要改變必須在時間軸上光子到達O之前進行操作才行。
我們會發現在光子傳播的整個過程中,系統基本只記錄和疊加各種交互事件概率,輸出都是等到最後觀測的時候才發生。為什麼這個宇宙系統不喜歡記錄具體的數值,而只記錄概率呢?
因為這套處理體系不擅長記錄具體精確的數值!
如果我們把粒子看做一個計算函數的話,我們會發現系統記錄粒子的精確數值,包括各種內稟屬性,位置,速度等等的能力非常弱,每類屬性只能保存一個當前值,一旦刷新的話,之前保存的值就會被丟棄。
而且粒子函數裡保存的帶精度的數值之間還需要共享有限的儲存容量。如果我們要求某一個值輸出的足夠精確的話,其他數值就無法保持精度了。比如速度和位置這兩項就共用了同一個輸出字節空間,某一項輸出佔用的小數空間太大,另一項就只能被迫減少小數位數,這就是所謂海森堡的測不准現象,我懷疑這套算法在設計的時候似乎並沒有考慮到有人會要求輸出這麼多項精確的數值結果。
但是反過來,這套算法保存概率和處理概率運算的能力卻非常非常的強。
粒子在各種交互事件裡發生屬性改變的概率,只要不要求輸出結果,系統都可以瞬間完成概率的各種改變和運算。
所以,我們用這種特性製造出來的量子計算機也同樣如此,量子比特非常擅長保存和運算概率,但是具體的數值卻需要依靠經典方式來存儲。而這種概率的疊加過程計算,用經典計算機來模擬就非常的消耗資源了,因為需要不斷的記錄海量的中間狀態,且計算量隨著粒子和事件的數量指數上升。
模擬宇宙的這台超級母機也是量子的,所以它非常討厭具體數值,討厭追求精確。在它擅長的這套處理模式下模擬出的整個宇宙其實是一個以時間為軸,各種粒子不斷疊加交互概率的混沌湯。無數的粒子不斷的產生,運動,碰撞,分裂,相互糾纏,退相干,湮滅,這個過程中無數的概率事件都重重疊疊的記錄到個每一個粒子的函數內部裡,這整個宇宙就是一大個無比復雜的概率演算場,而概率其實才是這個宇宙的最底層最重要的數學機制。
有人說,這個體系似乎也很討厭觀測者的存在,觀測者不斷的打斷系統自然的概率演算,不僅要求輸出結果,還要刷新粒子狀態。那如果觀測者太多的話,是否會導致系統效率下降呢?
要思考這個問題之前,我們需要瞭解清楚的一個問題是,你怎麼知道這個系統裡究竟有多少的觀測者呢?或者進一步追問,怎樣才算觀測者呢?
不熟悉量子理論的朋友經常會問類似這樣的問題:在量子世界裡,怎麼才叫做觀測?嬰兒看算嗎?動物看算嗎?攝像機看算嗎?AI看算嗎?
比如,在薛定諤的貓這個思想實驗裡,有只鸚鵡在盒子裡看到了貓的狀態,這算觀測嗎?
其實這個問題的答案很簡單,如果一隻鸚鵡看到了,但是它無法說話,不能告訴你的話,那麼這只鸚鵡就和盒子裡的即死又活的貓就一起進入到一種量子狀態了,准確說是鸚鵡看到盒子裡的情況後,腦子理解後發生改變的部分加入到這整個量子的波函數體系裡去了。對於你來說,只要你無法知道具體的信息,那麼無論誰看了都沒用。
所以整個世界裡發生的量子事件,對你來說誰看到了都不算觀測,如果沒有最終告訴你的話,那麼一切和事件相關的人或者事都只是繼續捲入到概率事件中而已,而你才是最終坍縮一切量子態的終結者!
神奇吧,你就是這麼的優秀,你才是(你的)世界的唯一的主角!你玩的,其實是一個單機游戲,你沒有玩的內容,都只是不佔資源的靜態代碼而已。現在你不擔心繫統會被玩崩了吧,所以大家放心生娃吧,就算無限增加人口數量也不會拖慢系統效率的。
這還真不是胡扯,在量子物理學裡,這個概念有個名稱叫做“人本原理”。說白了就是一切你無法觀測的世界與你無干,你只會存在在你可以觀察的世界裡,你的主觀意識才是推動世界真實存在的唯一原因。
(不信?你試試用槍對准自己腦袋來一發,保證不會死。因為你因為死亡導致意識消失的話,那你就不會存在在一個沒有你的意識的世界裡。只要有任何極小的概率導致你不死,那麼你必定會存在在那個世界裡,在你的世界裡,你當然會活得好好的。)
看過這段話的朋友請務必不要相信,切切不要在我的世界裡嘗試自殺,也不要因此就走上了挑戰極限運動的道路,在我世界裡你真的會死的,而我不保證你還有存活的概率,請不要讓我因此產生愧疚感。
好了,很暈是吧。這也可能就是量子物理發展下去最終會撞上的無解的哲學壁壘:主觀與客觀的認知之牆。究竟這個世界到底是在我們的主觀認知裡存在,還是真實的客觀存在呢?換個說法,我們究竟玩的是個單機游戲呢,還是個網絡游戲呢?物理學到這裡已經無能為力了。
我們身處在這個世界之中,受到這個世界的規則約束之下,可能永遠也不能真正得知真相。我們無法順著網線爬到另外一台終端前看看有沒有活人在操作同一個游戲裡的角色,我們每個人都無法跳出我們當前的世界維度來認知和理解這個世界,這可能就是人類科學發展的真正極限所在了。
幸好我們的科學不關心此事,科學從來不去研究這些所謂終極的,本質的,不可知的,而又毫無現實意義的問題。科學只研究當下我們所能理解的客觀規律,哪怕我們玩的是個單機游戲,那也當做網絡游戲來看待,哪怕客觀世界並不存在,我們同樣還是當做客觀世界來看待。科學只關心對我們有幫助的東西,管它究竟是虛幻的還是真實的。
所謂科學精神,其實是一種哪怕真相很可怕,甚至永不可知,但是我們還是滿懷希望去探索可知的文明生存哲學。依靠這套哲學,人類哪怕永遠無法突破當前的世界維度,也同樣能享受文明存在的價值和意義!
是啊,多好的世界啊,與其痴問上天,不如認真在這個紅塵裡打打滾。
============================
【第六次追更】
好久好久沒有更新這個回答了,後面又有很多朋友留下很多有趣的回復,翻看時候我也想到一個同樣有趣的現象,所以今天來繼續跟進更新一節。
因為有玩家問除了上面舉例的延遲選擇實驗,還有沒有其他的類似現象能用虛擬世界的設想來詮釋?我認真思考了一下。
其實,幾乎所有我瞭解的量子實驗都可以用類似的思想來解釋,但是因為過於復雜,不利於大家理解,所以我不想再描述更復雜的量子實驗了。但我最近正好在看一些游戲類的帖子,在看到一篇有關3D游戲的帖子的時候正好想到了一個類似的對應現象可以談談。
而這個現象涉及到量子的另外一個詭異的行為,這個詭異行為就是所謂的“量子隧穿效應”。
所謂量子的隧穿效應,就是指粒子在某些尺度下,會隨機的直接越過一些高能的位勢壘,通俗說就是穿牆而過了。只要牆壁足夠薄的情況下,基本粒子靠近牆壁的時候都有可能概率直接穿過臨近的牆壁屏障而出現在牆壁的另一邊。這聽起來自然也是違背常識的,為什麼尺度小的一定程度,阻擋對於粒子來說就可以偶爾消失掉?這在經典物理學中是無法解釋的,一個小球想要穿過哪怕是極薄的紙,也不可能既不付出任何能量,也不弄破這張紙。可是在量子世界裡,粒子就是這樣詭異的越過了足夠薄的障礙。
也正是存在這個隧穿效應,才導致我們現在的微電子芯片技術發展到1nm時代就碰上了繼續縮小尺寸的物理學障礙。芯片裡阻隔電子的材料如果尺寸小到5nm以下,量子隧穿效應導致的漏電現象就不可忽視了,如果尺寸進一步減小,那麼漏電問題將更加嚴重,從而導致芯片的邏輯電路無法正常工作。這個問題已經成為芯片技術繼續發展需要克服的最大障礙了。
當然,反過來,科學家也利用這個效應開發了很多具備實用價值的應用。比如隧道電子掃描技術等等,利用隧穿效應製作的隧道掃描電子顯微鏡可以幫助我們看到原子尺度的微觀世界,這充分說明量子隧穿效應確實是真實存在且已經直接進入到日常技術的應用領域了。
不過我們的重點是,怎樣理解這個效應呢?如果按照量子理論的一些傳統理論,是用量子具備不確定原理來解釋,量子具有一些不確定的能量,偶爾它們可以從虛無中憑空“借”到了一些能量,然後借助這些能量就越過了牆壁,從而實現了憑空穿牆……是不是聽起來也很玄幻?
好了,那按本文的習慣,我們先看看游戲中有沒有這個現象。
游戲中不僅有,而且還相當的普遍!游戲中的這個現象簡單說就是3D物體的運動穿模。
什麼是3D物體的運動穿模呢?就是說,在3D游戲中,運動物體有時候會在碰撞的時候穿過障礙物體,或者是穿到地形裡面去。

游戲裡的看太多了,來個現實世界的穿模
這其實是一個游戲BUG,為啥會出現這個現象呢,3D游戲的程序員都很清楚,這其實是一個碰撞檢測算法的精度問題。在3D游戲裡,運動物體看上去像是連續運動的,比如一輛汽車,或者一個火球,但實際上呢這些運動物體的位置卻是間斷更新的,因為在計算機的計算過程裡不可能有什麼真正連續的事件,任何運動其實都是離散的。
就像在游戲中被投出去的石頭雖然程序是用拋物線方程來計算飛行時間和位置的關系,但是實際上石頭的位置卻不是像理想拋物線一樣連續的,石頭在飛行中有沒有碰到某個物體卻必須要隔一會才能通過檢測它和其它物體之間的相對距離關系來判定。而這個檢測時間間隔就是碰撞算法的循環時間間隔。如果這個循環時間間隔設置的太大,那麼就可能出現石頭在上一次檢測的時候還沒有碰到物體,而下一次檢測的時候已經穿過了物體的穿模BUG現象。但是系統是不可能把這個時間設置成為無限小的,甚至不能設置的太小,尤其是在多物體運動的場景下。因為在同一場景下,運動的物體越多,那麼需要檢測的相對關系就越多,系統需要檢測每個物體和其他所有物體之間的相對位置,而這個檢測數量顯然是運動物體的數量的階乘關系,所以每多一個運動物體,那麼計算量就會上升一個數量級。這其實也是3D游戲中一個重要的算法優化問題,在3D游戲裡,往往需要用各種二叉樹四叉樹來不斷的優化碰撞算法以盡量減小指數級上升的運算量。同時在游戲團隊裡,3D游戲的關卡策劃們也知道不要把運動物體設計太多,還有不要把運動物體設計的太小或者過大,錯誤的需求不利於減少運算量。至於到底能設計多少就非常需要經驗了,所以往往會有些還不懂行的新策劃在一通天馬行空的亂設計後承接到了來自程序員的致命怒火。
那說回我們這個現實世界就很有趣了,現實世界裡大多數我們肉眼可見,甚至顯微鏡可見的領域裡,物體相對運動時候都呈現了非常良好的碰撞關系,完全符合牛頓力學的經典描述。但是,如果我們這個世界是虛擬的,往極限上去想,就一定會到最後出現算法精度覆蓋不到的現象。果然,到了量子尺度下,這個現象出現了!
這就是所謂的量子隧穿的真正原因,這個虛擬宇宙的開發者沒有考慮到(或者覺得沒有必要考慮到)我們會去觀察如此之小的尺度下的運動碰撞現象,虛擬宇宙裡的碰撞算法的檢測精度也是有極限的,當兩個足夠小的物體靠的足夠近的時候,粒子的基本運動就會導致穿模BUG!於是,隧穿出現了,量子毫無道理的出現在了牆壁的另一邊,這不是依靠憑空借來的能量實現的,這只是系統覺得沒必要用更小的時間間隔來檢測粒子的碰撞事件。
從算法角度上思考,其實我們也可以看出來隧穿的幾個特點:
1 虛擬系統裡的碰撞算法檢測的循環時間肯定是遠大於宇宙最小時間單位“普朗克時間”的,因為循環裡還需要容納大量的檢測運算過程;
2 隧穿肯定是概率性的,因為量子位置輸出因為有精度限制,所以存在隨機,檢測結果在一些邊界情況時自然也有概率性的結果。但是,牆壁越薄,出現的概率自然也就越大,這很好理解。
最後,我們來看一個隧穿效應裡面最難以解釋的現象:”超光速隧穿“。根據量子理論中能量時間的不確定性原理,量子穿越屏障的時間和屏障的能壘高度是成反比的,也就是說,屏障能量越高,穿越時間反而越短,如果這個屏障的寬度足夠的話,那麼足夠高能的屏障就會導致粒子以穿越光速的速度穿過了屏障,這和相對論中指出的光速是宇宙最大速度就沖突了。
理論物理學家們就這個現象爭論不休,並且提出了各種各樣的新的假設和說法來解釋這個現象,試圖一方面要堅決捍衛光速是宇宙速度絕對上限的地位,另一方面又要能解釋出量子超光速穿牆的現像是咋回事。這些先進理論彎彎繞繞復雜無比,一般人建議不要去瞭解,以免出現頭腦過載的症狀。所以我們這些凡人還是回到地面來,想想看怎麼用我們初中二年級的水平來理解這個最尖端的科學問題吧。
其實,這個問題同樣也可以抓一個游戲程序員來拷問拷問。
比如,你是某個網絡賽車游戲公司的老闆,今天你很生氣,因為游戲裡某條賽道的最新成績被刷新到了一個恐怖的令人驚奇的地步,有玩家只用了幾秒鐘就完成了比賽,很顯然這是游戲出現BUG被人利用了,於是你叫來了游戲的運營經理和研發經理開會。
“你們誰來跟我解釋一下,這個變態的成績玩家是怎樣做到的?”你作為老闆有權要求下屬們給你一個合理的解釋。
運營經理連忙回答:“我瞭解過了,這是玩家利用BUG實現的。”
研發經理感覺很奇怪,說到:"應該不可能啊,這種BUG理論上是不可能出現的。”
於是你問道:“為什麼不可能出現呢?”
研發經理說:“因為我們游戲裡的賽車其實是有速度上限的,無論玩家怎樣改裝賽車,都不可能超過這個速度上限。”
“為什麼不可能超過上限呢?難道玩家沒有某種手段繞過這個限制嗎?”
“不可能繞過的,因為這個速度上限並不是我們為了防止玩家刷BUG設置的,而是我們游戲的底層機制決定的。因為賽車在我們游戲裡運動需要不斷的改變位置,而我們游戲裡面物體改變位置的最小單位和最小時間單位都是確定的,所以從理論上就會有一個最大速度,玩家無論用什麼辦法都不可能讓賽車超過這個速度。因為這個速度就是我們游戲能保證賽車連續運動的極限,再快,賽車在玩家眼裡就會出現瞬移了,這種現象從我們的底層算法上就是無法出現的,我們的賽車在程序空間中,只能一格一格的移動,不能跳格!”
你聽完,覺得研發經理說的很有道理,於是就非常疑惑的問運營經理:“那麼我們的玩家是怎麼做到的呢?”
運營經理說:“我也不太懂這個原理,但是我能把玩家的操作重現給你們看。”
於是運營經理進入游戲,選擇賽道開始比賽。只見運營經理在賽道上找到一個合適的位置,飛快的把車撞進了路邊的一個崖壁,經理試了幾次後成功了。某一次幾乎是一瞬間,車沒有被崖壁正常的彈回去,而是從另外一邊的崖壁被飛快的彈了出來,這個穿越過程似乎沒有花費任何時間,於是經理就重現出了玩家的變態成績。
辦公室裡一陣寂靜,你和研發經理兩人面面相覷。
研發經理畢竟是211畢業的高材生,他想了一會就恍然大悟道:“原來是這樣,我實在沒有想到會出現這種情況,這其實是賽道旁邊的崖壁太薄了造成的。”
“崖壁太薄為什麼造成這個BUG?”你一臉的疑惑。
“是這樣的”,研發經理已經完全理解了問題所在:“我們游戲裡面的碰撞檢測是有時間間隔的,程序會每隔一會檢測賽車模型的中心和各種阻擋物之間的距離關系,一旦距離小於某個值就會視作發生碰撞,將車彈回去。但是這個崖壁阻擋太薄了,玩家的車速高到某個程度的時候,撞進來又正好在兩次檢測的空隙之間的時候,車的中心就穿過了這個崖壁才被檢測到碰撞,但是因為模型已經越過了崖壁,於是碰撞程序就把車移到了另一邊,所以賽車就穿牆而過了。這個移動是碰撞算法造成的,和正常的移動不一樣,所以沒有受最小移動距離的限制,所以就超過了游戲的最高車速。”
“碰撞算法有這麼高的能力,能幫助賽車超過游戲的最高運動速度?”
“是的,游戲設置最高運動速度的底層原因是因為物體不能在空間中超過最小單位作跳躍,否則就會出現瞬移,如果有瞬移現象,那麼就可能出現兩個物體同時瞬移到同一個位置的可能。所以要求物體連續運動的本質上也是避免不同物體會同時出現在同一個最小空間單位裡。但是,碰撞算法的底層原因也是為了避免不同的物體同時出現在同一個空間裡,所以,游戲存在最高速度其實並不是原因或者目的,而是只是現象,更本質底層機制的其實避免不同物體的空間重疊,所以一旦出現這種空間重疊,這時候彈出物體幾乎是不需要所謂速度的,系統會以最快的節奏把模型瞬移出去。當然,也不是完全無時間消耗的瞬移,重新繪制物體還是要花費一點時間的,但這也遠超最高速度了。“
“哦”,你和運營經理總算弄明白了這個BUG的底層原因,於是你又問道:“那我們要怎樣避免玩家再利用這個BUG呢?”
研發經理想了一下說:“很簡單,把牆加厚點就行了。”
運營經理有點質疑:“這好像沒有從本質上解決問題吧?”
研發經理聳聳肩:“這就是最省事的辦法了,如果你覺得要從底層來徹底解決這個問題的話,首先我覺得沒必要,因為減小檢測間隔會極大的增加系統的負擔,需要買更強大更貴的服務器,而且絕大多數情況下對玩家體驗也不帶來什麼明顯改善。其次,修改底層算法風險很大,搞不好會把整個游戲搞宕機,老闆你看呢?”
“去讓關卡策劃和美術把崖壁改厚點,順便檢查下還有沒有其他賽道需要修改。”你感覺作為老闆,決策起來一點難度都沒有。
在結束會議之前,你有點不放心,又問了下研發經理:“你確定崖壁改厚了,就不會再出現這個BUG了吧。”
研發經理一看就是一個很嚴謹的人,他斟酌了一會說:“理論上,還是有穿過的幾率,因為我們的檢測時間也有隨機性,只要玩家嘗試的次數足夠多,再厚的阻擋也有穿過的概率,只是這個概率極小極小。”
“好吧,那就這樣吧”,你作為老闆深刻的理解不要為極小概率的事情去發愁的簡單道理,這種問題,留給知友們去操心就好了。
請成功穿過牆的朋友留言打卡
雖然上面的場景對話是我虛擬出來的情節,但是大家應該明白這段對話指的是什麼。從上面程序員和老闆的對話中,其實我們得到了一個非常驚人的看待宇宙基礎規律的視角,比如我們可以不把光速是當前時空速度上限當作是一種最底層的初始規律,而是把它視作一種現象,那麼這個宇宙必然還有更底層的規律導致了這種現象的出現。
除了光速,我們甚至可以用類似的角度來看待物理學中的各種基礎常數,尤其是那些有量綱的常數,它們很可能不是絕對不變的宇宙初始變量,而只是某些更底層的物理規律導致的一種結果。比如電子的電荷數值,或者質子的質量等等。
從另一方面來想,既然我們感覺常數之上還有更底層的規律,那麼常數絕對不變也不是那麼不可挑戰了。就好像光速,雖然在底層上有普朗克長度和時間做為計算基礎,但是更基礎的約束很可能來自宇宙要絕對避免不同物質在相同時空的重疊可能,那麼在某些特殊的情況下(比如量子尺度運算精度不足造成的重疊BUG),這個光速限制就有可能是會被打破的,這也體現了一種很容易理解的程序思維:下層邏輯必須服從上層邏輯的約束。
怎樣,作為一個普通觀眾,我們不僅又理解了一個現在最最前沿的科學難題,而且還獲得了一種全新看待宇宙規律的視角,有沒有一種成就感?
編輯於 2021-09-14 13:05