सबसे पहले मेरी अंग्रेजी के लिए खेद है।एरलांग में बैकट्रैकिंग
मैं एरलांग में बैकट्रैकिंग एल्गोरिदम का उपयोग करना चाहता हूं। यह आंशिक रूप से भरे सुडोकस को हल करने के अनुमान के रूप में कार्य करेगा। एक 9 x 9 सुडोकू 81 तत्वों की सूची के रूप में संग्रहीत किया जाता है, जहां प्रत्येक तत्व उस संभावित संख्या को संग्रहीत करता है जो उस सेल में जा सकता है।
एक 4x4 सुडोकू के लिए मेरा प्रारंभिक समाधान इस तरह दिखता है: [[1], [3], [2], [4], [4], [2], [3], [1], [ 2,3], [4], [1], [2,3], [2,3], [1], [4], [2,3]]
इस सुडोकू में 2 समाधान हैं। मुझे दोनों को लिखना है। उस प्रारंभिक समाधान के बाद, मुझे बैकट्रैकिंग एल्गोरिदम लागू करने की आवश्यकता है, लेकिन मुझे नहीं पता कि इसे कैसे बनाया जाए।
मेरा विचार निश्चित तत्वों को फिक्स्डलिस्ट नामक एक नई सूची में लिखना है जो एकाधिक समाधान कोशिकाओं को [] में बदल देगा।
उपर्युक्त उदाहरण के लिए फिक्स्डलिस्ट इस तरह दिखता है: [[1], [3], [2], [4], [4], [2], [3], [1], [ ], [4], [1], [], [], [1], [4], []]
यहां से मेरे पास "नमूना" है, मैं समाधान सूची में सबसे कम लंबाई की तलाश करता हूं, 1 के बराबर नहीं है, और मैं इस सेल की पहली संभावित संख्या आज़माता हूं और मैंने इसे उस निश्चित सूची में डाल दिया है। यहां मेरे पास कोशिकाओं को अद्यतन करने के लिए एक एल्गोरिदम है और जांच करता है कि यह अभी भी एक हल करने योग्य सुडोकू है या नहीं। यदि नहीं, तो मुझे नहीं पता कि कैसे एक को पीछे हटाना है और एक नया प्रयास करना है। मुझे इसका छद्म कोड पता है और मैं इसे अनिवार्य भाषाओं के लिए उपयोग कर सकता हूं लेकिन एरलांग के लिए नहीं। (प्रोलॉग वास्तव में बैकट्रैक एल्गोरिदम लागू किया गया था, लेकिन erlang नहीं था)
कोई विचार?
क्या आप अभी भी इसमें रुचि रखते हैं, मैं अब इसके साथ कुछ काम कर रहा हूं और यदि आप चाहें तो आपकी मदद कर सकते हैं। आप यहां मेरी आईडी का उपयोग जीमेल पर मेल एड्रेस के रूप में कर सकते हैं। – rvirding