سلام کسی میتونه الگوریتم مربی نا امید رو برام قرار بده
ممنون میشم البته واسه پروژه می خوام اگه چیزی غیر از این باشه ممنون میشم
الگوریتمستان

آموخته‌های من از دنیای برنامه‌نویسی و طراحی الگوریتم

www.labod.ir/algorithms


مساله‌ی مربی ناامید - دوشنبه، 17 آبان ماه 1389، ساعت 22:11

مساله:
یکی از تیم‌های لیگ برتر فوتبال (جام خلیج فارس) امسال نتایج خیلی بدی گرفته است. هیئت مدیره‌ی باشگاه برای اخراج مربی تحت فشار هستند. اما این مربی از سوی طرفداران تیم به عنوان یک قهرمان محبوب حمایت می‌شود. به همین دلیل تصمیم می‌گیرند یک فرصت دیگر به مربی بدهند. سخنگوی باشگاه به رسانه‌ها اعلام می‌کند که هیئت مدیره‌ی باشگاه تنها زمانی از مربی حمایت می‌کنند که بتواند در 5 بازی آینده 11 امتیاز برای تیمشان کسب کند. مربی می‌خواهد بداند چقدر احتمال دارد به این موفقیت دست پیدا کند و از شما کمک می‌خواهد.
فرض کنید احتمال کسب برد، باخت و تساوی در مسابقه‌های بعدی از روی مسابقات انجام شده تا به حال به دست می‌آید. به عنوان مثال اگر این تیم از 10 بازی انجام داده‌ی قبلی 3 برد داشته باشد، احتمال برد در آینده 30% خواهد بود.

هجده تیم در این لیگ حضور دارند که همه‌ی آنها دو بازی رفت و برگشت با تیم‌های دیگر انجام می‌دهند. هر برد 3 امتیاز، هر تساوی 1 امتیاز و هر باخت صفر امتیاز دارد.

ورودی:
هر ورودی دو سطر را شامل می‌شود. در سطر اول تعداد بازی‌های آتی و امتیازی که باید کسب شود قرار دارد. سطر دوم تعداد بردها، تساوی‌ها و باخت‌های قبلی تیم را نشان می‌دهد. انتهای ورودی با دو صفر مشخص می‌شود.

5 11
3 5 4
2 3
5 0 5
3 5
5 5 4
1 1
1 1 1
0 0

خروجی:
خروجی به ازای هر ورودی یک سطر خواهد بود، که احتمال موفقیت مربی بر اساس ورودی‌ها را نشان می‌دهد. این احتمالات باید دقیقا یک رقم اعشار دقت داشته باشند.

4.3
75.0
42.8
66.7

منبع:
مسابقه‌ی ACM منطقه‌ای آسیا 2007 - سایت تهران - Hopeless Coach

حل:
ورودی‌های برنامه را به ترتیب n (تعداد بازی‌ها)، p (امتیازی که باید کسب شود)، w (تعداد بردها در گذشته)، d (تعداد تساوی‌ها در گذشته)، l (تعداد باخت‌ها در گذشته) در نظر بگیرید. اگر متغیرهای dp ،wp و lp برای ذخیره کردن احتمال برد، تساوی و باخت در هر یک از مسابقه‌های آتی تعریف شوند، بر اساس فرض‌های مساله می‌توان نوشت:


در آینده n بازی انجام خواهد شد. اگر تعداد بردها برابر i و تعداد تساوی‌ها برابر j باشد، احتمال برد (Pw)، تساوی (Pd)، و باخت (Pw) بر اساس اصول شمارش به این صورت می‌شود:




این رویدادها مستقل از هم اتفاق می‌افتند. پس احتمال وقوع i برد، j تساوی و n - i - j باخت در n بازی به صورت زیر محاسبه می‌شود:


حال اگر این احتمال را برای تمام انتخاب‌های ممکن i و j که شرط حداقل امتیاز را برآورده کند (یعنی 3i + j ≥ p) جمع بزنیم، احتمال موفقیت مربی به دست می‌آید:




پیاده‌سازی کد محاسبه‌ی این عبارت چندان دشوار نیست. مساله‌ی اصلی به دست آوردن همین رابطه است.

نکته: ترکیب دو عدد صحیح نامنفی با رابطه‌ی زیر محاسبه می‌شود:


فاکتوریل عدد بزرگ، یک عدد بسیار بزرگ است که محاسبات را سخت می‌کند. یک روش دیگر محاسبه‌ی ترکیب دو عدد، استفاده از رابطه‌ی بازگشتی زیر است: