इष्टतम संपीड़ितता प्राप्त करने के लिए आपको पूर्ण लुक-अप तालिका की आवश्यकता नहीं है। मेरा मानना है कि एक बहुत ही उचित लुक-अप तालिका का उपयोग करने वाले आधुनिक कंप्यूटर विवश सुदोकस की संख्या की गणना करने में सक्षम हैं , जो पहले से ही कुछ अंकों के साथ सुदोक हैं। इसका उपयोग करते हुए, यहां बताया गया है कि आप कैसे एनकोड करते हैं (डिकोडिंग समान है)।
वर्गों का क्रम ठीक करें। मान लीजिए कि पहले वर्ग पर संख्या । रखो एन 1 Sudokus जिनकी पहली वर्ग से भी कम है की संख्या होने के लिए डी 1 । चलो अब d 2 दूसरे वर्ग की संख्या है। रखो एन 2 Sudokus जिनकी पहली वर्ग है की संख्या होने के लिए डी 1 और जिसका दूसरा वर्ग से भी कम है घ 2 । और इसी तरह। एन्कोडेड नंबर N = ∑ i N i है ।घ1एन1घ1घ2एन2घ1घ2एन= ∑मैंएनमैं
एन्कोडिंग की इस विधि को साहित्य में द्विपद एन्कोडिंग के रूप में जाना जाता है। यह आपको प्रभावी रूप से (वास्तविक दुनिया में) किसी भी सुडोकू के सूचकांक की गणना करने में सक्षम बनाता है, और इसके विपरीत। फिर आपको केवल बिट्स की आवश्यकता होगी , जैसा कि ऊपर वर्णित है (इसका मतलब है कि आप उनमें से कई को बिट की औसत संख्या के साथ कोड कर सकते हैं)।72.4
संपादित करें: सुडोकू के गणित पर विकिपीडिया पृष्ठ चित्र को स्पष्ट करने में हमारी मदद करता है। एड रसेल द्वारा संकलित तालिका भी सहायक है ।
यह पता चला है कि यदि आप केवल शीर्ष तीन पंक्तियों पर विचार करते हैं, तो विचार करने के लिए अनिवार्य रूप से केवल 44 विभिन्न कॉन्फ़िगरेशन हैं। तालिका में, आप किसी भी एक के बराबर कॉन्फ़िगरेशन की कुल संख्या पा सकते हैं (यह मानते हुए कि शीर्ष पंक्ति 123456789 है), और प्रत्येक की पूर्णता की कुल संख्या। एक सुडोकू को देखते हुए, यहां बताया गया है कि हम इसकी क्रमिक संख्या की गणना कैसे करेंगे:
- कॉन्फ़िगरेशन को सामान्य करें ताकि इसकी शीर्ष पंक्ति 123456789 हो।
- पता करें कि यह किस 44 विभिन्न विन्यासों से संबंधित है। विकिपीडिया लेख उस के लिए एक एल्गोरिथ्म देता है। तालिका प्रत्येक कॉन्फ़िगरेशन के लिए समतुल्य वर्गों की संख्या, साथ ही पूर्णताओं की संख्या को सूचीबद्ध करती है।
- इसके समतुल्य वर्ग के अंदर शीर्ष तीन पंक्तियों के विन्यास की क्रमिक संख्या निर्धारित करें। यह दो तरीकों से किया जा सकता है: या तो सभी समतुल्यता वर्ग की सूची का उपयोग करना (सभी समतुल्यता वर्गों में कुल मिलाकर 36288 हैं), या उन सभी को शीघ्रता से निकालने का एक तरीका खोजकर।
- अपने पहले कॉलम द्वारा पंक्तियों को 4-6 और 7-9 छाँटकर शेष पंक्तियों को सामान्य करें, और फिर कुछ मनमाने तरीके से पंक्तियों के इन दो ब्लॉकों को छाँटें। यह 72 के कारक द्वारा पूर्णता की संख्या को कम करता है।
- एक ही प्रथम स्तंभ वाले सभी पूर्णताओं को संकलित करें। प्रत्येक समतुल्यता वर्ग के लिए उनमें से लगभग , ताकि बहुत लंबा न हो। कुछ ट्रेडऑफ़ यहाँ भी संभव हैं।220
- आइए समतुल्यता वर्ग हो, j समतुल्यता वर्ग के भीतर शीर्ष तीन पंक्तियों के विन्यास की क्रमिक संख्या हो , k पूर्णता की क्रमिक संख्या हो। दो सरणियाँ C i , D i (जो कि एड रसेल की मेज से गणना की जा सकती हैं) ऐसी हैं कि C i + j D i + k सोडोडो की क्रमिक संख्या 9 तक है ! ⋅ 72 समानताएं माना जाता है। उससे आप वास्तविक क्रमिक संख्या की गणना कर सकते हैं।मैंjकश्मीरसीमैं, डीमैंसीमैं+ जे डीमैं+ के9 ! ⋅ 72
यह प्रक्रिया प्रतिवर्ती है, और क्रमिक संख्या से सुडोकू उत्पन्न करेगी। ध्यान दें कि सुडोकू की गणना कुछ मिनटों (2006 में, विकिपीडिया लेख के वार्ता पृष्ठ देखें) या उससे कम हो गई है, इसलिए मुझे उम्मीद है कि आधुनिक कंप्यूटर पर यह दृष्टिकोण बहुत व्यावहारिक होगा और कुछ सेकंड या उससे कम समय लेगा।