На этой странице
Исходный код анализатора системы отмены ставок
Введение
Приведенная ниже программа написана на 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";
}