程序员的十层楼(11层)
第11層 上帝
看了上面的小標題,你可能會覺得奇怪,這篇文章不是講“程序員的十層樓”嗎?怎么冒出了第11層來了?
其實這并不矛盾,程序員確實只有十層樓,因為爬到第11層時,已經變成上帝,不再是程序員了;所以超出10層樓本身并不重要,關鍵的問題是看你有沒有能力變成上帝。
1、誰是上帝?
菜鳥們認為Linus Torvalds是程序員中的上帝,看完了前面各層樓的介紹,此時再看到這句話,相信你要忍不住在心里笑起來。當然,你會不會笑起來是事先注定的。Don Knuth也不是上帝,他離上帝還有三層樓的距離。即使是大哲們,他們離天堂也還差一層樓,因此這個世界上有史以來還沒有任何一個人變成過上帝。
我們感興趣的是,將來會不會有人爬到比大哲們更高的樓層上,變成了上帝。
要變成上帝,你得有上帝一樣的能力,上帝會造人,你會嗎?
你也許會怯生生地問:“我可以和愛人生小孩,算不算造人?”,你可能還會理直氣壯地說:“現在生物學上都可以克隆人了,早就有人掌握了造人的方法”。
事實上克隆人需要有人的體細胞,必須要先有人才會有體細胞。上帝造人時,這個世界上并沒有人,是從無生命的物質“塵土”中創造出的人。因此,用最原始的方法生人和克隆人都是從有生命信息的物質中生人,不能算作造人。
這樣看來,你根本不會造人,不過我可以告訴你一個“玄方”,讓你有機會學會如何造人。
如果你揭開了人類情感的奧秘,讓計算機也可以擁有和人類一樣的情感,那么計算機將可以理解人類的需求,具有了“情商”,將具有完整的和人一樣的能力。此時,人類進化到了機器人,科幻小說將變成現實,也就是說你已經掌握了真正的造人能力,晉升為“上帝”了。
未來到底有沒有人能變成“上帝”,人能不能進化到機器人,這是宿命論中事先注定了的。說到這里,不妨再告訴你一個打破宿命論的方法,這個方法就是你要爬到比上帝還要高的樓層。
“還有比上帝還高的樓層?”,你可能會第1時間內冒出這個問題,其實我也有同樣的懷疑。因此在寫第12層樓前,有必要弄清楚它到底存不存在,即你可不可以騎到上帝的頭上的問題。
2. 騎到上帝的頭上?
為了解決是否可以騎到上帝的頭上這個問題,不妨先假設存在比上帝高的樓層,也就是存在打破宿命論的方法。
宿命論的本質原因是因為時間是單向運行,不可逆轉造成的。如果你找到一種可以使時間逆轉的方法,那么你就打破了宿命論,爬到了比上帝還高的樓層。
看到這里,你也許會擺脫剛才陷于宿命論的困惑情緒,變得充滿希望般高興起來。不過,如果你的邏輯思維能力足夠好,仔細思考一下,會發現存在一個邏輯上的悖論。
在你找到時間逆轉的方法之前,顯然這個世界仍然是需要服從宿命論的,也就是說你能不能找到打破宿命論的方法是事先注定的。假設你在某個時間點t0處找到了打破宿命論的方法,你在打破宿命論后,想利用時間逆轉的方法回到某個時間點t2。下面來看看你到底能不能回到時間點t2。
取位于t0和t2之間的任意一個時間點t1,你在回到時間點t2之前,必須先經過時間點t1,考慮你到達t1的那一時刻,由于t1比t0要早,這個時間點上你還沒有找到時間逆轉的方法,所以到了時間t1點后,你無法再使用時間逆轉的能力回到時間點t2去,所以你永遠也回不到時間點t2,由于時間點t2是任意取的,因此,你永遠也無法使時間逆轉,或者說你根本就沒打破過宿命論,這與你在時間點t0打破了宿命論產生了矛盾。
上面這段話看起來似乎有點像“人永遠邁不出一步”的詭辯一樣,你可能會想返回到時間點t1時,仍然可以擁有時間逆轉能力啊。不過你又會發現一個新的問題,時間點t1本來是沒有時間逆轉能力的,現在又認為時間點t1又有時間逆轉能力,那時間點t1到底是有還是沒有時間逆轉能力呢?或者說在時間點t0前,宿命論注定了時間點t1是沒有時間逆轉能力的,現在你又認為時間點t1具有時間逆轉能力,那么這兩個時間點t1究竟是不是同一個時間點?如果不是同一個時間點,說明你沒有回到過去;如果是同一個時間點的話,豈不是自相矛盾嗎?
為了說得更形象一些,不妨假設你坐一艘超光速飛船,準備從時間點t0回到時間點t2去,假設你回到t2后,隨著時間的流逝,又達到了時間點t0,如果這時你又再次坐超光速飛船返回時間點t2,那么一個值得思考的問題就出現了,“你在時間點t2能不能看到上次返回時間點t2的飛船?”
如果回答不能看到飛船,那么上次返回的飛船那里去了呢?顯然很難解釋通。如果回答能看到飛船,那么你可以到達時間點t2后,下次時間到達t0時,你又坐飛船返回t2,這次你將可以看到上兩次的兩艘飛船。如果這樣一直循環下去,最后你會發現你可以在時間點t2看到無窮多的飛船。用程序員的術語說,叫做“程序陷入了死循環”,最后系統必然會出現“Out of Memory”現象而崩潰。
當然,你也可以認為有其他的方法,不需要飛船,可以一次性從時間點t0直接跳躍到時間點t2,并不需要經過時間點t1。下面不妨來分析一下這個方法是否可行。
既然是直接跳躍到時間點t2,那么你必然是在一個無窮小的時間里出現在時間點t2的某個空間里,例如你要在時間點t2回到某個廣場上。首先說明一下為什么是無窮小的時間里出現的,因為如果不是無窮小的時間里出現的話,那么必然可以取到一個時間點t1,會導致前面所說的時間點t1上出現悖論。
你在廣場上出現的時,廣場上的空氣必然要為你讓開空間,而這是在無窮小的時間里完成的,那么很容易推導出你周圍的空氣獲得的加速度和速度都是無窮大,因而它具有的動能也是無窮大,無窮大的能量和無窮大的速度意味著什么?一只鳥都可以將飛機撞下來,如果宇宙是有限大的話,它可以讓這個宇宙炸毀無窮次;即使宇宙是無限大,它也足以讓宇宙炸毀一次。宇宙都毀滅了,又何來的時間?還能說你回到了時間點t2嗎?
也許上面說的這些你仍然難以相信,不妨再說得更現實一些,假設你要回到100年前的一個時間點,這100年中,天上有多少流星湮滅了?有多少新星生成了?宇宙膨脹了多少?你有能力讓湮滅的流星復原、生成的新星重新返回未生成前的狀態,膨脹的宇宙收縮回去嗎?如果這些東西的狀態沒有回復到100年前,又怎么能說明你回到的是100年前的時間點呢?
根據上面的推導和分析,個人認為使時間逆轉的方法是不存在的,所以第12層樓是不存在的,自然沒有人可以騎到“上帝”的頭上。
宿命論將在有時間的時間里永遠統治這個世界。
轉載于:https://www.cnblogs.com/guojiantuan/archive/2009/04/24/1443035.html
總結
以上是生活随笔為你收集整理的程序员的十层楼(11层)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Visual Studio.net 20
- 下一篇: shell脚本作业