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

MySQL में रैंड () का वितरण

मैं फ़ंक्शन के लिए जल्दी से स्रोत कोड नहीं ढूंढ पाया; इसे देखकर बेहतर उत्तर पाने में मदद मिल सकती है। उस ने कहा, यह 'नहीं.. लेकिन थोड़े करीब' जैसा दिखता है।

प्रलेखन से मैं देख सकता हूँ कि यह यादृच्छिक होने की कोशिश करता है (और वैकल्पिक रूप से आप इसे बीज कर सकते हैं); लेकिन दो चेतावनी हैं जिसका मतलब है कि यह हमेशा एक समान नहीं हो सकता है जब आप इसकी अपेक्षा करते हैं कि यह पहला मुद्दा इसके दस्तावेज़ीकरण में है:

RAND() is not meant to be a perfect random generator. It is a fast way to generate random numbers on demand that is portable between platforms for the same MySQL version. 

यानी इसके लिए कोड एक वास्तविक यादृच्छिक संख्या जनरेटर होने में संदिग्ध है - यह अधिकांश उद्देश्यों के लिए पर्याप्त है, लेकिन एन्क्रिप्शन में उपयोग के लिए भरोसा नहीं किया जा सकता है, और मैं शर्त लगा सकता हूं कि यहां तक ​​​​कि भरोसा नहीं किया जा सकता है वर्दी जैसा आप उम्मीद कर सकते हैं।

उनका दावा है कि यह सही नहीं है इसका मतलब है कि यह कम से कम इनमें से कुछ परीक्षणों में लगभग निश्चित रूप से विफल हो जाएगा; कैसे अभी भी स्पष्ट नहीं है, लेकिन अगर यह एक आदर्श आरएनजी नहीं है, तो आप पूरी तरह से समान वितरण नहीं देखेंगे; मैं या तो अंतराल या श्रेणियों की चोटियों की अपेक्षा करता हूं जो अधिक/कम सामान्य हैं।http://www.stat.fsu.edu/pub/diehard/cdrom/pscript/monkey.ps (तब से और भी काम किया गया है लेकिन आरएनजी के सत्यापन में यह अभी भी कुछ महत्वपूर्ण काम है)।

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




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Laravel में ईमेल लिंक को फिर से भेजें फंक्शन कैसे करें?

  2. यदि फ़ील्ड रिक्त नहीं है तो MYSQL जॉइन करें

  3. उपयोगकर्ता समय क्षेत्र के अनुसार तारीख को पुनः प्राप्त करें और इसे विशिष्ट समय क्षेत्र में परिवर्तित करें

  4. चाइल्ड रिकॉर्ड के साथ पैरेंट रिकॉर्ड प्राप्त करने की क्वेरी, उसके बाद mysql में अगले पैरेंट-चाइल्ड रिकॉर्ड्स

  5. चुनें + सम्मिलित करें + क्वेरी कैश =MySQL लॉक अप