فکر بکر یک بازی رمزگشایی برای دو بازیکن است. این بازی به صورت امروزی به همراه چندین میخ در سال ۱۹۷۰ توسط مردخای میرویدز اختراع شد. این بازی به شیوهای جذّاب توان ذهنی شما را در استدلال بالا میبرد. هنگام بازی در بررسی و مقایسهی حدسها و پایهریزی حدس بعدی، بارها گزارههای شرطی را در ذهن ثبت میکنید. گاهی آنها را نقیض میکنید و گاهی عکس نقیض را بررسی میکنید. از همه مهمتر این که کسانی که این بازی را تمرین کردهاند، در زمینههای دیگر در ریاضیّات کمتر اشتباه منطقی مرتکب میشوند.
در بازی فکر بکر، یکی از دو نفر یک ترتیب از رنگها را انتخاب و پنهان میکند و دیگری تلاش میکند تا رنگهای پنهان را به ترتیب درست پیدا کند. حالت استاندارد این بازی از ۶ رنگ تشکیل شده است و بازیکن میتواند در هر حدس حداکثر ۴ رنگ را انتخاب کند. این بازی دارای چند " الگوریتم بُرد " است . الگوریتم بُرد روشی است که بازیکن با انجام گام به گام آن، در نهایت پیروز بازی میشود. در ادامه این مطلب الگوریتم برد پنچ حدسی و کد این الگوریتم تحت برنامه های Matlab و Mathematica ارائه میشود.
الگوریتم پنج حدسی
این الگوریتم به طور پیشرونده تعداد الگوهای ممکن را کاهش میدهد. الگوریتم به صورت زیر کار میکند: مجموعهی S که شامل حالات ممکن باقیمانده است در نظر بگیرید (در اینجا ۱۲۹۶ حالت ممکن وجود دارد). حدس اول AABB است. (*) همهی حالات ممکن از S را که اگر جواب باشند امتیاز مشابه میخهای رنگی و سفید به دست نمیدهد، حذف کنید. برای هر حدس ممکن در S تعداد حالات ممکن از S که برای هر امتیاز رنگی/سفید ممکن حذف خواهد شد، محاسبه کنید. امتیاز حدس کمترین مقادیر مشابه است. بازی را با حدسی ادامه دهید که بیشترین امتیاز را دارد. به مرحلهی (*) بازگردید تا زمانی که حدس شما صحیح باشد.
در سال ۱۹۷۷، دونالد کنوت ثابت کرد که الگوریتم رمزگشای بالا میتواند الگو را در پنج حرکت یا کمتر حل کند
به منظور دریافت " کد الگوریتم پنج حدسی " تحت برنامههای Matlab و Mathematica میتوانید از طریق راههای ارتباطی موجود در پروفایل اقدام نمائید.
تصویر زیر یک نمونه از چگونگی عملکرد این الگوریتم تحت برنامه ی Mathematica را نشان میدهد . در تصویر قسمت هایی که با منحنی قرمز مشخص شده اند ؛ اطلاعاتی است که توسط کاربر به برنامه داده می شود .
همانطور که در تصویر پیداست جواب نهایی مد نظر ما در این مثال جواب {آبی،سرخ،سفید،سبز} بوده و الگوریتم بعد از چهار حرکت و در انتخاب پنجم توانسته جواب را به درستی بیابد .
به عنوان مثال الگوریتم در حرکت اول جواب {سفید،سفید،مشکی،مشکی} را حدس زد و کاربر با توجه به جواب اصلی ، به این حدس امتیاز یک مهره سفید را داد و به همین ترتیب الگوریتم در هر مرحله با توجه به پاسخ های کاربر در مراحل قبلی ، حدس هایی را مطرح میکند و کاربر نیز با توجه به جواب اصلی به آن حدس امتیاز میدهد. با ادامه این روند الگوریتم بعد از حداکثر پنج حرکت میتواند جواب اصلی را بیابد.
