小松鼠嚇了一跳,有了魔法眼鏡後,這世界看起來完全不一樣了

2004年9月30日 星期四

魔術與撲克

trick.jpg
西索曾經說過:「魔術師無所謂的不可能」。
就像駭客們說的 "Anything can be hacked",既然黑客與撲克有關,那魔術與撲克自然也可以有關了。
魔術最重要的一個觀念就是「錯誤引導」(misdirection),這也是撲克之中相當重要的概念。
David Sklansky 的著作中開宗明義的就以撲克基本定理來說明不讓對手猜出你的底牌的重要性。
當然我們不需要看書就知道不讓對手知道你的底牌是很重要的了。
所以撲克戰術中除了想辦法在機率上做出正確的決定之外,一個最重要的部分就是想辦法不讓對手看穿你的策略,甚至更進一步的,誤導對手,讓他誤以為看穿你的策略而掉入圈套。
撲克中的 Slow play, Check Raise, Semi-bluffing 等常見戰術都有誤導對手的成分在。
高手具備的換檔能力也是基於這個原則的戰略。

當然同樣的,能夠看穿對手的底牌能夠對你都有利自然也不在話下。
魔術師自然有許多技法能夠找出觀眾抽出的牌,甚至心裡想的牌。
很多這樣的方式就算是出千了,稍有自尊心的牌手即使會,也不願意使用。但是有一種方式卻是可以使用的,那就是讀心術,或者說是讀人術。
就像基本撲克魔術「脈搏找牌」台詞所說的,利用脈搏頻率的變化看穿人心一樣,靠著對手的小動作猜測對手可能的底牌是完全合法的。
心靈魔術師往往能夠藉由簡短的談話靠著所謂的 Cold Reading 技巧猜出你的祖宗八代、生辰八字、昨天吃了什麼。
著名的心靈魔術師不少,台灣魔術師測心術粘立人大師早期在電視上演出過測心術單元,當今最有名的心靈魔術師則屬英國的 Derren Brown,美國的 Max Maven,Richar Osterlind等人。
Max Maven 有來過台灣,上過電視,日本的異能者也曾在台灣預測過股市的收盤指數。

Derren Brown 就是那個玩俄羅斯羅盤的那個魔術師,這個網站上有一些他的節目片段,相當有趣,看他表演心靈控制,讀心術以及測謊術。

另外賭片上面常常可以看到賭神、賭俠們的各式各樣花式牌技,比方說扇牌、單手洗牌、瀑布洗牌、手風琴拉牌、以及傷人於百步之外的神奇射牌等等,大部分的撲 克牌魔術師多少都會一點,反倒是賭徒們即使是會,也不願意太常表現這些,想想如果你在玩牌前,先學賭神洗出一條龍,飛出四條Ace,魚都被嚇跑一半了。

延伸書目:

射牌武術的經典
Ricky Jay, Card as Weapon, Warner Books, March 1977
以及其它的射牌術專著

測謊心裡相關
Mac Fulfer, Amazing Face Reading: An illustrated encyclopaedia for reading faces, Good Press, 1997

Aldert Vrij, Detecting Lies and Deceit : The Psychology of Lying and the Implications for Professional Practice, John Wiley & Sons, March 14, 2000
這本書收集了科學上的成果


Derren 的表演
Derren Brown, Inside Your Mind, NC4, ?


心靈魔術教學
Richard Osterlind, Mind Mysteries Volume 1 - 4, L&L, 2003

Max Maven, Video Mind Series, L&L, ?

以及
Bob Cassidy, Phil Goldstein等的心靈術名著。

2004年9月4日 星期六

撲克與黑客

"Anything can be hacked"(什麼東西都有搞頭),這是Hacker圈流傳的一句話。

題外話,Hacker/ 黑客,正體/繁體中文常見的譯名是「駭客」,但是撲克和黑客比較押韻,當然我也可以只說台灣的譯名,但是說正體/繁體中文比較酷/Cool/褲一點,我還 特別把正體放在繁體前面,因為會用正體這個詞的人通常比較在乎正名這回事,夠體貼/政治正確吧!/?/。

回到原來的話題,"Anything can be hacked",所以不但是電腦軟體硬體可以成為Hackers的玩具,真正黑到最高點的玩家是無可不駭的,到達飛花落葉皆可傷人的境界。

所以PDA的紅外線接受器能夠拿來當跑步里程器,相機可以拿來跑大型電動模擬器,幾條水管接一接可以組成水電腦,天竺鼠跑圈圈可以拿來發電,例子不勝枚舉。

更高竿一點的,會發現能搞的對象無非就是人與物兩類,要不然就是利用自然的原理與邏輯來個四兩撥千金,比方阿基米德就算是這方面的始祖之一,他的曹沖秤象與雙頭肌撥地球都是有名的例子。

要不然就是利用人類的弱點拿來玩耍,駭客裡面的社交工程技巧就是典型的例子。

電腦方面一來有邏輯與自然法則可供探索,二來由於人類的設計常常會有疏忽的地方,所以是Hacker們的最佳遊戲場所。

但仔細觀察,還是有很多其它也不錯的遊樂場,我們不需一定要學竹林七賢劉伶的以天地為家,房子為衣褲這樣,或者說到達美酒貴公子佐竹城那樣把世界當成我的外場的境界,到達到最高境界是很難而且很無聊的。一個可以玩的東西是遊戲。

