مقدمة
سودوكو ، المعروف أيضا باسم "عدد المكان" هي لعبة منطقية هدفها هو بسيط نسبيا : واستنادا إلى أرقام بالفعل تعطى للمكان على كل خلية من خلاياه ، وهو الرقم الذي لم يتم بالفعل إما في نفسه في نفس العمود أو الصف ، أو في الربع نفسه أو القطاع.
سودوكو نماذج تختلف ، ولكن الأكثر انتشارا ، وتتألف من 9 صفوف من الأعمدة 9 ، 9 الساحات ، كل واحد من 9 والأرباع في كل من الصفوف والأعمدة يجب أن توضع بطلب أرقام من 1 إلى 9. على سبيل المثال قد يكون :

عرض الحل
والتراجع هو أسلوب البرمجة التي يمكن أن تبدأ مع تعريف العودية (انظر تعريف العودية) مع فارق أنه في التراجع ، كما أن هناك مسارات مختلفة للاختيار ، وصلت الى النهائي مرة واحدة وليس وفت الشرط المحدد ، والعودة ، ومواصلة البحث عن طرق بديلة أو مختلفة ، وربما غير صحيحة.
فكرة التراجع إذا لم يفهم ، انها تبدو جيدة في هذه الأمثلة من الأسقف والبيدق ، ويمتد من الملك ون المسودات.

أنا بلدي تحميل البرنامج الخاص أن يحل سودوكو الألغاز التي تطرحها هذه التقنية من التراجع. تذكر أن أفضل أسلوب هو أقل بكثير في حل الألغاز ، ولكن من الناحية العملية استخدام القوة الغاشمة لتسوية الصراعات مع امكانية العودة الى الوراء ، والتطلع المزيد من الطرق.
قرار عملية
مجلس سودوكو لحل هو معطى من قبل الوالدين "سول [1.. 9.1.. 9] من 0.. (9)" حيث الشمس [ط ، ي] تمثل القيمة التي تأخذ الخلية ، المقابلة مع ل0 أحد المربعات الفارغة. ويستخدم مصفوفة المساعدة "الأولي [1.. 9 1.. 9] من Bool" حيث الأولي [ط ، ي] تمثل خلية مع القيمة الأولية لا يمكن أن تغير ويناظر الخلية "سول [ط ، ي] ".
عند شجرة متفرعة من الاستكشاف ، وسوف نفعل إلا إذا كان هذا الحل الجزئي هو أننا علاج ك ، واعدة ، وهذا هو ، إذا كان بعد حل جزئية لا يمكن الاستمرار في بناء الحلول الجزئية. لمعالجة هذه النقطة ، نحن نستخدم الدالة المساعد يسمى "es_factible.
شجرة التنقل ولدت سيكون له الخصائص التالية :
- الارتفاع = 1 + م : م ويجري في عدد من العلب الفارغة في البداية.
- عدد الأطفال لكل عقدة = 9 : ألف طفل لكل قيمة ممكنة من خلية ط
تنزيل
البرنامج فعلت يشمل جميع الملفات النصية الموجودة في المجلد التصحيح لهذا المشروع والعملية بإنشاء ملف الحل لكل سودوكو وعامة ملخص الملف مع الفترة الزمنية اللازمة لحل كل واحد منهم. أترك شفرة المصدر وتقرير في قوات الدفاع الشعبي.








مرحبا ، لقد تمرين مع تراجع وأنا لم تكن قادرة على ان تفعل ، اذا كنت استطيع مساعدتك في agradeceria الروح. المشكلة هي عندي سلسلة من الأرقام وهذا يجب أن تقسم إلى أجزاء +1 ن ، ن يدل على المستخدم. ومجموع الأجزاء ن يجب أن تكون مساوية لل+1 ن. على سبيل المثال ن = 5 شارع = 1002010002503001670
وستكون النتيجة 100 20 1000 250 300 1670. والحد الأقصى لكل جزء هو 1000 ، ولكن الأخير الذي سيكون 7000. شكرا