君子學院 | Master of Gentlemen (15):以德報德,以直報怨

星期一的晚上,一家位於辦公區域的Starbucks裡面,寸明鏡一面喝著咖啡提神,一面玩著一款線上遊戲。雖然才七點,但是咖啡店空空如也,平常一堆營業員下班後都會來這裡聊天打屁,如今卻不見人影。

因為今天股票市場罕見地提早休市了。

不用加班的寸明鏡卻沒有一絲一毫輕鬆的感覺,他正聚精會神地專注在眼前的遊戲。

這款遊戲叫做「信任」,是君子學院的「數師父」歐陽勾股製作的一款多人同步線上賽局遊戲。每一局,玩家有三十秒的時間,和一名隨機挑選的對手博奕五回合;每一個回合中,玩家必須決定自己要與對方「合作」或是「欺騙」對方。

如果該回合,雙方都決定「合作」,則兩邊都得到5分;雙方都「欺騙」,雙方都2分;一方合作,一方欺騙,欺騙的那方得到7分,被騙的那方得到0分。

五回合為一局。每一局系統都會幫你重新配對對手,並且統計所有玩家的累計分數,然後淘汰分數最低的5%玩家;至於分數最高的5%的玩家,則可以得到額外的一條「命」。

每個玩家都有固定的ID,也就是說,如果配對過程中,遇到曾經遇過的玩家,雙方是可以辨認出彼此的。玩家也可以看到彼此目前的累計分數,這也讓玩家可以評估對手可能會採取什麼策略。

如果可以存活200局,玩家可以得到一筆實質獎金,大約是新台幣一萬元;總分為前十名,可以得到獎金十萬元。

所以寸明鏡可是卯起來玩,至今已經來到第199局。寸明鏡已經坐在電腦前面快要兩小時,膀胱都要爆了。

一開始,寸明鏡在每一局的開局,都會研究跟紀錄對手的ID還有累計分數,來猜測對手可能「合作」多一點、還是「欺騙」多一些;可是,每局都只有30秒鐘,雙方要操作五回合,寸明鏡發現時間實在是不夠。

有幾次,因為花了太多時間研究,而導致差點沒時間作選擇,最後匆忙做出了錯誤的決定,讓他差點掉到最後的5%。

於是到了大約40局的時候,他就放棄研究對手策略了,而是以一種策略從一而終:

第一回合合作,第二回合開始,寸明鏡的動作則是模仿對手上一回合的動作。如果對手一直合作,那麼寸明鏡也會一直合作,雙方一起得到25分;如果對方一開始就欺騙,那麼從第二回合開始,寸明鏡就會以欺騙反制對方;如果對方從欺騙轉為合作,那麼他也會改回合作策略。

這個策略就是在對對手發出一個訊息:「你怎麼對我,我就怎麼對你。」

顯然,寸明鏡冒著被騙一回合的風險——但是,會從第一回合就開始欺騙的玩家,從20局開始就越來越少了,因為名聲太差,大家遇上他們,都會從第一回合就開始抵制,使他們每局只能得10分,慢慢都被淘汰了。此外,這個策略也有著在最後一回合被騙的可能,但是隨著玩家越來越少,相遇的重複性變高,「名聲」越來越重要,大家也越不敢進行欺騙。

第200局,寸明鏡總算堅持到了這邊。緊湊的遊戲進行、飆高的腎上腺素、快要炸裂的膀胱,讓他已經沒有心力去分析對手了,只是忠實地執行著他「模仿對手」的策略。

「Click!」他按下了滑鼠,送出了最後一回合的動作指令。畫面上出現了一道煙火以及一排文字:恭喜你完成了200局,你的排名是第24名。

畫面轉為一片黑暗,寸明鏡呆滯地看著黑色螢幕所反射出的、自己呆若木雞的臉。然後螢幕上出現一句話:

「歐陽勾股:辛苦你了,休息五分鐘,快去上個廁所吧。」

當寸明鏡順利解放回來之後,他的電腦螢幕畫面已經被自動切換到一個聊天室的畫面,裡頭有四個帳號:他自己、「數師父」歐陽勾股、以及兩位同學——女扮男裝(只有寸明鏡知道)的畫家柳無固、網路駭客安明時。

