سفارش تبلیغ
صبا ویژن
 
خداوند آن را دوایی قرار داد که با آن دردی و نوری که با آن ظلمتی نیست [امام علی علیه السلام ـ در توصیف قرآن ـ]
 
امروز: دوشنبه 103 اردیبهشت 10

الگوریتم و سورس کد مسئله هشت وزیر ( ? وزیر )

 

هشت وزیر

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

برای افرادی که با بازی شطرنج آشنایی ندارن:

وزیر مهره ای از مهره های بازی شطرنجه که می تونه در تمامی ? جهت هر تعداد خانه – تا زمانی که مهره ای مانع نباشه – حرکت کنه و اگه در یکی از این خانه ها مهره حریف قرار داشته باشه تهدیدش کنه.

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

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

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

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

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

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

در ادامه میتونید الگوریتم، تحلیل و سورس کد این مسئله را ( با زبان های مختلف ) از سایت پروژه دانلود کنید



پسورد: www.prozhe.com

حجم فایل : ??? کیلوبایت

مطلب مرتبطی وجود ندارد


 نوشته شده توسط محمد قاری در دوشنبه 89/4/7 و ساعت 11:23 صبح | نظرات دیگران()
درباره خودم
آمار وبلاگ
بازدید امروز: 169
بازدید دیروز: 26
مجموع بازدیدها: 238888
فهرست موضوعی یادداشت ها
علوم کامپیوتر[43] . دانلود[14] . کتاب[13] . PDF[10] . علوم کامپیوتر[7] . آموزش[4] . اینترنت[3] . سرعت[3] . راهنمای[3] . سیستم عامل[2] . سرفصل کنکور کارشناسی ارشد مجموعه مهندسی کامپیوتر[2] . در[2] . هسته[2] . و[2] . برنامه نویسی[2] . ترفندهای[2] . افزایش[2] . کار[2] . کاربردی . کتاب PDF . کتاب جامع مدار منطقی . کلاس . کنکور کارشناسی ناپیوسته دانشگاه جامع علمی کاربردی 88 . کوچکترین فلش مموری جهان . الگوریتم و سورس کد مسئله هشت وزیر ( ? وزیر ) . امنیت . امنیت در شبکه های کامپیوتری . انتی ویروس یو س پی USB Threat Defender . اندروید . انواع دستور Ping . PDF دیتا . ProgDVB . XP . آزمون . آشنایی . آشنایی با روش های ذخیره سازی و رمزگذاری بر روی cd . ( روبات مسیریاب ) . ? سیم کارت در یک گوشی با OTECH F1 . 1 روز . 1100 لغت پرکاربرد در اخبار انگلیسی . 1389 . 4 نکته برای خرید نمایشگرهای جدید ال‌سی‌دی با توجه به بودجه‌ شما . 89 . ActiveX . Dialup . DNS . FileSee یک نرم افزار جهت پخش فایل . آموزش Delphi 7 . آموزش تایپ فارسی . آموزش تصویری ورد 2007 . آموزش جامع نرم افزار Flash CS4 Professional . آموزش زبان برنامه نویسی پایتون python . آموزش زبان سی شارپ . آموزش سریع SQL . آموزش فارکس . آموزش نرم افزار مالتی مدیا بیلدر . آیا تکنولوژی موجب تنهایی ما شده است؟ . آیفون . ارسال . از . از طریق . اس ام اس . اسکریپت . اطلاعیه پذیرش دانشجو در مقطع کارشناسی ارشد بدون شرکت در آزمون ور . تقویم . جاوا . جزوات . جزوات پارسه کاردانی به کارشناسی کامپیوتر ویژه آزاد . جزوات طلایی کاردانی به کارشناسی . جزوه ریاضیات مهندسی . ‎چرا دستگاهای بیسیم اطرافمان از باند ?/? گیگاهرتز استفاده می کنن . چگونه . چگونه منوی راست کلیک ویندوز را ویرایش کنیم؟ . چگونه یک صفحه اختصاصی در گوگل پلاس بسازیم؟ . چهارم . چیز در . حساب . خطاهای . دانشگاه جامع علمی کاربردی هم تفکیک جنسیتی شد . برنامه نویسی شبکه و اینترنت با VB . بهینه . بیس . پد . پروژه نرم افزار چت بین کامپیوتر و سرور با ویژوال بیسیک . پنج شگفتی‌ دنیای فناوری و اینترنت در سال 2011 . پیدا کردن لیست دستگاه‌هایی USB استفاده شده . تاریخچه گرامافون و صفحه موسیقی در ایران . تبلیغات کارآمد وب سایت . با . با چه چیزی و چطور باید هدفون و هندزفری را تمیز کرد؟ . با علم . با لینوکس آشنا شویم . باگ اسکنر ها . بالا بردن عمر لپ تاپ با چند نکته ساده . باید و نباید . بخش . بررسی باب کت، یک معماری جدید از AMD . و افزایش . و راه اندازی . وایرلس . وب . ویژوال بیسیک . ویژوال بیسیک 6 . ویندوز . ویندوز 7 . هفتگانه ICDL . همه . علوم کامپیونر . در ان . درامد . سرویس . فلشدرایو جدید Silicon Power، تغییر رنگ با افزایش دما! . فناوریهایی که هنوز نیامده اند! . فیبر . کاردانی به کارشناسی . کارشناسی ارشد . کسب . گرافیک . ماشین . مخفی بودن فایلها و دایرکتوری ها . مرجع . مرجع آموزش HTML و XHTML . مرجع فارسی CSS . معرفی منابع کنکور کاردانی به کارشناسی دانشگاه آزاد سال 88 . مفاهیم پایه و معرفی ابزار کرک . ملی کردن صنعت اینترنت؟ . مهارت . مهندسی معکوس خارق العاده ای . مودم . مورد . میکند . مکاترونیک . ناگفته های پیشرفته ویندوز XP . نحوه عملکرد چاپگرهای لیزری . نرم افزار . نصب . نوری . شبکه . شروع ثبت نام کنکور کارشناسی ارشد از 17 آبان ماه . شماره هفتم مجله بازی های کامپیوتری - میگ میگ . صد . صفحه گسترده . طراحی . طرای . راهنمای ادامه تحصیل در خارج از کشور . راهنمای سریع دستورات برای شروع کار با اوبونتو . رایگان . رباتیک . روباتیک . زمان اعلام نتایج آزمون کارشناسی ناپیوسته سال 89 دانشگاه آزاد اسل . زمان ثبت نام آزمون کاردانی به کارشناسی . زمان و مهلت ثبت نام داوطلبان کارشناسی ارشد با آزمون و بدون آزمون . سازی . سال . سالنامه . دانلود پروژه شبیه سازی شبکه های کامپیوتری . دانلود پروژه طراحی یک وب سایت آموزشی . دانلود پروژه و پایان نامه رشته کامپیوتر – هوش مصنوعی . دانلود تحقیق و مقاله پیرامون الگوریتمهای مسیریابی . دانلود تحقیق و مقاله پیرامون ترانزیستور . دانلود تحقیق و مقاله پیرامون صنعت نرم افزار در ایران . دانلود تحقیق و مقاله پیرامون فناوری GPS جی پی اس . دانلود جزوه آموزشی حسابان . دانلود جزوه اصول طراحی کامپایلر . دانلود جزوه درس برنامه نویسی مبتنی بر وب . دانلود جزوه درسی الکترونیک ? . دانلود جزوه درسی مهندسی نرم افزار . دانلود جزوه زبان ماشین و برنامه سازی سیستم . دانلود جزوه هوش مصنوعی . دانلود مقاله آشنایی با فناوری DVD . دانلود کتاب PDF ویروسهای کامپیوتری و راههای از بین بردن آنها . دانلود کتابهای درسی هوش مصنوعی و مدار منطقی .
جستجو در صفحه

