التباديل وفكرة N-Queens
وضع العناصر والرجوع عند التعارضات
التباديل وفكرة N-Queens درس مجاني في Coding Interview Prep على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Coding Interview Prep، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Coding Interview Prep 4 دروس في المجموع.
من المجموعات الجزئية إلى الترتيبات
إن التبديلة ترتيب لجميع العناصر بترتيب معين. ويُعد توليد التبديلات مهارة التراجع التالية بعد المجموعات الجزئية. 🔀
كم عدد التبديلات
يوجد مضروب n من التبديلات لعناصر عددها n، لأن الخانة الأولى تملك n اختيارات، والتالية n ناقص 1، وهكذا. وينمو العدد بسرعة.
ضعوا عنصرًا واحدًا في كل مرة
يملأ الاستدعاء الذاتي المواضع من اليسار إلى اليمين. وفي كل خطوة تختارون عنصرًا غير مستخدم، وتضعونه، ثم تستدعون الدالة ذاتيًا لبقية العناصر.
تتبّعوا العناصر المستخدمة
تحدد مصفوفة used المنطقية العناصر الموضوعة بالفعل، بحيث يظهر كل عنصر مرةً واحدةً بالضبط في كل تبديلة.
التبديلات في التعليمات البرمجية
يضع هذا التراجع قيمةً غير مستخدمة، ثم يستدعي الدالة ذاتيًا، ثم يحررها للفرع التالي.
def perm(cur):
if len(cur) == n:
out.append(cur[:]); return
for x in a:
if x not in cur:
perm(cur + [x])استخدموا itertools عندما يُسمح بذلك
في المسابقات السريعة، توفر itertools.permutations كل ترتيب من دون كتابة الاستدعاء الذاتي بأنفسكم.
from itertools import permutations
for p in permutations(a):
print(p)مسألة N-Queens
تطلب N-Queens وضع n من الملكات على لوحة حجمها n في n بحيث لا تهاجم أي منها الأخرى. وهي لغز التراجع الكلاسيكي. 👑
ملكة واحدة في كل صف
بما أن ملكتين لا تشتركان في الصف نفسه، تضعون ملكة واحدة في كل صف وتختارون عمودها فقط. وهذا يقلّص مساحة البحث كثيرًا.
تحققوا من التعارضات الثلاثة
قبل الوضع، ارفضوا أي عمود أو قطر مستخدم مسبقًا. وتتبعوا الأعمدة المستخدمة واتجاهَي القطرين في مجموعتين.
if c in cols or r-c in d1 or r+c in d2:
continueتراجعوا عند الوصول إلى طريق مسدود
إذا لم ينجح أي عمود في صف ما، يفشل الفرع. عندها أجروا تراجعًا، وأزيلوا الملكة الأخيرة، وجربوا خيارها التالي.
النمط المشترك
تشترك التبديلات وN-Queens في بنية واحدة: اختيار، واستدعاء ذاتي، وإلغاء. وما إن تروها حتى تصبح معظم ألغاز الوضع قابلةً للحل بالقالب نفسه.
تحقق سريع
لماذا تضع مسألة N-Queens ملكةً واحدةً فقط في كل صف؟
مراجعة: اختاروا، واستدعوا ذاتيًا، وألغوا
ولّدتم التبديلات بوضع العناصر غير المستخدمة، وتعلّمتم أن N-Queens تستخدم النمط نفسه: اختيار، واستدعاء ذاتي، وإلغاء، مع فحوص التعارض. 🎯
الأسئلة الشائعة
هل درس «التباديل وفكرة N-Queens» مجاني؟
نعم — نص درس «التباديل وفكرة N-Queens» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Coding Interview Prep، انتقل إلى CoddyKit PRO. تتضمن دورة Coding Interview Prep 4 دروس في المجموع.
ماذا ستتعلم في «التباديل وفكرة N-Queens»؟
وضع العناصر والرجوع عند التعارضات تتمرن على Coding Interview Prep مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Coding Interview Prep؟
لا تُشترط خبرة سابقة. Coding Interview Prep على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «التباديل وفكرة N-Queens»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Coding Interview Prep هذا؟
نعم. كل درس في Coding Interview Prep يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- التفكير递归يًا: الحالة الأساسية والاستدعاء递归ي
- توليد جميع المجموعات الجزئية
- التباديل وفكرة N-Queens
- التقليم للنجاة من الحد الزمني