ترکیبیات
در این قسمت به الگوریتمهای مورد نیاز در حل مسایل ترکیبیات میپردازیم.
محاسبه ترکیبها
انتخاب شئ از شئ پایهی حل بسیاری از مسایل شمارشی است. برای آن رابطهی بازگشتی زیر را داریم:
با استفاده از این رابطه و برنامهریزی پویا میتوانیم مقادیر آن را محاسبه کنیم. دلیل این کار این است که رابطه فاکتوریلی آن اعداد بزرگی میدهد که میتوانند باعث سرریز شوند:
پیدا کردن دور
دنبالهای داریم که اعداد آن به صورت منظم تکرار میشوند و -امین جملهی آن خواسته شده است که عدد بزرگی است و قطعاً نمیتوانیم آن را به دست بیاوریم. اگر مقادیر بعد از یک عدد تکرار شوند، میتوانیم با به دست آوردن دوره گردش آن، مقدار مورد نظر خودمان را به دست بیاوریم. (از تعداد اعداد ابتدای دنباله که جزو دوره گردش نیستند را کم میکنیم و باقیماندهی آن را به دوره گردش محاسبه میکنیم.)
الگوریتمهای دیگری برای حل این مسأله وجود دارند.
مطالب بیشتر در مورد پیدا کردن دور
احتمال
در این مسایل حالتهای مختلفی از پیشامدها وجود دارد و باید احتمال پیشامد خاصی را به دست بیاورید. این کار معمولاً با کمک احتمال پیشامدهای مستقل به دست میآید: اگر رخ دادن یک پیشامد به معنی رخ دادن پیشامدهای دیگری باشد که از هم مستقل هستند، احتمال آن برابر حاصل ضرب این احتمالها خواهد بود.
این مشابه اصل ضرب در ترکیبیات است. مشابه اصل جمع در ترکیبیات هم اصلی در احتمال هست که حالتهای مختلف رسیدن به پیشامد مورد نظر، احتمالهایشان جمع میشود.
با کمک این دو اصل و برنامهریزی پویا میتوان مسایل این مبحث را حل کرد.