معمای گورخر یک معمای منطقی مشهور است که در آن پنج خانه وجود دارد و هر خانه به رنگ متفاوتی رنگ شده است. در این خانهها افراد متفاوتی زندگی میکنند: ملیتشان با هم فرق دارد، حیوان خانگی متفاوتی نگه میدارند، نوشیدنی متفاوتی مینوشند و سرگرمی متفاوتی دارند.
برای اینکه بتوانید این معما را حل کنید، ۱۵ گزاره در اختیار شما قرار میگیرد که راهحل را توصیف میکنند. با این حال، فقط با کنار هم گذاشتن اطلاعات همهی این گزارهها میتوانید راهحل معما را پیدا کنید.
معمای گورخر یک مسئلهی ارضای محدودیت (CSP) است. در چنین مسئلهای، مجموعهای از مقادیر ممکن دارید و مجموعهای از محدودیتها که تعیین میکنند کدام مقادیر معتبرند. سودوکو هم نمونهی شناختهشدهی دیگری از همین نوع مسئله است.
وظیفهی شما این است که معمای گورخر را حل کنید تا پاسخ این دو پرسش را پیدا کنید:
۱۵ گزارهی زیر همه درستاند:
علاوه بر این، هر یک از این پنج خانه رنگ متفاوتی دارد و ساکنانشان ملیتهای متفاوت دارند، حیوان خانگی متفاوتی دارند، نوشیدنی متفاوتی مینوشند و به سرگرمیهای متفاوتی مشغولاند.
۲۴ میلیارد (۵!⁵ = ۲۴٬۸۸۳٬۲۰۰٬۰۰۰) راهحل ممکن وجود دارد، پس سعی کنید تا جای ممکن راهحلهای بیشتری را حذف کنید.
در Exercism ثبتنام کنید تا Prolog را همراه با 109 تمرین و مربیگری انسانی واقعی یاد بگیرید و در آن استاد شوید، همهی اینها رایگان.
۸ روش متفاوت برای یافتن پاسخ معمای گورخر از میان ۲۴ میلیارد راهحل ممکن را بررسی کنید؛ از جمله کنار گذاشتن جایگشتهای نامعتبر به محض امکان، الگوریتم AC-3، یک راهحل بسیار کوتاه مبتنی بر منطق و حتی یک الگوریتم ژنتیک!