「謝謝大家的配合,」歐陽勾股的帳號頭像(一個代表勾股定理的直角三角形)閃動著,在螢幕上顯示出他的話:「剛剛那個遊戲是假的、是課程的一部分,除了你們三位玩家是真人以外,其他的玩家都是我用程式撰寫的虛擬玩家。」

靠。寸明鏡在螢幕的這端罵出聲來。害我憋尿了兩小時。

「但是獎勵是真的,明健(寸明鏡的表字)。」歐陽繼續接話:「只有你存活了下來,「但是獎勵是真的,明健(寸明鏡的表字)。」歐陽繼續接話:「只有你存活了下來,你的E-mail信箱裡面有我寄的一封密碼信,那是約當新台幣一萬元的比特幣。

「恭喜。」畫面那頭,柳無固傳來兩個字。

「要請客喔。」安明時傳來笑臉:「^__^」

「你們都沒有活下來嗎?」寸明鏡有一點訝異。

「無固在第12局被刷下來,他先採取了完全合作、然後又改為完全欺騙,卻無法彌補一開始的損失;」歐陽勾股說明了他們的情況:「明時支撐到了63局,一開始,他採用『合作四局、欺騙一局』的策略,但是漸漸被人識破,於是改為『合作三局、欺騙兩局』;然後每下愈況,最後只能完全欺騙,落到後段班了。」

「也就是只有我一個人灌咖啡窮緊張到了最後,你們兩個早早就認輸在旁邊休息了。」寸明鏡心算了一下,他們兩個起碼閒了一小時。

「你是金融業的嘛,交易這種遊戲,你很擅長啊。」安明時回了一句。

「這個信任遊戲,是我修改自一個知名的沙盒實驗『信任的演化』而來的,我加入了真人淘汰機制,來驗證人性;」歐陽勾股說話了:「更重要的是,這個遊戲可以幫助我們了解,社會是如何變成如今這個慘狀的。」

螢幕畫面再度變化,出現了八個不同顏色的人偶,一個粉紅色的人偶下方出現了一個名字:天真者。

「像是無固這樣的策略:無條件的合作,我們把他稱為『天真者』。」數師父開始講解:「從剛剛的實驗裡面我們發現,天真者很快就會被淘汰——就算他從第二局開始更改策略,也無法彌補一開始被其他人的剝削,最終還是要滅亡的。」

黃色人偶下方,出現了一個代稱:詐欺犯。

「明時的策略屬於詐欺犯:先讓你以為他要合作,到了最後關頭再騙你一局——當然,詐欺犯如果一開局就碰到欺騙策略,他是不會傻傻地選擇合作的。」歐陽勾股的頭像閃動:「詐欺犯可以在遊戲初期獲得暴利,但是如果不能夠隱匿詐欺犯的身分,那麼日久見人心——大家都會有所提防。結果就是,詐欺犯也會在遊戲的中段出局。」

藍色人偶出現了兩個字:「君子」。

「『子曰:以直報怨,以德報德。』我先對人家好,再依照他人對我的方式進行調整,這是君子在賽局裡面的表現。而這就是信任遊戲中,最佳的存活策略——也就是明健的策略。」

「無固、明時、明健,你們三位請別被我使用的代稱給冒犯了。你們在做策略的時候,心中想的只是存活、贏,根本沒有思考什麼道德問題。」歐陽勾股解釋著:「但是從一個旁觀者的角度來看,無論你們的初心是什麼,你們的表現就是『天真者』、『詐欺犯』以及『君子』。」

「這個遊戲讓我們用『現象』來檢視『君子』是否有價值。」數師父做出了結論。

「老師,」柳無固發問了:「其他的角色是什麼呢?」

畫面上,其他的角色紛紛出現了名稱以及專屬的交易策略:

黑色的「惡人」:永遠欺騙;

綠色的「鄉愿」:一開始合作,如果被欺騙,就會做出跟前一步相反的策略——乍看之下是君子,可是鄉愿每回合都有出錯機率,就算執行了錯誤的策略,他們還是會堅持錯誤,直到他們又被欺騙,才會再做出相反的策略;

