WOO logo

在這一頁

取消投注系統分析器的源代碼

簡介

以下程式是用 C++ 寫的。它非常簡單,任何有一點 C++ 經驗的人都應該能夠理解它的工作原理。抱歉,文檔不足,但只要遵循其邏輯,應該不難理解它是怎麼回事。

//
// 取消系統分析器
// 1998年10月19日
//

#include <iostream.h>
#include <stdlib.h>
#include <string.h>
#包括<math.h>
#包括<時間.h>
#包括 <stdio.h>

無效 tenbet();

int main()
{
字元 ch;

做
{
    滕貝特();

    cerr << "再玩一次?";
    cin >> ch;
}
while ((ch == 'y') || (ch == 'Y'));

返回 0;
}

無效 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)? "; cin >> g;

結果[0] = 0;
結果[1] = 0;
投注 = 0;
旋轉=0;

如果(g == 1)
{
    蘭德溫 = 32767 * 18/38;
}
別的
{
    蘭德溫 = 32767 * 244 / 495;
}

對於(i = 1;i <= num;i++)
{
    銀行=0;
    lpt=1;
    rpt=10;

    對於(j = 1;j <= 10;j++)
    {
        賭注[j] = 1;
    }

    做
    {
        如果(rpt == lpt)
        {
            curbet = 賭注[rpt];
        }
        別的
        {
            curbet = 賭注[lpt] + 賭注[rpt];
        }

        while ((maxloss+bank < curbet)&&(maxloss+bank > 0))
        {
            旋轉++;

            如果(最大損失 + 銀行 >= 賭注[lpt])
            {
                totbet += 賭注[lpt];

                如果(rand()<= randwin)
                {
                    銀行 += 賭注[lpt];
                    lpt++;
                }
                別的
                {
                    銀行-=賭注[lpt];
                    賭注[lpt] *= 2;
                }
            }
            別的
            {
                totbet += (最大損失 + 銀行);

                如果(rand()<= randwin)
                {
                    賭注[lpt] -= (最大損失 + 銀行);
                    銀行 += (最大損失 + 銀行);
                }
                別的
                {
                    銀行 -= (最大損失 + 銀行);
                }
            }

            如果(rpt == lpt)
            {
                curbet = 賭注[rpt];
            }
            別的
            {
                curbet = 賭注[lpt] + 賭注[rpt];
            }
        }

        如果(最大損失 + 銀行 > 0)
        {
            totbet+=curbet;
            旋轉++;

            如果(rand()<= randwin)
            {
                lpt++;
                rpt--;
                銀行+= curbet;
            }
            別的
            {
                rpt++;
                賭注[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 << "總旋轉次數:" << 旋轉 << "\n";
cerr << "淨虧損:" << (float)((result[0]*10)-(result[1]*maxloss))/(float)totbet << "\n";
}