मैं अद्वितीय कोड संख्याएं उत्पन्न करना चाहता हूं (वास्तव में 7 अंकों से बना)। कोड संख्या यादृच्छिक रूप से जेनरेट की जाती है और MySQL तालिका में सहेजी जाती है।दो अंकों में अलग-अलग अद्वितीय कोड उत्पन्न करना
मेरे पास एक और आवश्यकता है। सभी जेनरेट किए गए कोड कम से कम दो अंकों में भिन्न होना चाहिए। उपयोगकर्ता कोड टाइप करते समय त्रुटियों को रोकने के लिए यह उपयोगी है। उम्मीद है कि, कुछ संचालन करते समय यह किसी अन्य उपयोगकर्ता कोड का जिक्र करना बंद कर देगा क्योंकि यह दो अंकों को याद करने और किसी अन्य मौजूदा उपयोगकर्ता कोड से मेल खाने की संभावना नहीं है।
एल्गोरिथ्म उत्पन्न बस काम करता है की तरह है:
- सभी पिछले कोड को पुनः प्राप्त करता है, तो MySQL तालिका से किसी भी।
- एक समय में एक कोड उत्पन्न करें।
- सभी पिछले कोड के साथ जेनरेट कोड घटाएं।
- घटाव परिणाम में गैर-शून्य अंकों की संख्या की जांच करें।
- यदि यह> 1 है, तो जेनरेट कोड स्वीकार करें और इसे पिछले कोड में जोड़ें।
- अन्यथा, 2.
- अनुरोधित कोडों की संख्या के लिए 2 से 6 चरणों को दोहराएं।
- डीबी तालिका में जेनरेट कोड सहेजें।
एल्गोरिदम ठीक काम करता है, लेकिन समस्या प्रदर्शन से संबंधित है। बड़ी संख्या में कोड उत्पन्न करने का अनुरोध करते समय कोड उत्पन्न करना बहुत लंबा लगता है: 10,000।
प्रश्न: क्या इस एल्गोरिदम के प्रदर्शन में सुधार करने का कोई तरीका है?
यदि यह मायने रखता है तो मैं उबंटू सर्वर पर perl + MySQL का उपयोग कर रहा हूं।
चेक एप्लिकेशन इस एप्लिकेशन के लिए एक उत्कृष्ट विचार है। –
यह वास्तव में एक अच्छा विचार है। यह भी सुनिश्चित करता है कि कोई भी दो कोड केवल एक अंक से भिन्न नहीं हो सकता है, क्योंकि किसी भी अंक को बदलने से चेकसम भी बदल जाएगा। –
सुधार - अंक बदलना _probably_ चेकसम बदल जाएगा। आप निश्चित रूप से दो कोड बना सकते हैं जो आपके द्वारा प्रयास किए जाने पर केवल एक वर्ण से भिन्न होते हैं। –