Nesta página
Desafio "Johnny Craps"
Introdução
Logo após publicar meu desafio, perguntei a "Johnny Craps", criador do guia "An Old Timer's Guide to Beating the Craps Table" (Guia de um Veterano para Vencer na Mesa de Craps) , se ele aceitaria meu desafio. O site do sistema em questão não existe mais, o que é comum com sistemas de apostas. Os proprietários parecem desaparecer no meio da noite.
John respondeu rapidamente e demonstrou muita confiança em seu sistema e em sua capacidade de gerar lucro em mais de um bilhão de rodadas. Ele me contou diversas histórias de grandes ganhos usando seu sistema e admitiu ter sofrido apenas uma perda significativa, porque se embriagou e não seguiu o sistema. Durante nossa conversa, John se mostrou um verdadeiro cavalheiro e até recusou minha oferta de pagamento caso seu sistema se mostrasse eficaz. Ele acreditava em seu sistema por meio de sua própria experiência e dos depoimentos de outras pessoas que o adquiriram.
Seu sistema se baseia na filosofia de que a probabilidade de vitória aumenta após uma derrota anterior. Além disso, o sistema possui controles para limitar as perdas, sendo a maior perda na linha de passe apenas oito vezes a menor. Ele aposta somente na linha de passe e aproveita as odds. A falácia reside na suposição de que uma vitória se torna mais provável após uma derrota. Os resultados abaixo comprovam isso.
Resultados de Um Guia para Veteranos sobre Como Vencer na Mesa de Craps
| Aspecto | Resultado |
|---|---|
| Total de lançamentos de dados | 1.000.000.006 |
| Total de apostas na linha de passe feitas | 296.239.663 |
| Total de apostas de odds feitas | 197.491.494 |
| Total de unidades apostadas | 3.800.921.108 |
| Total de unidades perdidas | 21.266.094 |
| Número máximo de unidades ganhas a qualquer momento | 2.111 |
A proporção de unidades perdidas em relação às unidades apostadas é de 0,005595, o que não está muito longe da vantagem da casa no craps de 0,005720 ao se considerar as probabilidades dobradas completas, sendo a diferença devida à variação aleatória. O número máximo de unidades ganhas varia substancialmente de uma sessão para outra, e o resultado de 2111 acima não deve ser facilmente replicado. Abaixo estão os números máximos de unidades ganhas a qualquer momento, com base em dez sessões diferentes de um milhão de lançamentos cada: 224, 2521, 1226, 1199, 1298, 6130, 3123, 224, 851 e 1314.
Segue abaixo uma cópia do programa. Coloquei asteriscos *** sobre certos fatores que revelariam sua estratégia. Como ainda está à venda, ele não gostaria de distribuí-lo gratuitamente.
Gostaria de agradecer a John por sua participação e cooperação neste experimento.
#include <stream.h>
#include <stdlib.h>
# incluir <string.h>
#include <math.h>
int main(void)
{
int numpass, numodds, numroll, tbet, er, es, point, roll, die[2], i, n, max, bet, win, num, bil;
cerr << "digite a semente";
cin >> n;
para (i = 1; i <= n; i++)
{
num = rand();
}
cerr << "digite o número de tentativas";
cin >> n;
numroll = 0;
bil = 0;
vitória = 0;
tbet = 0;
máximo = 0;
numpass = 0;
numodds = 0;
bil = 0;
faça // repita até o final do experimento
{
es = 0;
aposta = 2;
faça // repita até o final da série
{
ponto = 0;
er = 0;
faça // repita até o final da rodada
{
para (i = 0; i <= 1; i++)
{
num = rand(); // O valor máximo de rand() é 32767
die[i] = 1 + int(num * 6 / 32767);
}
lançamento = dado[0] + dado[1];
numroll++;
se (ponto == 0)
{
numpass++;
se ((roll == 7) || (roll == 11))
{
ganhar += aposta;
tbet += aposta;
er = 1;
es = 1;
}
senão se ((roll == 2) || (roll == 3) || (roll == 12))
{
er = 1;
ganhar == apostar;
tbet += aposta;
}
outro
{
ponto = rolar;
numodds++;
}
}
senão se (rolar == ponto)
{
se ((roll == 4) || (roll == 10))
{
ganho += 5 * aposta;
tbet += 3 * aposta;
}
senão se ((roll==5)||(roll==9))
{
ganho += 4 * aposta;
tbet += 3 * aposta;
}
outro
{
ganho += 4 * aposta;
tbet += 7 * aposta / 2;
}
er = 1;
es = 1;
}
senão se (rolar == 7)
{
se ((ponto == 6) || (ponto == 8))
{
vitória -= 7 * aposta / 2;
tbet += 7 * aposta / 2;
}
outro
{
ganhar -= 3 * aposta;
tbet += 3 * aposta;
}
er = 1;
}
} while (er == 0); // repita até o final da rodada
se (tbet > 1000000000)
{
bil++;
tbet -= 1000000000;
}
se (vitória > máximo)
{
máximo = vitória;
}
se (es == 0)
{
se (aposta == ***) { aposta = ***; } senão
se (aposta == ***) { aposta = ***; } senão
se (bet == ***) { es = ***; }
}
} while (es == 0); // repita até o final da série
} while (numroll < n); // repita até o final do experimento
cerr << "Total de rolos = " << numroll << "\n";
cerr << "Total de apostas na linha de passe = " << numpass << "\n";
cerr << "Total de probabilidades de apostas = " << numodds << "\n";
cerr << "Total de ganhos = " << win << "\n";
cerr << "Total de apostas = " << bil << " bilhão + " << tbet << "\n";
cerr << "Ganhos altos = " << max << "\n";
}