لینک دوستان
شکوفه های زندگی
فرزانگان امیدوار
جاده های مه آلود
سایت مهندسین پلیمر
Polymer Engineers of Iranian Universities

ل ن گ هــــــــک ف ش !
بچه مرشد!
سکوت ابدی
MNK Blog
PARANDEYE 3 PA
پژواک
****شهرستان بجنورد****
+O
سفیر دوستی
اطلاعات عمومی
تعمیرات تخصصی انواع پرینتر لیزری اچ پی HP رنگی و تک رنگ و اسکنر
►▌ رنگارنگ ▌ ◄
.: شهر عشق :.
پیامنمای جامع
بوی سیب
سایت روستای چشام (Chesham.ir)
انسان جاری
نور
ترانه ی زندگیم (Loyal)
محمد قدرتی
حکیم دزفولی
مهاجر
مردود
جام جهان نما
گروه اینترنتی جرقه داتکو
زمزمه ی کوچه باغ شاه تور
آقا رضا
مشق عشق ناز
سکوت پرسروصدا
نبض شاه تور
تنهاترین
صل الله علی الباکین علی الحسین
غلط غو لو ت
پایگاه اطلاعاتی و کاربردی شایگان
حفاظ
اس ام اس خنده دار . اس ام اس روز
فقط من برای تو
یادداشتهای روزانه رضا سروری
ریاضیات
عشقی
امام زمان (ع)
.:؛ حقوق و حقوقدانان ؛:.
پایگاه شهید کریم مینا سرشت
سه ثانیه سکوت
داستان نویس
جوک و خنده
دهاتی
دکتر علی حاجی ستوده
ماه شعبان
fazestan
عسل....
عاشقانه
هر چی بخوای
چـــــاوش ( چه خبر از دنیا ؟؟؟؟)
anzalichi
عاشق تنها....
آریایی
جوادقدرتی..خوش آمدید..javadghodrati..بفرماییدچایی..نظریادت نره..
یه دختر تنها
از ایلجیما خوشگل تر؟؟؟
تنهایی من
امین نورا (پسر سیستان)
عکسکده
تو میتونی !! اخبار جنبش دانلود سرگرمی عکس کلیپ آهنگ اس ام اس جک
..:: پایگاه خبری لک نیوز ::..
دکتر علی حاجی ستوده
اخرین نفس
علوم رایاته
فقط خدا
لوگوی دوستان
خبر نامه
 
وضیعت من در یاهو