على هذه الصفحة
كود المصدر لمحلل نظام الرهان على الإلغاء
مقدمة
البرنامج التالي مكتوب بلغة 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";
}