WOO logo

على هذه الصفحة

كود المصدر لمحلل نظام الرهان على الإلغاء

مقدمة

البرنامج التالي مكتوب بلغة C++. إنه بسيط للغاية، ويمكن لأي شخص لديه خبرة بسيطة في C++ فهم كيفية عمله. أعتذر عن نقص الوثائق، ولكن باتباع المنطق، لن يكون من الصعب فهم ما يحدث.

//
// محلل نظام الإلغاء
// 19/10/1998
//

#تضمين <iostream.h>
#تضمين <stdlib.h>
#تضمين <string.h>
#تضمين <math.h>
#تضمين <time.h>
#تضمين <stdio.h>

باطل tenbet();

int main()
{
حرف ch؛

يفعل
{
    تينبت();

    cerr << "اللعب مرة أخرى؟";
    سين >> تش؛
}
بينما ((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)؟"; سين >> ز؛

النتيجة[0] = 0؛
النتيجة[1] = 0؛
توتبيت = 0؛
الدورات = 0؛

إذا (g == 1)
{
    راندوين = 32767 * 18/38؛
}
آخر
{
    راندوين = 32767 * 244 / 495؛
}

لـ (i = 1؛ i <= num؛ i++)
{
    البنك = 0؛
    لبت = 1؛
    rpt = 10؛

    لـ (j = 1؛ j <= 10؛ j++)
    {
        الرهان[ج] = 1؛
    }

    يفعل
    {
        إذا (rpt == lpt)
        {
            كبح = رهان[rpt]؛
        }
        آخر
        {
            كبح = رهان [lpt] + رهان [rpt]؛
        }

        بينما ((maxloss+bank < curbet)&&(maxloss+bank > 0))
        {
            يدور++؛

            إذا (الخسارة القصوى + البنك >= الرهان [lpt])
            {
                totbet += bet[lpt];

                إذا (rand() <= randwin)
                {
                    البنك += الرهان[lpt]؛
                    lpt++;
                }
                آخر
                {
                    البنك -= bet[lpt];
                    الرهان[lpt] *= 2؛
                }
            }
            آخر
            {
                totbet += (الحد الأقصى للخسارة + البنك)؛

                إذا (rand() <= randwin)
                {
                    bet[lpt] -= (الحد الأقصى للخسارة + البنك)؛
                    البنك += (الخسارة القصوى + البنك)؛
                }
                آخر
                {
                    البنك -= (الخسارة القصوى + البنك)؛
                }
            }

            إذا (rpt == lpt)
            {
                كبح = رهان[rpt]؛
            }
            آخر
            {
                كبح = رهان [lpt] + رهان [rpt]؛
            }
        }

        إذا (الخسارة القصوى + البنك > 0)
        {
            totbet+=curbet;
            يدور++؛

            إذا (rand() <= randwin)
            {
                lpt++;
                rpt--;
                بنك += رصيف؛
            }
            آخر
            {
                rpt++;
                bet[rpt] = curbet؛
                بنك -= كبح؛
            }
        }
    }
    بينما ((lpt <= rpt) && (maxloss + bank > 0));

    إذا (الخسارة القصوى + البنك == 0)
    {
        النتيجة[1]++;
    }
    آخر
    {
        النتيجة[0]++;
    }

    إذا (i % 100000 == 0)
    {
        سير << اي << "\n";
    }
}

cerr << "أقصى خسارة:" << maxloss << "\n";
cerr << "احتمال الخسارة: " << (float)(result[1])/(float)(num) << "\n";
cerr << "متوسط الدورات: " << (float)(spins)/(float)(num) << "\n";
cerr << "متوسط الرهان: " << (float)(totbet)/(float)(num)<<"\n";
cerr << "الفوز: " << النتيجة[0]<<"\nالخسائر: "<<النتيجة[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";
}