紅色的「瘋子」:永遠隨機操作;

咖啡色的「復仇者」:一開始合作,一旦被騙,就會改為欺騙,再也不合作;

淺藍色的「聖人」:跟君子一樣,但是只有在被連續欺騙兩次的時候,才會更改策略為欺騙,一旦對手從欺騙改為合作,聖人也會馬上改回合作。

「大家想猜一猜,最後獲勝的人是誰嗎?」歐陽這麼說。

「聖人?」柳無固這麼猜。

「我猜是君子——假如能從一開始就執行君子策略的話,應該能成為贏家。」寸明鏡這樣分析。

「我想……」安明時思考了一會兒:「是鄉愿。」

答案揭曉:

寸明鏡名列24名,在他之前的玩家,分別是5個君子,1個聖人,5個復仇者。

以及12個鄉愿。鄉愿同時盤據了前三名。

「如何,意外嗎?」歐陽勾股問道:「君子和聖人在賽局的世界裡面不是優勝者。事實上,如果遊戲再繼續100局,生存下來的只會是鄉愿。」

「鄉愿、君子、聖人,他們的行為模式其實有點相似。」身為工程師的安明時分析著:「但是比起君子與聖人理智地以直報怨,鄉愿看似有點瘋癲的錯誤決策,反而會在有限的回合裡面,為他們贏得一些優勢。」

「雖然只有一點點,可能只比君子多個一分兩分,這就足以造成君子或是聖人被淘汰了。」歐陽勾股接著分析下去:「如果鄉愿的數量佔所有玩家的比例很高的時候,君子、聖人、乃至於其他所有的角色,都沒有任何一點存活的機會。」

這個結果讓寸明鏡大感意外,但是,有一個更深層的問題在他心中浮現——

「師尊,一定要『君子的勝利』才是勝利嗎?」

聊天室的畫面上瞬間被分成了八塊,每一塊畫面裡面,各有一組玩家,全部都是由同一類型的角色組成,彼此快速進行著遊戲。

天真者的族群裡面,每個人的平均分數最高,因為大家只會「合作」,就算偶爾因為意外而產生「欺騙」,也絕對不會有任何的報復活動;君子與聖人的平均分數次高,僅僅稍微遜於天真者,因為大家都以「合作」優先;鄉愿與詐欺犯、復仇者的平均分數更次之,大約只有君子聖人組的七成或是一半;瘋子的平均分數更低,而且無法收斂;惡人的分數是所有人之中最低的,因為從頭到尾都互相欺騙。

「我們把遊戲局中的每個玩家的平均分數,看作是『福利』,或是『幸福』,」歐陽勾股說明著:「我們想要找出一個對社會最好的情況,也就是『福利最大化』的可能性。」

「人之初,性本善,如果沒有各種荒誕的誘惑,人類都是天真者——不需要聖哲,自然會福利最大化。但是顯然這不切實際,只要一個惡人,就能毀掉所有的天真者。」

「大道之行也,天下為公——這個世道已經一去不復返,我們能夠追求的,只剩下小康世界、君子的世界——這就是為什麼『君子非贏不可』,一切都是為了清澈澄明的世道。」

師徒四人一陣靜默。

「老師,但是這個世界上充滿著鄉愿。如果照您所說的,鄉愿顛覆世界的力量如此之大,連君子與聖人都無法阻擋,」柳無固的頭像閃動,寸明鏡感覺到她有一點激動:「那我們又該如何淑世呢?」

「這就要讓你們自己來想想看了。」歐陽說完,畫面再度一變,出現一張表單:「接下來,請你們自行調整玩家的角色比例、犯錯機率、以及每一局的回合數,找找看,什麼方法才能在最短的局數中,把充滿鄉愿的社會,讓君子或是聖人成為贏家。」

於是寸明鏡開始做各種嘗試,半小時後,師徒四人重新連上了聊天室。

「如何?說說你們的解法吧?」歐陽要學生們分享心得。

