الگوریتم و سورس مساله هشت وزیر

بخشی از متن اصلی :

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

مساله هشت وزیر :  ما مساله رو در حالت کلی در نظر می گیریم. یعنی زمانی که ابعاد صفحه شطرنج n در n و تعداد مهره ها n هستش. ( n > 3 ) روشهای مختلفی برای پیدا کردن جواب وجود داره. یکی از این روشها چیدن تصادفی مهره ها روی صفحه شطرنجه! به عبارت دیگه n مهره رو به صورت تصادفی در خانه های مختلف صفحه قرار می دیم و بررسی می کنیم که آیا شرط مساله رو برآورده می کنن یا نه؟ این روش بسیار سریع ما رو به جواب می رسونه. اما ایرادی که داره نمی شه مطمئن بود بشه به همه حالتهای چینش دست پیدا کرد. در صفحه 8 در 8 شطرنج این مساله 92 جواب مختلف داره. شما ممکنه روش تصادفی رو هزار بار به کار ببرید، اما نتونید همه 92 حالت ممکنه رو به دست بیارید. این روش زمانی مفیده که پیدا کردن یه جواب برای ما کافی باشه.

برای پیاده سازی چنین الگوریتمی و تشخیص اینکه چه خانه هایی از سطر امن هستن روشهای مختلفی وجود داره. ساده ترینشون اینه که هر بار تمامی خانه هایی رو که امکان تهدید شدن از اونها وجود داره بررسی کنیم تا از قرار نداشتن مهره وزیر در اونها مطمئن باشیم. اما این روش اصلا کارا و بهینه نیست.

روش دیگه تعریف کردن صفحه شطرنج به صورت یه آرایه n در n هستش که خونه های امن و غیر امن با علامتگذاری مشخص می شن. هر بار که مهره ای رو صفحه قرار می گیره تمام خونه هایی که توسط این مهره تهدید می شن به صورت غیر امن علامتگذاری می شن. به این ترتیب می شه فهمید که هر خونه با توجه به چینش مهره های قبلی امن هست یا نه؟ اما این روش هم معایبی داره که باعث می شه به روش سوم رجوع کنیم. برای آشنایی با این معایب کافیه سعی کنید کد برنامه رو بنویسید!

در روش سوم که من ازش استفاده کردم، برای علامتگذاری خانه های امن و غیر امن از شیوه دیگه ای بهره می بریم. به این ترتیب که اقطار راست به چپ، چپ به راست و ستونها با شماره هایی مشخص می شن که کار علامتگذاری رو بسیار ساده می کنن. این روش بدون شک از کاراترین روشهای رسیدن به جواب مساله ماست. هم سرعت اجرای بالایی داره و هم حافظه مصرفی بسیار کم!

کدی که به زبان ++C درباره این مساله نوشته شده با استفاده از روش سوم تعداد جوابهای ممکن – و نه خود جوابها – برای مقادیر مختلف n رو مشخص می کنه. به عنوان مثال اگر n رو 8 وارد کنید خروجی برنامه 92 خواهد بود. توصیه می کنم برای nهای بزرگ برنامه رو امتحان نکنید! اگر n رو 16 وارد کنید بعد از گذشتن زمان زیادی عدد 14772512 روی صفحه نمایش چاپ می شه. یعنی در صفحه شطرنج 16 در 16 حدود ۱۵ میلیون حالت مختلف برای چیدمان صحیح وجود داره!!

 


 

 



 قیمت: 50,000 تومان  پرداخت و دانلود

امکان اینکه خرید شما بصورت اسکن عکس کتاب باشد وجود دارد! #نسخه_الکترونیکی_کمک_درکاهش_تولید_کاغذ


برچسب ها: الگوریتم و سورس مساله هشت وزیر پروژه آماده C سی پلاس دانلود پروژه آماده سی پلاس پلاس پروژه آماده برنامه نویسی 8 وزیر الگوریتم 8 وزیر الگوریتم هشت وزیر پروژه هشت وزیر سورس کد 8 وزیر صفحه شطرنج طراحی الگوریتم هشت وزیر هوش مصنوعی
دسته بندی: 🔺زبان برنامه نویسی و اسکریپت » C و C++

تعداد مشاهده: 8002 مشاهده

فرمت محصول دانلودی:.zip

فرمت فایل اصلی: word

تعداد صفحات: 18

حجم محصول:147 کیلوبایت


نماد اعتماد الکترونیکی


هزینه مالیات خرید را مهمان ما باشید!

درباره ما

آدرس: گناباد، بخش مرکزی، شهرک حافظ ،خیابان شهیدشوریده پلاک209 طبقه_همکف کدپستی9691958475
در سال 1391 فعالیت ما تشکیل شد. سیستمی کاملا پویا و تعاملی که به‌عنوان یک دروازه متمرکز برای دسترسی به اطلاعات، خدمات و منابع عمل میکند. تجارت آنلاین جهانی باسرعت درحال پیشرفت است. حوزه آنلاین شاپ ها و کسب کارهای اینترنتی بخش کوچکی از این صنعت فروش هستند. در کارآفرینی نیز به همینصورت الان می توانید آنلاین شاپ خود را بـسازید!

تماس با ما

"کتابخانه دیجیتالی فارس فایل" پورتالی آماده سرویس دهی خدمات برای کمک در فروش اینترنتی فایل ها و محصولات دیجیتالی الکترونیکی
مفتخریم در زمینه گسترش و توسعه فرهنگ با مشارکت شما ارزش دانش کهن باستان و علوم روز دنیا را نگهداری و حفظ نماییم.

تلفن تماس051-57261834 آیـدیfars_support ارسال آنلاین پیام در تلگـرام

آمار نشان سایت

logo-samandehi
99,125 بازدید امروز
95,378 بازدید دیروز
509,314,728 بازدید کل
28,004 تعداد کاربر
68,060 کل محصولات
تمام حقوق مادی و معنوی سایت برای فارسفایل محفوظ می باشد.
کدنویسی توسط تیم : فارسفایل