دانلود پروژه - امروز : یکشنبه ۱۴ آذر ۱۳۹۵

سورس کد برنامه هشت وزیر سی پلاس پلاس ++c

موضوع : تمرین های سی پلاس پلاس,سی پلاس

سورس کد برنامه هشت وزیر سی پلاس پلاس ++c

سورس کد برنامه هشت وزیر سی پلاس پلاس ++c

دانلود سورس کد هشت وزیر++c

سورس هشت وزیر:  با سلام خدمت کاربران عزیز امروز با مسئله هشت وزیر ( چگونه هشت وزیر را داخل یک صفحه شطرنج بچینیم که هیچ وزیری با دیگر وزیر ها برخورد نداشته باشد ) که یکی از مسئله های بسیار معروف دنیا کامپیوتر است در خدمت شما عزیزان هستیم .این مسئله در سال ۱۸۴۸ توسط شطرنج بازی به نام مکس بزلl عنوان شد و ریاضی دانان بسیاری ازجمله گوس و گئورگ کانتور بر روی این مسئله کار کرده و در نهایت آنرا به n وزیر تعمیم دادند. اولین راه حل توسط فرانتس ناوک در سال ۱۸۵۰ ارائه شد که به همان مسئله n وزیر تعمیم داده شد. پس از آن گانتر راه حلی با استفاده از دترمینان ارائه داد که گلایشیر آنرا کامل نمود. در سال ۱۹۷۹، ادگار دیکسترا این مسئله را با استفاده از الگوریتم عقب‌گرد حل کرد.

الگوریتم عقب گرد چیست ؟

از تکنیک عقبگرد یا backtrackبرای حل مسائلی استفاده می‌شود که در آن‌ها دنباله‌ای از اشیاء از یک مجموعه مشخص انتخاب می‌شود، به طوری که این دنباله، ملاکی را در بر می‌گیرد. عقبگرد حالت اصلاح شدهٔ جست و جوی عمقی یک درخت است. این الگوریتم مانند جست و جوی عمقی با حریصانه است، با این تفاوت که فرزندان یک گره فقط هنگامی ملاقات می‌شوند که گره امید بخش باشدو در آن گره حلی وجود نداشته باشد. با توجه به اینکه هیچ ۲ وزیری نباید همدیگر را گارد کنند و در یک سطر نمی‌توانند باشند، تعداد کل حالت‌ها برای n=۴ برابر ۴*۴*۴*۴=۲۵۶ است. در شطرنج یک وزیر می‌تواند به مهره‌هایی که در خانه‌های عمود یا مورب به وی قرار دارند حمله کند. یا به عبارت ریاضی، اگر ردیفها و ستونهای شطرنج را از یک تا هشت شماره گذاری کنیم و وزیر در خانه (i، j) قرار داشته باشد، مهره‌هایی که در خانه‌های (i، m) یا (m، j) یا (i ± m، j ± m) قرار دارند توسط وزیر تهدید می‌شوند.
برای سادگی تشریح این مسئله با استفاده از روش بازگشت به عقب، فرض می‌کنیم که خانه‌های شطرنج ۴x۴ و تعداد وزیرها نیز ۴ باشد. سپس بعد از یافتن راه حل برای این مسئله ساده شده، اقدام به نوشتن الگوریتم برای مسئله اصلی می‌کنیم.
مراحل جستجو برای یافتن جواب را به این صورت دنبال می‌کنیم که: وزیر اول را در ردیف اول و ستون اول قرار می‌دهیم.
در ردیف دوم از اولین ستون به جلو رفته و به دنبال خانه‌ای می‌گردیم که مورد تهدید وزیر اول نباشد و وزیر دوم را در این خانه قرار می‌دهیم.
همانند قبل، در ردیف سوم از اولین ستون به جلو رفته و به دنبال خانه‌ای می‌گردیم که مورد تهدید وزیران اول و دوم نباشد. می‌بینیم که چنین خانه‌ای موجود نیست. پس به عقب یعنی ردیف دوم برگشته و وزیر دوم را به خانه‌ای دیگر از ردیف دوم منتقل می‌کنیم که مورد تهدید وزیر اول نباشد.
دوباره در ردیف سوم اولین خانه‌ای را میابیم که مورد تهدید دو وزیر قبلی نباشد. این بار خانه را می‌یابیم و وزیر سوم را در آن قرار می‌دهیم.
همانند قبل، در ردیف چهارم به دنبال اولین خانه‌ای می‌گردیم که مورد تهدید وزیران پیشین نباشد. چنین خانه‌ای موجود نیست. به ردیف قبل یعنی ردیف سوم باز می‌گردیم تا خانه‌ای دیگر برای وزیر سوم بیابیم. خانه دیگری وجود ندارد. به ردیف قبل یعنی ردیف دوم بر می‌گردیم تا خانه دیگری برای وزیر دوم پیدا کنیم. به آخرین ستون رسیده‌ایم و خانه دیگری نیست. به ردیف قبل یعنی ردیف اول بر می‌گردیم و وزیر اول را یک ستون به جلو می‌بریم.
در ردیف دوم اولین خانه‌ای را میابیم که مورد تهدید وزیر اول نباشد و وزیر دوم را در آن خانه قرار می‌دهیم.
در ردیف سوم اولین خانه‌ای را میابیم که مورد تهدید وزیران اول و دوم نباشد و وزیر سوم را در آن خانه می‌گذاریم.
در ردیف چهارم اولین خانه‌ای را میابیم که مورد تهدید وزیران پیشین نباشد. این بار خانه را می‌یابیم و وزیر چهارم را در آن خانه قرار می‌دهیم.
به یک جواب می‌رسیم. حال اگر فرض کنیم که این خانه جواب نیست و به مسیر خود ادامه دهیم، احتمالا” می‌توانیم جوابهای دیگری نیز بیابیم.

دانلود کنید: دانلود پروژه انتخاب واحد سی پلاس پلاس ++c

 

سورس کد:

چه امتیازی به این پروژه می دهید؟
0 تا کنون ثبت شده است
نماد کسب و کار اینترنتی
تمام حقوق مادی و معنوی و طرح قالب برای "سی پلاس" محفوظ است و هر گونه کپی برداری خلاف قوانین می شود. گرافیک و طراحی : دانلود پروژه