「遊戲中,如果君子或是聖人的數量比鄉愿還要多,那麼最後就會是君子的勝利。」寸明鏡這麼回答,而柳無固也得到了這個結論。

「這可行嗎?」歐陽這麼問道:「真實的社會中,有可能會有51%以上的人都是君子嗎?」

寸明鏡不語,他覺得不可能;反倒是柳無固說了:「『明知不可為而為之,雖千萬人吾往矣。』這不正是孔老夫子的教誨嗎?教化一個是一個,終有一天,君子會成為世道的主流。」

寸明鏡可以想像螢幕那一端,英氣凜然的柳無固此刻說話的樣子,想必是雙眼炯炯有神,連真正的男子漢都自慚形穢吧。

「很美好,不過,花的時間太久了。」歐陽的回應看不出任何的情緒:「明時,你呢?」

「首先,我在鄉愿之中投下了25%的『復仇者』。」安明時回答了:「教育出君子很困難,但是把鄉愿變成復仇者倒是很容易——因為當今社會就是酸民的世界。」

寸明鏡覺得有一點點噁心,安明時的這種策略,很不像是平時那個嘻嘻哈哈的電腦宅。

「不錯不錯,你掌握到了要領。然後呢?」沒想到歐陽卻對安明時的策略投以讚許。

「大約15局之後,復仇者就會取代鄉愿,成為社會的主體;然後,我們再投入5%的聖人或是君子,」安明時繼續說明他的策略:「10局之後,就能達成君子為主體的禮樂社會了。」

寸明鏡啞然。安明時補充道:「明健,無固,你們不要覺得我荒謬,這是最快達到禮樂社會的方法啊——我這是按照遊戲規則找出的最佳解啦,不是我的本意。Peace喔。」

「很遺憾,並不是最佳解。」歐陽勾股打斷了他:「你總共花了35局。看看我的解法吧。」

歐陽在鄉愿之中,投入了5%的「惡人」;然後,他把每一局之中的回合數調為1:這代表,沒有任何玩家配對會重複,名聲變得不再重要;最後,他把犯錯的機率調到最低。

6局後,鄉愿已經被惡人清掃得一個不剩,如今,這是一個邪惡的世界。

然後,他再投入了5%的君子。

君子快速成長、同化惡人,4局之後,惡人完全消失,小康世界再現——只花了總共10局。

「你竟然讓惡人來清掃鄉愿!!!!!?」柳無固用了許多驚嘆號來表達她的不滿。

「黎明前,」歐陽淡淡地回應:「總是黑暗。這是理性判斷之後,最快達成禮樂社會的手段。如果一局是一年,按照你與明健的方法,大概要一百年、甚至永遠無法達成;按照明時的方法也要35年——用我的方法,只要痛10年、不、只要痛6年,然後光明就會在黑暗中滋長。」

「無固,不要激動啦,只是一個模擬遊戲罷了。我倒是有一些疑問。」安明時問了一個技術性的問題:「老師,你假設每一局的回合數為1,現實世界中這可能嗎?」

「只要讓參與遊戲的玩家盡可能的增加,那麼彼此重複相遇的機率就會大幅下降。」數師父解釋著他的方法在現實世界中如何實現:「真實世界裡,最貼近我們這個遊戲的平台,就是股市了——如果全民都參加交易,那麼彼此重複遭遇的機會就降低了。」

「那麼錯誤率要如何降低呢?就連專業的金融機構,也不感說自己的交易策略總是正確呀?」寸明鏡接著發問。

「這個嘛,」歐陽停頓了幾秒鐘:「只要能夠引發多數玩家做出我們預期的行為就可以了。」

寸明鏡不說話,等著數師父解釋——顯然他都已經想好了。

「再讓我們以股票市場為例吧,明健,你是金融人士,請問股市之中,哪些玩家對股市的影響最大呢?」

「外資、法人、自營商。」這是財金系的常識。

「是的,他們的交易量是台灣股市的主體,所以,我們『暫時』只要『處理』他們就好了。」歐陽勾股閃動的頭像如今看起來魅惑異常:「你必須要先知道外資、法人、自營商們在電腦交易中預設的『拋售觸發條件』——明健,請解釋給同學們聽。」

