محاسبه تعداد راه های رسیدن به امتیاز مشخصی در بازی – راهنمای کاربردی

۴۴۴
۱۴۰۲/۰۴/۱۰
۶ دقیقه
PDF
آموزش متنی جامع
امکان دانلود نسخه PDF

در این مطلب، روش نوشتن برنامه محاسبه تعداد راه های رسیدن به امتیاز مشخصی در بازی آموزش داده شده است. در واقع، بازی مفروض است که یک بازیکن می‌تواند ۳، ۵ یا ۱۰ امتیاز در یک حرکت بگیرد. مجموع امتیاز n داده شده است. هدف پیدا کردن تعداد راه‌های رسیدن به امتیاز مشخص شده n، در بازی است. مطالعه مثال زیر برای درک بهتر این مسأله، توصیه می‌شود. شایان ذکر است، پیاده‌سازی روش آموزش داده شده در زبان‌های برنامه‌نویسی گوناگون شامل «سی‌پلاس‌پلاس» (++C)، «سی» (C)، «جاوا» (Java)، «پایتون ۳» (Python 3) و «پی‌اچ‌پی» (PHP) انجام شده است.

محاسبه تعداد راه های رسیدن به امتیاز مشخصی در بازی – راهنمای کاربردیمحاسبه تعداد راه های رسیدن به امتیاز مشخصی در بازی – راهنمای کاربردی
997696
Input: n = 20
Output: 4
There are following 4 ways to reach 20
(10, 10)
(5, 5, 10)
(5, 5, 5, 5)
(3, 3, 3, 3, 3, 5)

Input: n = 13
Output: 2
There are following 2 ways to reach 13
(3, 5, 5)
(3, 10)

این مساله در واقع نوعی از مسائل «تبدیل سکه» (Change Making Problem | Coin Changing Problem) است که می‌توان آن را در زمان O(n)‎ و با فضای کمکی O(n)‎ حل کرد.

هدف ساخت جدولی به اندازه n+1 برای ذخیره‌سازی همه امتیازها از ۰ تا n است. برای هر حرکت احتمالی ممکن، (۳، ۵ و ۱۰ امتیازی)، مقادیر در جدول افزایش داده می‌شوند.

برنامه محاسبه تعداد راه های رسیدن به امتیاز مشخصی در بازی در ++C

برنامه محاسبه تعداد راه های رسیدن به امتیاز مشخصی در بازی در C

برنامه محاسبه تعداد راه های رسیدن به امتیاز مشخصی در بازی در جاوا

برنامه محاسبه تعداد راه های رسیدن به امتیاز مشخصی در بازی در پایتون ۳

برنامه محاسبه تعداد راه های رسیدن به امتیاز مشخصی در بازی در #C

برنامه محاسبه تعداد راه های رسیدن به امتیاز مشخصی در بازی در PHP

خروجی قطعه کدهای بالا به صورت زیر است.

Count for 20 is 4
Count for 13 is 2

اگر نوشته بالا برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

بر اساس رای ۱ نفر
آیا این مطلب برای شما مفید بود؟
اگر پرسشی درباره این مطلب دارید، آن را با ما مطرح کنید.
منابع:
GeeksforGeeks
PDF
مطالب مرتبط
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *