تعداد فروش | 0 دانشجو |
---|---|
پرسش و پاسخ ها | 0 کاربر |
تاریخ انتشار | 12 بهمن 1402 |
سطح تمرین | سخت |
در این پست قصد داریم پروژه برج هانوی در سی پلاس پلاس را بررسی نماییم.
سوال: برنامه ای بنویسید که مسئله برج هانوی را به صورت بازگشتی و غیربازگشتی حل نماید؟
دموی پروژه
برج هانوی، یکی از نمادهای فرهنگی و معماری برجسته در شهر هانوی، پایتخت ویتنام، است.
این بنا که از زاویههای مختلف شهر است ، علاوه بر جذابیت هنری، در زمینه ریاضیات نیز یک چالش منحصر به فرد را به وجود آورده است.
مسئله برج هانوی یک مسئله کلاسیک در ریاضیات و علوم کامپیوتر است.
این مسئله به شکل یک پردازشگر گرافیکی برجسته است که ارتفاع هر طبقه از آن از پایین به بالا کاهش مییابد.
هدف این است که یک برنامه نویسی که این مسئله را حل میکند، برج هانوی را به گونهای بسازد که هر طبقه درست بالای طبقهی پیشین قرار گیرد.
این مسئله نه تنها یک چالش مسلطی در زمینه الگوریتمها و برنامهنویسی بازگشتی است بلکه به طور مستقیم با معماری برج هانوی ارتباط دارد.
پیشنهادی: کد مربع جادویی در سی پلاس پلاس
برای ایجاد برج هانوی باید چندین قانون رعایت شود:
این قوانین، در ساختار مسئله برج هانوی مهم هستند و توسط الگوریتمهای حل این مسئله باید رعایت شوند.
این الگوریتم به شکل بازگشتی و از بالا به پایین ساخته میشود.
این الگوریتم ابتدا برج هانوی با توجه به قوانین مرتب سازی ایجاد میکند و سپس بلوکها را به صورت بازگشتی از یک ستون به ستون دیگر منتقل میکند.
از آنجایی که این الگوریتم بازگشتی است، در هر مرحله به خودش فراخوانی میشود و این عملیات تا زمانی ادامه مییابد که برج هانوی کامل ساخته شود.
الگوریتم غیر بازگشتی نیز به شکل حلقههای تکراری ساخته میشود.
این الگوریتم به صورت تکراری بلوکها را از یک ستون به ستون دیگر منتقل میکند تا در نهایت برج هانوی ساخته شود.
این الگوریتم معمولاً از یک دستهبندی منطقی و حلقههای تکراری برای جابهجایی بلوکها استفاده میکند.
در اولین بخش از پروژه برج هانوی در سی پلاس پلاس با کمک زبان سی پلاس پلاس و با یک الگوریتم بازگشتی سورس کد این مسئله را حل میکنیم.
سورس کد به شرح زیر میباشد:
تمرین پیشنهادی :پروژه مدیریت فروشگاه با سی پلاس پلاس
کد مسئله به صورت غیر بازگشتی کمی سخت تر از روش بازگشتی میباشد.
چونکه تمامی مراحله که به صورت بازگشتی و با یک فرمول خاص در مرحله قبل تولید میشد اینجا در دسترس نیست.
پس باید همه چیز را در نظر بگیریم و قطعا کدنویسی بیشتری نیاز داریم.
از بخش سی پلاس پلاس میتوانید مجموعه تمرین های با جواب زبان سی پلاس پلاس را مشاهده نمایید.
پرسش و پاسخ ها
هنوز بررسیای ثبت نشده است.