WOO logo

Nesta página

Código-fonte do analisador do Sistema de Apostas de Cancelamento

Introdução

O programa a seguir foi escrito em C++. É bastante simples; qualquer pessoa com um pouco de experiência em C++ deve ser capaz de entender como funciona. Peço desculpas pela falta de documentação, mas, seguindo a lógica, não deve ser difícil compreender o que está acontecendo.

//
// analisador de sistema de cancelamento
// 19/10/1998
//

#include <iostream.h>
#include <stdlib.h>
#incluir <string.h>
#incluir <math.h>
#incluir <tempo.h>
#include <stdio.h>

void tenbet();

int main()
{
caractere ch;

fazer
{
    tenbet();

    cerr << "Jogar novamente?";
    cin >> ch;
}
enquanto ((ch == 'y') || (ch == 'Y'));

retornar 0;
}

void tenbet()
{
int maxloss, num, bet[1000], lpt, rpt, i, j, curbet, bank, result[2], randwin, g;

totbet longo, giros;

cerr << "Digite a perda máxima "; cin >> maxloss;
cerr << "Digite o número de tentativas "; cin >> num;
cerr << "Roleta(1) ou dados(2)? "; cin >> g;

resultado[0] = 0;
resultado[1] = 0;
totbet = 0;
spins = 0;

se (g == 1)
{
    randwin = 32767 * 18/38;
}
outro
{
    randwin = 32767 * 244 / 495;
}

para (i = 1; i <= num; i++)
{
    banco = 0;
    lpt = 1;
    rpt = 10;

    para (j = 1; j <= 10; j++)
    {
        aposta[j] = 1;
    }

    fazer
    {
        se (rpt == lpt)
        {
            curbet = aposta[rpt];
        }
        outro
        {
            curbet = aposta[lpt] + aposta[rpt];
        }

        enquanto ((maxloss+bank < curbet)&&(maxloss+bank > 0))
        {
            giros++;

            se (perda máxima + banco >= aposta[lpt])
            {
                totbet += aposta[lpt];

                se (rand() <= randwin)
                {
                    banco += aposta[lpt];
                    lpt++;
                }
                outro
                {
                    banco -= aposta[lpt];
                    aposta[lpt] *= 2;
                }
            }
            outro
            {
                apostaTot += (perdaMáxima + banco);

                se (rand() <= randwin)
                {
                    aposta[lpt] -= (perda máxima + banco);
                    banco += (perda máxima + banco);
                }
                outro
                {
                    banco -= (perda máxima + banco);
                }
            }

            se (rpt == lpt)
            {
                curbet = aposta[rpt];
            }
            outro
            {
                curbet = aposta[lpt] + aposta[rpt];
            }
        }

        se (perda máxima + banco > 0)
        {
            totbet+=curbet;
            giros++;

            se (rand() <= randwin)
            {
                lpt++;
                rpt--;
                banco += meio-fio;
            }
            outro
            {
                rpt++;
                aposta[rpt] = curbet;
                banco -= meio-fio;
            }
        }
    }
    enquanto ((lpt <= rpt) && (maxloss + bank > 0));

    se (perda máxima + banco == 0)
    {
        resultado[1]++;
    }
    outro
    {
        resultado[0]++;
    }

    se (i % 100000 == 0)
    {
        cerr << i << "\n";
    }
}

cerr << "Perda máxima: " << maxloss << "\n";
cerr << "Probabilidade de perda: " << (float)(result[1])/(float)(num) << "\n";
cerr << "Rotações médias: " << (float)(rotações)/(float)(num) << "\n";
cerr << "Aposta média: " << (float)(totbet)/(float)(num)<<"\n";
cerr << "Vitórias: " << result[0]<<"\nDerrotas: "<<result[1]<<"\n";
cerr << "Aposta total: " << totbet<<"\n";
cerr << "Total de vitórias/derrotas: " << (result[0]*10)-(result[1]*maxloss) << "\n";
cerr << "Total de giros: " << giros << "\n";
cerr << "Prejuízo líquido: " << (float)((result[0]*10)-(result[1]*maxloss))/(float)totbet << "\n";
}