「這些金融機構在股票市場中的交易決定,都是預先設定在電腦裡面,由電腦對撮合機制下單——現代金融資訊公開透明,越來越難利用時間差賺取價差,想要買賣在最佳的價位上,必須利用電腦自動下單。」寸明鏡向他的同學解釋著當代金融交易:「此外,人類交易員可能會無法遵守紀律,該賣不賣;所以,拋售觸發條件,就是券商在電腦裡設定好的停損點——只要價位跌到這個點,電腦就會毫不留情地拋售。」

「原來如此。」安明時琢磨著。

「真是荒謬,」柳無固嗤之以鼻:「又不是打電動。」

「老師,你不可能知道各個券商的拋售條件,這個價位每天都在調整——」寸明鏡指出:「除非你能夠駭進他們的主機。」

「不,其實,只要有心,這些都是公開資料喔。」螢幕畫面一轉,連到了台灣櫃台買賣中心的網頁,這是股市監理機構的公開資訊站。歐陽操縱著鼠標,熟練地點了幾下,秀出了各家券商每一天在每一檔股票的交易量與平均價。

「就算知道這些,也不能反推出拋售條件呀。」寸明鏡反駁歐陽勾股。

「真的不行嗎?」這五個字看似沒有情緒,但是寸明鏡彷彿聽到歐陽勾股的笑聲:「明時,知道了價量與時間,我們可以做什麼呢?」

網路上一陣靜默。良久,安明時回了這麼一句:

「甘拜下風,你可以做傅利葉轉換,將價量與時間資訊轉換為券商買股賣股的頻率。」

寸明鏡驚呆了:「每一家嗎?」

「每一家。」安明時回答。

「但是櫃買中心的資訊裡,券商交易的平均價格與數量也包含了幫客戶下的單呀,不只是自營商(證券公司除了幫客戶下單,自己也會用自己的資金進行投資,這個部門稱為自營商)的操作。」寸明鏡不信邪:「這個數字可以抽離出自營商的交易策略嗎?」

歐陽不語,他知道安明時會回答:「可以。把交易頻率視為振幅與時間,再做一次傅利葉轉換,就可以分離出大大小小的各種決策頻率。」

「客戶委託下單的決策強度低,自營商的決策強度大。」

「我其實已經聽不懂了。」柳無固發言:「知道了這些之後又可以怎樣呢?」

又是一陣沉默,歐陽勾股用這句話總結:「君子有所為,有所不為。好了,時間晚了,今天的課程就到這邊,下週開始,我們要用Python語言來編寫人工智能系統,請大家回去之後到麻省理工學院的線上教室自修一下程式語言,還有工程數學。」

寸明鏡心有餘悸地回家,刷牙洗臉洗澡;然後他躺在床上,久久不能入眠。

就在今晚稍早、歐陽勾股的賽局遊戲開始之前,台灣股市發生了一件大事:台灣指數期貨跳空跌了一千點,引發一波外資避難潮。

這一個大跳空相當不合理,市場上沒有任何的跡象指出台股指數有暴跌的可能。金融主管機關立刻暫停了市場,開啟了調查。然後在大約下午四點的時候,報告出來了:

開盤不久之後,一群散戶在市場上放空台指——並不是很大的量,在平常根本不會有什麼影響,但是碰巧這些空單「全部都在同一時間點出現」,造成指數在某一個很短暫的瞬間大量下跌——某一家大券商交易電腦的拋售條件因此被觸發了。

這家券商自動拋售所有的台灣指數期貨,引發了另外幾家券商的電腦自動拋售;接著,如同滾雪球一般,檯面上將近三成的券商都開始拋售台指期——要不是緊急休市,可能會造成無法挽救的股災。

「太平洋的一隻蝴蝶拍拍翅膀,造成加州大海嘯。」寸明鏡想起了蝴蝶效應。

在他入睡前,他的腦海中只剩下歐陽勾股那個不斷閃動的頭像、那個代表勾股定理的直角三角形。

『為了清澈澄明的世道。』

繼續閱讀:君子學院 | Master of Gentlemen (16)

發表留言