在這一頁
「約翰尼克拉普斯」挑戰
簡介
在我發布挑戰後不久,我問了“Johnny Craps” (老玩家指南:如何在賭桌上獲勝)的管理員,他是否願意接受我的挑戰。這個系統的網站已經不存在了,博彩系統通常都是這樣。它的所有者似乎半夜就消失了。
約翰回覆很快,對他的系統及其在十億輪次中盈利的能力非常有信心。他向我講述了幾個使用他的系統贏取巨額利潤的故事,並承認只輸過一次大錢,那是因為他喝醉了,沒有按照系統操作。在我們的討論中,約翰表現得非常紳士,甚至拒絕了我提出的如果他的系統成功挑戰就付款的提議。正是透過他個人的應用以及其他購買他系統的人的見證,他才真正相信了它。
他的系統基於這樣的理念:輸一次之後贏的可能性會更大。此外,他的系統也設定了限制損失的控制措施,最大輸贏線(pass line)僅為最小輸贏線(pass line)的八倍。他只投注pass line,並接受賠率。其謬誤在於他假設輸一次之後贏的可能性會更大。以下結果證實了這一點。
《老玩家指南:如何在擲骰子遊戲中獲勝》的結果
方面 | 結果 |
---|---|
擲骰子總數 | 1,000,000,006 |
投注過線總數 | 296,239,663 |
總賠率投注 | 197,491,494 |
投注總單位 | 3,800,921,108 |
損失單位總數 | 21,266,094 |
任何時間贏得的最大單位數 | 2,111 |
輸掉的單位數與投注單位數之比為 0.005595,這與擲骰子遊戲中採用全雙倍賠率時的莊家優勢 0.005720 相差無幾,差異源於隨機變化。每次遊戲的最大贏取單位數差異很大,上述 2111 的結果不應指望輕易複製。以下是基於十個不同遊戲(每次遊戲一百萬次)中任意時刻的最大贏取單位數:224、2521、1226、1199、1298、6130、3123、224、851 和 1314。
下面是該程式的副本。我在某些會洩漏他策略的因素上標註了***
符號。由於該程式仍在出售,他肯定不想免費贈送。
我要感謝約翰對這次實驗的參與與合作。
# 包括 <stream.h> # 包括 <stdlib.h> # 包含 <string.h> # 包括 <math.h> int main(空) { int numpass、numodds、numroll、tbet、er、es、point、roll、die[2]、i、n、max、bet、win、num、bil; cerr << "輸入種子"; cin >> n; 對於(i = 1;i <= n;i++) { num = rand(); } cerr << "輸入試驗次數"; cin >> n; 滾動數量 = 0; 比爾=0; 勝利=0; tbet = 0; 最大值=0; numpass = 0; numodds = 0; 比爾=0; do //重複直到實驗結束 { es = 0; 賭注=2; do // 重複直到系列結束 { 點=0; 呃= 0; //重複直到回合結束 { 對於(i = 0;i <= 1;i++) { num = rand(); // rand() 的最大值為 32767 die[i] = 1 + int(num * 6 / 32767); } 滾動 = 骰子[0] + 骰子[1]; 數字滾動++; 如果(點==0) { 數位傳遞++; 如果((roll == 7)||(roll == 11)) { 贏+=賭注; tbet += 賭注; 呃= 1; es = 1; } 否則,若((roll == 2)||(roll == 3)||(roll == 12)) { 呃= 1; 贏-=賭注; tbet += 賭注; } 別的 { 點 = 滾動; numodds++; } } 否則,如果(roll == point) { 如果((roll == 4)||(roll == 10)) { 贏 += 5 * 賭注; tbet += 3 * 賭注; } 否則,如果((roll==5)||(roll==9)) { 贏 += 4 * 賭注; tbet += 3 * 賭注; } 別的 { 贏 += 4 * 賭注; tbet += 7 * 賭注 / 2; } 呃= 1; es = 1; } 否則,若(roll == 7) { 如果((點 == 6)||(點 == 8)) { 贏 -= 7 * 賭注 / 2; tbet += 7 * 賭注 / 2; } 別的 { 贏 -= 3 * 賭注; tbet += 3 * 賭注; } 呃= 1; } } while (er == 0); //重複直到回合結束 如果(tbet>1000000000) { 比爾++; tbet-= 1000000000; } 如果(勝利>最大) { 最大=勝利; } 如果(es == 0) { 如果 (賭注 == ***) { 賭注 = ***; } 其他 如果 (賭注 == ***) { 賭注 = ***; } 其他 如果 (bet == ***) { es = ***; } } } while (es == 0); // 重複直到系列結束 } while (numroll < n); //重複直到實驗結束 cerr << "總擲骰數 = " << numroll << "\n"; cerr << "總透過線投注 = " << numpass << "\n"; cerr << "總賠率投注 = " << numodds << "\n"; cerr << "總獎金 = " << win << "\n"; cerr << "總投注 = " << bil << " 十億 + " << tbet << "\n"; cerr << "高額獎金 = " << max << "\n"; }