Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

यादृच्छिक संख्या उत्पन्न करने के लिए एल्गोरिदम

नहीं, आपका एल्गोरिदम स्केलेबल नहीं है। मैंने पहले जो किया है, वह क्रमानुसार संख्याएँ जारी करना (हर बार +1) करना है और फिर उन्हें बिट्स को गड़बड़ाने के लिए एक XOR ऑपरेशन के माध्यम से पास करना है, जिससे मुझे एक यादृच्छिक संख्या मिलती है। बेशक वे वास्तव में यादृच्छिक नहीं हैं, लेकिन वे उपयोगकर्ताओं की आंखों के समान दिखते हैं।

[संपादित करें] अतिरिक्त जानकारी

इस एल्गोरिथम का तर्क इस प्रकार है कि आप अद्वितीय संख्याओं को उत्पन्न करने के लिए एक ज्ञात अनुक्रम का उपयोग करते हैं और फिर आप उन्हें निश्चित रूप से हेरफेर करते हैं, इसलिए वे अब धारावाहिक नहीं दिखते हैं। सामान्य समाधान एन्क्रिप्शन के कुछ रूप का उपयोग करना है, जो मेरे मामले में एक एक्सओआर फ्लिपफ्लॉप था, क्योंकि यह जितना तेज़ हो सकता है, और यह गारंटी को पूरा करता है कि नंबर कभी नहीं टकराएंगे।

हालाँकि आप एन्क्रिप्शन के अन्य रूपों का उपयोग कर सकते हैं, यदि आप और भी अधिक यादृच्छिक दिखने वाली संख्याएँ पसंद करते हैं, गति से अधिक (कहते हैं कि आपको एक समय में कई आईडी उत्पन्न करने की आवश्यकता नहीं है)। अब एन्क्रिप्शन एल्गोरिथम चुनने में महत्वपूर्ण बिंदु "यह गारंटी है कि संख्याएं कभी नहीं टकराएंगी"। और यह साबित करने का एक तरीका है कि क्या एक एन्क्रिप्शन एल्गोरिथ्म इस गारंटी को पूरा कर सकता है, यह जांचना है कि क्या मूल संख्या और एन्क्रिप्शन के परिणाम दोनों में समान संख्या में बिट्स हैं, और यह कि एल्गोरिथ्म प्रतिवर्ती (विभाजन) है।

[एडम लिस का धन्यवाद &सीज़रबी समाधान पर विस्तार के लिए]



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. आप mysql से प्रत्येक n-वें पंक्ति का चयन कैसे करते हैं?

  2. MySQL के साथ धाराप्रवाह nHibernate को कैसे कॉन्फ़िगर करें

  3. डेटाबेस में बीक्रिप्ट हैशेड पासवर्ड को स्टोर करने के लिए मुझे किस कॉलम प्रकार/लंबाई का उपयोग करना चाहिए?

  4. MySQL रेडियंस () फ़ंक्शन - डिग्री से रेडियन में कनवर्ट करें

  5. देशांतर और अक्षांश द्वारा दूरी की गणना के साथ SQL क्वेरी को कैसे अनुकूलित करें?