導語
“請不要閱讀這條消息”——哎呀,太晚了,你已經讀了!恭喜你,你剛剛體驗了自指悖論和愚人節惡作劇的完美結合。
愚人節讓你分不清真假,自指則是讓邏輯自己把自己繞暈。想想“這句話是假的”——如果它說的是真的,那它就是假的;如果它是假的,那它就是真的。是不是感覺大腦已經開始藍屏重啟了?
這種邏輯短路的奇妙感覺,正是愚人節和自指悖論共同的魅力所在。一個讓你笑著上當,一個讓你聰明地犯傻。下面,我們將一起探索這些能讓侯世達都稱為“金帶”的腦筋急轉彎,看看它們如何在從數學到生命,從計算機到哲學的各個領域搗鬼。
準備好讓你的大腦在“是”與“不是”之間愉快地彈跳了嗎?往下看,但別說我沒警告你——雖然這警告本身可能也是個悖論!
PS:也歡迎你在文末分享你最愛的自指悖論,用邏輯打個結,點贊前三名贏取《復雜》書籍+知識卡~
張江 | 作者
自指——一條永恒的金帶
自指是一個非常古老的話題,它通常與古代奧義以及各種神秘哲學有關。例如佛教中所提倡的“觀身無常、觀心無我”,以及古希臘的“認識你自己”,都在勸解人們能夠將心智的觀察箭頭指向自己。中國道家所倡導的“無”,正是一個最簡單的一字悖論。
自噬的蛇
一幅最能體現自指深邃含義的圖畫莫過于這條正在吞噬自己的蛇。此蛇作為一種圖騰曾廣泛出現在北歐神話、基督教神學、印度教和非洲宗教之中。這條蛇將自指那種深刻的自我毀滅性體現得淋漓盡致——我們可以想象一下當它把自己吞噬完畢會產生怎樣怪異的情景。
將這種自我毀滅性的古代奧義應用到現代科學中已經產生了一系列深刻的結論。首先,在19世紀末,著名數學家康托爾(George Cantor)將“對角線刪除”法則應用到集合論中,從而證明了實數的個數比自然數多。緊接著,羅素(Bertrand Russell)提出了著名的“羅素悖論”而摧毀了弗雷格(Gottlob Frege)的數學大廈。年僅25歲的哥德爾(Kurt G?del)巧妙地應用同樣的破壞性自指一舉摧毀了數學大師希爾伯特(David Hilbert)的完備一致性的數學體系夢想。圖靈(Alan Turing)則利用同樣的技巧進一步發現任何超級計算機都不可能求解的圖靈停機問題。
紐約時報曾將哥德爾不完備定理評價為20世紀最偉大的數學定理。自指可以用來構造破壞性的悖論已經是眾人皆知、司空見慣了。然而,這種認識其實很片面。自指包含了比自指悖論更寬泛的內容,因為在自指大家庭中,還包括另外一類構建性的成員。
1953年,正當人們舉杯歡慶沃森和克里克發現了DNA雙螺旋結構,并從分子層面上解釋了生命的自我復制之謎的時候,另外一名偉大的美國匈牙利裔數學家:約翰.馮諾依曼(John von Neumann)正在獨立地思考著生命自我復制的邏輯基礎。然而,令人遺憾的是,那時的馮諾依曼已經患上了癌癥,并于1957年的2月去世。于是,他的助手阿瑟.伯克斯Arthur Burks將他關于自復制自動機理論的整理成書《Theory of Self-reproducing Automata》,并于1966年出版。
集智俱樂部資深粉絲“東方和尚”將全書第一部分翻譯成中文,張江做了詳細點評。我們將其整理成“馮·諾依曼自動機器理論”系列文章。
與沃森.克里克不同的是,馮諾依曼要尋找的是生命自我復制的邏輯基礎而非物質基礎。雖然馮諾依曼沒有明確指出,但是已經暗含了這個自復制的邏輯基礎不是別的,正是一種自指結構。也就是說,自指恰恰是生命實現自我復制的邏輯內核。這也許會讓讀者感到困惑。不是說,自指都是用來構造諸如哥德爾定理、羅素悖論之類的破壞性武器嗎?實際上,還存在著另外一大類自指,筆者稱之為“建構性的自指”,它不但不會引起破壞,反而能夠創造很多令人意想不到的驚奇結構。至于自我繁殖的系統是如何令人意想不到的,請參考第4節的討論。
實際上,早在1938年,與哥德爾共同奠定遞歸函數論基礎的數學家克林尼(Stephen Kleene)就證明了遞歸函數論中的一個著名定理:遞歸定理(更精確地說,應該叫Kleene第二遞歸定理)。根據它,人們可以很輕松地得到一個數學推論,系統的自我復制是可能的。
證明遞歸定理的核心技巧,是一個被稱為“蒯(kuai3)恩”的特別技術。蒯恩(Willard.V. Quine)是美國的哲學家,終身致力于哲學、數理邏輯、集合論的研究。他創造了一種稱之為蒯恩的方法,使得人們可以不通過使用“我”或者“這句話”等詞語就能創造出可以談論自身的句子來。
有趣的是,蒯恩構造恰恰就是那條“黃金對角線”(這一方法正是當年康托爾最早提出證明實數比自然數多的方法,也是哥德爾定理構造哥德爾句子的關鍵技術)。只不過,康托爾、哥德爾等人的對角線與蒯恩的對角線方法稍有不同。我們會在第6節中詳細地討論這些技術。
總而言之,從宗教到科學,從悖論到自復制,自指是貫穿始終的主題。正如《哥德爾、艾舍爾、巴赫》這本書指出的那樣,自指是一條永恒的金帶。
《哥德爾、艾舍爾、巴赫》的原著(左,20 周年)和中譯本(右)
集智俱樂部曾于2018年4月18日邀請侯世達(DouglasRichard Hofstadter)來到北京線下和杭州線下做分享交流:
https://pattern.swarma.org/study_group_issue/383
深刻的影響了很多集智社區的成員,包括集智俱樂部的創始人,北京師范大學的教授張江,推薦張江教授對《GEB》的解讀視頻:https://campus.swarma.org/course/51
語言中的自指
提到自指,很多讀者馬上就會聯系到那句臭名昭著的悖論句子:
這句話是錯的
這句話之所以讓人討厭,是因為你無論從正面(即假設它是對的),還是從反面(即假設它是錯的),都會得出相反的結論。因此,這句話既不對也不錯。
然而,這句“說謊者悖論”僅僅是廣大自指語句家庭中的成員之一,有很多語言是自指的,但卻是無害的甚至是有益的。比如下面的句子:
這句話是對的
這句話就是一個既可以是對又可以是錯的句子。你可以非常虔誠地承認這句話所論述的內容是對的,然后,再看它的內容,它正在陳述:它自己是對的。于是你初期的假設被證實了。另一方面,當你假設它是錯誤的時候,你就會知道它的語義“這句話對”是錯誤的,于是你就真的得到了這句話就是錯誤的結論。也就是說這句話的對錯完全取決于你的假設。
當然,還有一些更好玩的自指句子,如:
這句話有2個‘這’字,2個‘句’字,2個‘話’字,2個‘有’字,7個‘2’字,11個‘個’字,11個‘字’字,2個‘7’字,3個‘11’字,2個‘3’字
這被稱為自描述語句,也就是說這個句子正在描述自己的“分子”構成。當你嘗試獨立寫下這樣一個自描述語句的時候就會發現,你其實并沒有創造這句話,而是這句話正在“迫使”你寫出它自己。這是因為,按照這個句子的邏輯一旦你開始寫下第一個字,你就必須按照已出現的字的情況而自動補全后面的句子。同時,這個語句還具有了不起的自我修復性。你不妨將該句子中的某一個漢字刪掉(例如你刪除第一個‘2’字),就會很快發現該句子中的一部分出現問題了,即“7個‘2’字”是錯誤的。因此,你會根據句子整體的意思指導而發現你少了一個‘2’字。
因此,自指不都是破壞性的,更多的自指是無害的,而且可以給我們帶來一定的“驚奇性”。這種驚奇性的來源主要是自指語句中包含的無窮遞歸,因為它可以創造無限的虛擬層次。
虛擬層次是一個我們司空見慣的概念,例如故事中的故事,電影中的電影,夢境中的夢境等等(電影《盜夢空間》(Inception)就是對夢中夢層次的一個非常好的展示)。在上一章中,我們已經領略了程序是可以通過模擬而產生多個虛擬層次的。在語言中,我們不妨將引號看作是標識一個新的虛擬層次出現的符號。這樣,下面這句話:
“明天會下雨”是錯的
就包含了兩個層次,更深一層的句子是“明天會下雨”,而上面一層則是“‘明天會下雨’是錯的”。當然,我們通過不斷地加引號就能創造出各種復雜的嵌套結構。
另外,人們發明了一類代詞可以指代不同的句子。例如“這句話”,“那句話”。這些代詞就仿佛是一個指針會將一個句子整體放到一個引號中而實現多個層次的嵌套。例如下面兩句話:
下面的句子是對的
明天會下雨
在第一句話中出現了一個指代詞“下面的句子”,它是一個指針指向了“明天會下雨”這句話,于是我們觀察者作為一個解讀器就會將這兩句話解釋為:
“明天會下雨”是對的
也就是說,我們照指代詞的意思將“明天會下雨”這句話加上了引號放到了第一句中的“下面的句子”那個指代詞之中了。于是,指代詞創造了包含了兩個虛擬層次的句子。
按照同樣的邏輯,當我們遇到了指代詞“這句話”的時候會發生什么呢?我們將會得到一個包含無窮虛擬層次的語句。例如我們將自指語句“這句話是錯的”按照代詞的法則展開就會得到:
““““…………”是錯的”是錯的”…………”是錯的”是錯的
我們看到,只要“這句話”這個指代詞一出現,我們就能夠得到無窮。因此,自指語句往往都與無窮虛擬層次有關。注意,我這里用的詞語是“往往”,而不是“一定”。之所以這樣說,是因為的確存在著一種構造自指語句的方法,讓我們繞過無窮。這種方法就是大名鼎鼎的蒯恩法。
在討論蒯恩之前,讓我們先來領教句子中的動詞(動詞短語)。大部分動詞是與我們讀句子的觀察者無關的,例如:
小明起床了
這個句子表達了小明這個人物正在做的一個動作是起床了。其中“起床了”就是一個動詞。當然,有很多動詞不僅可以描述一個人或者事物,還可以去描述句子,例如:
“小明起床了”包含5個字
這里面的“包含5個字”就是一個描述句子“小明起床了”的動詞。還有一些句子包含了動詞,而這個動詞是使役我們讀這個句子的觀察者做出某種動作的:
刪除“小明起床了”中的第一個字
這個“刪除第一個字”的動作就是使役讀句子的觀察者做出的,于是,我們按照這個句子的說法進行操作,就會得到一個新句子:
明起床了
我們可以再做稍微復雜一點的操作,例如:
把“小明起床了”中的第一個字放到左引號前面,其余的字放到右引號后面,并保持引號及其中的字不變
按照這個句子所描述的復雜操作(你最好拿來一個草稿紙,自己在紙上寫一寫),我們就可以得到:
小“小明起床了”明起床了
好,既然你已經熟悉了這個復雜的操作,那么讓我們來看下面一個古怪的句子:
把“把中的第一個字放到左引號前面,其余的字放到右引號后面,并保持引號及其中的字不變”中的第一個字放到左引號前面,其余的字放到右引號后面,并保持引號及其中的字不變
如果按照這個句子指示的操作你會得到什么?讓我們來做一做。按照這個句子的要求,我們可以把引號之中的句子施行下面的三步操作:第一步,把第一個字,也就是“把”放在左引號前面,這樣就得到的新句子中的第一個字:“把”;第二步,將后面的字放在右引號后面,這樣新句子就會以“中的第一個字放到……字不變”為結尾;第三步,保持引號和其中的字不變,于是新句子的中間會有一個引號,并且引號的中間就會是“把中的第一個字放到……”。于是,我們得到的新句子就是:
把“把中的第一個字放到左引號前面,其余的字放到右引號后面,并保持引號及其中的字不變”中的第一個字放到左引號前面,其余的字放到右引號后面,并保持引號及其中的字不變
請注意,這個新句子和原句子是一模一樣的!事實上,原句子使役我們觀察者完成了一次對自己的拷貝!這個句子其實就是大名鼎鼎的蒯恩了!
也許,你已經有些糊涂了,讓我們再好好看看究竟蒯恩是怎么操作的。首先,我們定義了一種具有動詞的句子,也就是:
把“X”中的第一個字放到左引號前面,其余的字放到右引號后面,并保持引號及其中的字不變
我們不妨將這個句子記為,其中的就是一個空穴,可以往其中添放任何一個句子。例如,如果我們讓=“小明起床了”,那么原句子就成為了一個完整的句子:
把“小明起床了”中的第一個字放到左引號前面,其余的字放到右引號后面,并保持引號及其中的字不變
按照的意思對進行操作就得到了新句子:
小“小明起床了”明起床了
在這個例子中,顯然與沒有什么關系。
進一步,如果去除句子中的空穴,我們可以得到:
把中的第一個字放到左引號前面,其余的字放到右引號后面,并保持引號及其中的字不變
它也是一個句子(盡管它不完整),我們記它為。最關鍵的時刻來臨了:我們讓并代入之中會怎樣?也就是將除去空穴的句子部分放到這個句子的空穴之中:
把“把中的第一個字放到左引號前面,其余的字放到右引號后面,并保持引號及其中的字不變”中的第一個字放到左引號前面,其余的字放到右引號后面,并保持引號及其中的字不變
我們不妨把這個句子記做,因為我們把空穴換成了殘句子。之后,我們再按照這個句子所給出的使役動詞進行操作,就能得到新句子,也就是:
把“把中的第一個字放到左引號前面,其余的字放到右引號后面,并保持引號及其中的字不變”中的第一個字放到左引號前面,其余的字放到右引號后面,并保持引號及其中的字不變
令人驚奇的是,經過動詞操作之后創造的句子與原來的句子竟然是一模一樣的!所以句子利用使役動詞完成了“自復制”過程,也就是。
我們把這種技巧稱之為蒯恩以紀念它的發現者美國哲學家W.V. Quine。你會看到,這種技巧可以讓我們不用“這句話”指代詞就能夠造出自指語句,比如下面這個句子:
把“把中的第一個字放到左引號前面,其余的字放到右引號后面,并保持引號及其中的字不變得到的句子是假的”中的第一個字放到左引號前面,其余的字放到右引號后面,并保持引號及其中的字不變得到的句子是假的
注意,這個句子與前面的句子稍有不同,這就是在后面加上了一個判斷“得到的句子是假的”。我們不妨記“得到的句子是假的”,并且把:
把“X”中的第一個字放到左引號前面,其余的字放到右引號后面,并保持引號及其中的字不變得到的句子是假的
這句話記為,其中符號表示將兩個句子粘合在一起形成新的句子,于是就是:
把“把中的第一個字放到左引號前面,其余的字放到右引號后面,并保持引號及其中的字不變得到的句子是假的”中的第一個字放到左引號前面,其余的字放到右引號后面,并保持引號及其中的字不變得到的句子是假的
我們可以驗證,經過句子所描述的操作之后得到的句子跟是一模一樣的。所以這句話就相當于:“這句話是假的”。我們沒使用“這句話”指代詞就實現了自指。
有關更多的語言中的蒯恩操作的討論請參看《哥德爾、艾舍爾、巴赫——集異璧之大成》一書的對話《G弦上的詠嘆調》,以及《Diagonalization and Self-Reference》一書。
也許你會覺得我們在玩弄語言游戲,然而,這種語言技術卻在數學和計算機中起到了非常大的作用,因為蒯恩句子恰恰就是自復制機器的邏輯基礎,也是Godel定理證明過程中的關鍵一步。下面,我們分別對建構性自指和破壞性自指進行詳細地介紹。
建構性的自指
雖然提起自指,人們很容易想到自指悖輪。但是,人們不熟悉的是另外一大類無害的自指,它們通常直接應用蒯恩技術,而實現某些意想不到的結構或者功能。下面,讓我們先從一種最簡單的建構性自指:自打印程序說起。
所謂的程序自打印就是指一個程序能夠在不讀取外部文件的條件下把自己的源代碼打印出來。首先,我們要先領教一下,一個自我打印的程序是多么不可能的!我們知道,要寫一個程序打印出“helloworld!”字樣是非常容易的,例如:
Print(‘helloworld!’)
注意在這個程序中,字符串都用單引號括起來。那么,我們能不能寫一個程序,把這個打印“helloworld!”程序的源代碼打印出來呢?這也是可以辦到的,例如下面的程序:
Print(‘Print(\’helloworld!\’)’)
注意,這里面的“\’”會被編譯器解釋為一個字符串,這個字符串中就有一個字符:“ ` ”。采用這個技巧,我們就可以解決如何在一個引號之中再輸入一個引號的問題了。所以,我們可以很輕松地打印出這個能夠打印”helloworld!”程序的程序源代碼出來。但是很顯然這個程序并不能打印出它自己,也許你會想到能不能打印出上面的程序源代碼出來?當然可以!
Print(‘Print(\’Print(\\\’helloworld!\\\’)\’)’)
其中\\就表示包含一個字符“\”的字符串變量,這樣Print(‘\\’)就會打印出一個字符“\”,而Print(‘\\\’’)就會打印出字符串“\’”出來。所以,引號里面可以放入任意層次的引號。
但是這個程序仍然不能打印自己!你很快發現,我們人類是寫不出這種能夠打印自己的程序的,因為它包含了無窮遞歸。不過,通過蒯恩技巧,實際上我們完全可以寫出來一個自打印程序,如下:
S(x){ q=’S(x){\\n q=\\\’\’+q+\’\\\’;\\n Print(\\\’\’+p(q)+\’\\\’);\\n}’; Print(‘S(x){\n q=\’’+q+’\’;\n Print(\’’+p(q)+’\’);\n}’); }
源代碼1:自打印程序源代碼
這里面的“\n”表示換行符,即如果執行Print(‘A\nB’),則程序會輸出下面的字符串:
A B
“+”表示將兩個字符串進行串聯形成一個新的字符串,例如A=’123’,B=’456’,則A+B=’123456’。
這個自打印程序調用了一個簡單的解碼函數,的作用是將字符串變換成更淺一層次的字符串。例如,如果是“\\\’\\’\\n\\”,那么這個函數就會計算輸出“\’’\n\”。也就是說完成了一組映射:它把“\\”映射成“\”,把“\’”映射成“’”,而把“\n”映射成回車符。顯然是可以寫出來的。我們知道,由引號的引用可以形成更加深層次的虛擬世界(參見上一小節)。所以的作用就是讓字符串彈出一層虛擬世界。由于的作用很簡單,我們假設它是一個系統自帶的函數,因此就不在源代碼1中給出的實現代碼了。
S(x)這個程序中包含了過多的“\”和“’”符號,這就導致我們理解源代碼1稍顯困難,下面我們將把該程序表示成下面的圖,從而讓讀者看得更清晰一些:
自打印程序源代碼中的引號層次示意
如上圖,這個自打印程序中的引號全部用方框來替代。這樣第一層引號’…’就對應了第一層的方框,引號中的引號,即“\’…\’”就對應了框中的一個框。這樣,由于程序中出現最多的層次是四層引號,即“\\\’”,所以上圖中就出現了第四層框。
另外,我們還觀察到,這個程序包含了兩個大框,即“q=”后面的黃框和“Print()”之中的那個藍框。這兩個框的結構是完全一樣的,只不過黃框比藍框多了一個虛擬層次,這反映在所有的藍色框中的最深一層框都再加上一層框就得到了黃色框。
更有趣的是,整個程序S(x)實際上和這兩個框是相似的,因此這個程序本身就是一個分形結構。在傳統的分形結構中,每一個部分都會包括無窮多的細節。但是,在這個自打印程序中,雖然有嵌套的分形結構,但是卻沒有達到無窮,最深的引號也僅僅有4層。
讓我們來分析一下這個程序是如何運作的。首先,看程序的最后一行,即Print(‘S(x){\nq=\’’+q+’\’;\nPrint(\’’+p(q)+’\’);\n}’);這句話的作用是讓程序在屏幕上打印出一個字符串。注意觀察,這個被打印出的字符串其實是由“+”號被分割成了5個部分,第一部分是“S(x){\nq=\’”,第二個部分是q這個字符串的原封不動的拷貝,第三部分是字符串:“\’;\nPrint(\’”,第四部分是函數作用到上面的結果即;第五部分還是一個字符串:“\’);\n}”。然后當我們把q字符串的數值代入第二部分和第四部分,并進行運算之后,就得到了和源程序一模一樣的結果。你不妨在計算機上運行這段程序,就會發現這段程序會在屏幕上赤裸裸地把自己的源代碼打印出來。
我們不妨把這段程序的5個部分進行歸并,寫成由下面的三部分構成的:,其中Copy就是5部分中的第二部分,即相當于一個拷貝字符串的程序,你輸入 給Copy什么字符串,Copy就會把那個字符串再原封不動地吐出來;Popup這部分就是原來的5部分中的第四部分,即函數,它的作用相當于一個彈出操作,也就是為輸入的字符 串脫去一層引號。如果輸入的字符串原來是在第層虛擬世界,則Popup的作用就是讓字符串跳到第層;最后Control這部分就相當于原來的第1、3、5這三部分以及最一開始的語句Print的總合,它的作用就相當于是為Copy和Popup制造出來的字符添加適當的連接詞,使得最后的字符串能夠拼接成與原來的程序一模一樣的源程序,并將其打印到屏幕上。所以這句“Print(‘S(x){\nq=\’’+q+’\’;\nPrint(\’’+p(q)+’\’);\n}’);”就可以改寫成。其中“о”表示將不同的程序連接為一體。
如果我們把一個計算機程序的描述(或者稱源代碼)寫為,則自打印程序的第一條賦值語句就相當于給賦予了,即這三個程序連在一起的源代碼。最后我們可以將自打印程序簡寫為:
S(x){ q= λ (Copyo Popupo Control) (Copyo Popupo Control)(q); }
源代碼2:自打印程序的源碼縮寫
我們可以進一步地把它簡寫為:,其中表示()這三個程序的聯合程序,而則表示聯合程序的源代碼。這個程序的作用是輸出一個特殊的字符串“”即程序調用自己的代碼x的源程序,我們稱這個為蒯恩函數。
那么,自打印程序不是別的,正是將蒯恩函數自己的源代碼再喂給它自己,這樣就產生了""的效果。等式左邊是對的計算,是一個動作,它的結果產生了等式右邊的字符串"",而這個字符串恰恰就是作用于的源代碼。我們看到,第2節中的蒯恩方法與這里的是一模一樣的。仔細想想不難發現,其實自打印程序的邏輯與蒯恩語句的邏輯是相通的。因此,自指恰恰就隱藏在了這段自打印程序之中了。
我們只要對這個自打印程序稍加更改就能創造出自我復制的程序出來。首先,我們要說明程序的自我復制究竟是什么意思。假設內存中漂浮著很多大大小小的程序,某一個程序P能夠自我復制是指,當CPU執行到程序P的時候,P就會命令CPU執行一系列的操作使得它自己的一份拷貝會出現在內存中。但是,需要強調的是P不能夠從硬盤上讀取文件,否則自我復制將變得異常簡單,只要把硬盤上的源程序再調用到內存中就行了。乍一看,這似乎與自打印程序一樣不可能實現。但是利用與自打印程序同樣的蒯恩技巧,我們依然可以很輕松地構造出自復制的程序出來。
我們只需要把自打印程序()中的改成Construct就可以了。這里的Construct是一個函數,你輸入給Construct一段程序的源代碼,它就能把所對應的程序編譯出來并駐留在內存中。這樣,程序就可以完成自復制功能。
進一步,利用同樣的邏輯,我們也能夠制造出可以復制自身的真實機器。只要讓Construct代表從給定機器的描述而構造出實際機器就行了。在馮諾依曼的著作《自復制自動機理論(Theory of Self-reproducing Automata)》一書中,作者試圖構建的自復制自動機就包括了這四個部分。即自復制機器是由一個通用拷貝機(Copy)、一個通用構造機(Construct)和一個控制器(Control)以及所有這三臺機器的描述即源代碼構成的。
在此小節中,我們用自打印程序和自復制程序為例來說明了建構型的自指。然而,建構性的自指實際上不僅僅是這兩種,它還會有各種各樣的用途。
如果想更系統的了解層級與自指,推薦張江老師的復雜性思維的課程:
https://campus.swarma.org/course/1128
未完待續:
http://wiki.swarma.net/index.php/%E7%B3%BB%E7%BB%9F%E4%B8%AD%E7%9A%84%E8%A7%82%E5%AF%9F%E8%80%85(5)%E2%80%94%E2%80%94%E8%87%AA%E6%8C%87(或點擊閱讀原文)
互動有獎
既然你已經深入了自指悖論的兔子洞,現在輪到你來展示才華了!在評論區分享你遇到過的最有趣、最腦洞大開或最讓人抓狂的自指悖論例子。可以是你在生活中遇到的,也可以是你自己創造的腦筋急轉彎!
獎品公告
點贊數前三名的悖論將獲得:
《復雜》精裝圖書一本
限量版《復雜》知識卡一套
參與規則
在評論區分享一個自指悖論的例子
可以給其他人的悖論點贊(請注意:系統可能會自動忽略沒有先點贊本文的評論... 或者這句話本身就是個悖論?)
截止時間:4月8日晚上8點
獲獎名單將在4月10日公布
靈感提示(感謝社區成員韓司陽提供的靈感):
因果涌現讀書會第六季
在霓虹燈的閃爍、蟻群的精密協作、人類意識的誕生中,隱藏著微觀與宏觀之間深刻的因果關聯——這些看似簡單的個體行為,如何跨越尺度,涌現出令人驚嘆的復雜現象?因果涌現理論為我們揭示了答案:復雜系統的宏觀特征無法通過微觀元素的簡單疊加解釋,而是源于多尺度動態交互中涌現的因果結構。從奇異值分解(SVD)驅動的動態可逆性分析,到因果抽象與信息分解的量化工具,研究者們正逐步構建起一套跨越數學、物理與信息科學的理論框架,試圖解碼復雜系統的“涌現密碼”。
為了系統梳理因果涌現最新進展,北京師范大學系統科學學院教授、集智俱樂部創始人張江老師領銜發起,組織對本話題感興趣的朋友,深入研讀相關文獻,激發科研靈感。
讀書會將從2025年3月16日開始,每周日早9:00-11:00,持續時間預計10周左右。每周進行線上會議,與主講人等社區成員當面交流,之后可以獲得視頻回放持續學習。誠摯邀請領域內研究者、尋求跨領域融合的研究者加入,共同探討。
詳情請見:
1.
2.
3.
4.
5.
6.
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.