我不是說遊戲破解保護之類的東西,而是破解遊戲本身。

這類的駭客始祖之一不是別人,正是鼎鼎有名的蘇東坡大大。

民 間傳說他發明了所謂「東坡棋」的招數。故事說蘇東坡曾在某國(有說是吐蕃,有說是西夏)圍棋第一高手來訪時吹牛說自己是大宋第一高手,對手絕對下不贏他。 那人不信,兩人立刻便紋枰對局,決一勝負。這時蘇東坡就拿出事先想好的方法,在對稱的位置上模仿對方著手,結果終局時就成了和棋。「決不輸棋」的牛皮也就 沒破了。

也有聽說他是拿這招對付佛印的,也有說他是以一敵二對抗兩個外國高手來個乾坤大挪移,畢竟單以模仿棋是無法獲勝的。不知道怎麼贏的人可以向塔史亮小朋友請教。

又比方用二進位來破解拿石頭遊戲「拈」的基本型,也是一個典型的好例子,看似複雜的狀況,裡面含有竅門。

說到竅門,正所謂江湖一點訣,夫妻不可說。駭客除了駭興趣外,如果能夠獲利通常也沒什麼理由反對的。賭場遊戲自然成為駭客的大目標之一。

古有所謂的聽骰黨,利用骰子落下的聲音的細微差別來破解骰子賭局。而白帽駭客澳門賭聖葉漢則利用在骰鐘底下撲絨布的方式修補漏洞。

法 國數學家巴斯卡首創利用機率來分析賭戲,是一種掃瞄漏洞的方式。他的徒子徒孫美國加州大學教授 Edward Thorp在一九六二年使用改良過的掃描器找出了古代黑傑克二十一點賭戲的漏洞,並且發表了擊敗莊家 Beat the Dealer一書。同書中還列出了掃瞄其它賭戲的結果。而後繼者著名的MIT 黑傑克隊伍,更是發揚光大並且身體力行賺進大把鈔票。其經歷記載於Bring Down the House一書。

他們用的方式主要關鍵是算牌。

可惜這個時代已經過去,賭場已經針對這類攻擊加以防範。

除此之外,著名的漏洞還有對輪盤的物理計算攻擊,計算球的速度來推測可能的落點。對吃角子老虎的電子攻擊等等。另外各式大小老千的作弊攻擊則屬於Cracker一流,不勝枚舉。

也許還有新的攻擊方式,畢竟漏洞無所不在,不過要我選,我會選則破解銀行而不是賭場。

如果是破解網路銀行的話,更容易的選擇是破解銀行的一般客戶著手。因為一般人的電腦保護沒有銀行周全。即使有很多人對自己的電腦保護周全,你的對象也不是他們,而是沒有保護周全的多數人。

同 樣的,與其破解賭場,不如破解賭客。撲克牌局就是這樣一個場所。撲克牌局的規則本身沒有漏洞,就像是一個好的電腦軟體系統沒有漏洞一樣,漏洞在使用者身 上。即使在堅強的防護系統,使用者假如把密碼寫在紙條上貼在螢幕旁,任何一個人也可以順利破解。而牌局中,你所依賴的就是你比別人更瞭解這個遊戲,以及你 比別人更瞭解人性。

Hold'em 遊戲中,假如你手上拿了紅心A,6,桌面上四張牌中有兩張紅心,還剩一張牌,你差不多可以假定最後一張牌是紅心時你就會贏,特別是桌面上沒有可怕的牌的時候,比方桌上有三張A,也許有人已經有full house或者鐵支了。

你要簡單的計算52-4-2=46,你拿紅心的機會是9/46,所以這時如果桌面上有100元籌碼,另外一個人下注20,你簡單的計算如果你跟的話,你的獲利期望值是 (120*9-20*37)/46=7.39>0。所以你應該跟。

又或者你拿到 5,7,桌面上是6,4,A,J,沒有同花的危險,最後一張牌如果是3或者8你會贏,所以同樣的情況下,你的獲利期望值是 (120*8-20*38)/46=4.35>0,所以還是可以跟。

但是如果前面的人下的注是30,那同樣的計算你會發現在抽同花的時候,你有正的期望值,而抽順子的時候,則是負的。

很遺憾的,這個在巴斯卡時代就可以掃瞄到的系統弱點,很多人仍然沒有更新patch。這就好像到現在還有人用98開網路芳鄰,或者一些經典的sendmail exploit 還能用一樣。

相較於電腦來說,人是很難更新軟體的。

另 外一類的漏洞是所謂的Poker Tell,很多人在虛張聲勢的時候會有一些自己不自覺的小動作,這類漏洞比邏輯上的漏洞更難修補。比方某人牌不錯的時候,往往會自然的身體往後,呈現自然 輕鬆的狀況,因為不管你跟或者不跟他都不會輸。如果吹牛時,往往為了掩飾而將身體向前傾斜(看前面的職業巨星邀請賽裡面牌評對於Johnny Chan的評論)等等。當然,這種東西在無賭注上限的遊戲比較有用,因為小賭注的牌局基本上還是跟著機率走的。

撲克牌局就像是一場駭客攻防戰一樣,比誰的漏洞少,比誰對牌局更熟悉,而且很多人就是不會修補漏洞。而當你發現別人的漏洞之後,你要想辦法的就是怎麼exploit了。