WOO logo

На этой странице

Исходный код анализатора системы отмены ставок

Введение

Приведенная ниже программа написана на C++. Она довольно проста, любой, кто имеет небольшой опыт работы с C++, сможет понять, как она работает. Приношу извинения за отсутствие документации, но, следуя логике, несложно понять, что происходит.

//
// анализатор системы отмены
// 19.10.1998
//

#include <iostream.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <time.h>
#include <stdio.h>

void tenbet();

int main()
{
чар ч;

делать
{
    tenbet();

    cerr << "Сыграть снова?";
    цин >> ч;
}
while ((ch == 'y') || (ch == 'Y'));

вернуть 0;
}

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

длинная ставка, вращения;

cerr << "Введите максимальный убыток"; cin >> maxloss;
cerr << "Введите количество испытаний"; cin >> num;
cerr << "Рулетка(1) или кости(2)?"; цин >> г;

результат[0] = 0;
результат[1] = 0;
totbet = 0;
спины = 0;

если (g == 1)
{
    Рэндвин = 32767 * 18/38;
}
еще
{
    Рэндвин = 32767 * 244 / 495;
}

for (i = 1; i <= num; i++)
{
    банк = 0;
    lpt = 1;
    rpt = 10;

    for (j = 1; j <= 10; j++)
    {
        ставка[j] = 1;
    }

    делать
    {
        если (rpt == lpt)
        {
            curbet = bet[rpt];
        }
        еще
        {
            curbet = bet[lpt] + bet[rpt];
        }

        пока ((maxloss+bank < curbet)&&(maxloss+bank > 0))
        {
            spins++;

            если (maxloss + bank >= bet[lpt])
            {
                totbet += bet[lpt];

                if (rand() <= randwin)
                {
                    банк += ставка[lpt];
                    lpt++;
                }
                еще
                {
                    банк -= ставка[lpt];
                    ставка[lpt] *= 2;
                }
            }
            еще
            {
                totbet += (maxloss + bank);

                if (rand() <= randwin)
                {
                    ставка[lpt] -= (максимальный проигрыш + банк);
                    bank += (maxloss + bank);
                }
                еще
                {
                    банк -= (максимальный убыток + банк);
                }
            }

            если (rpt == lpt)
            {
                curbet = bet[rpt];
            }
            еще
            {
                curbet = bet[lpt] + bet[rpt];
            }
        }

        если (максимальный убыток + банк > 0)
        {
            totbet+=curbet;
            spins++;

            if (rand() <= randwin)
            {
                lpt++;
                rpt--;
                банк += выступ;
            }
            еще
            {
                rpt++;
                bet[rpt] = curbet;
                банк -= выступ;
            }
        }
    }
    while ((lpt <= rpt) && (maxloss + bank > 0));

    если (максимальный убыток + банк == 0)
    {
        результат[1]++;
    }
    еще
    {
        результат[0]++;
    }

    если (i % 100000 == 0)
    {
        cerr << i << "\n";
    }
}

cerr << "Максимальная потеря: " << maxloss << "\n";
cerr << "Вероятность проигрыша: " << (float)(result[1])/(float)(num) << "\n";
cerr << "Среднее количество вращений: " << (float)(spins)/(float)(num) << "\n";
cerr << "Средняя ставка: " << (float)(totbet)/(float)(num)<<"\n";
cerr << "Победы: " << result[0]<<"\nПоражения: "<<result[1]<<"\n";
cerr << "Общая ставка: " << totbet<<"\n";
cerr << "Общее количество побед/поражений: " << (result[0]*10)-(result[1]*maxloss) << "\n";
cerr << "Всего вращений: " << spins << "\n";
cerr << "Чистый убыток: " << (float)((result[0]*10)-(result[1]*maxloss))/(float)totbet << "\n";
}