"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > जावास्क्रिप्ट में गैर-दोहराई जाने वाली यादृच्छिक संख्याएँ प्रभावी ढंग से कैसे उत्पन्न करें?

जावास्क्रिप्ट में गैर-दोहराई जाने वाली यादृच्छिक संख्याएँ प्रभावी ढंग से कैसे उत्पन्न करें?

2024-11-08 को प्रकाशित
ब्राउज़ करें:707

How to Generate Non-Repeating Random Numbers in JavaScript Effectively?

जेएस में गैर-दोहराई जाने वाली यादृच्छिक संख्याएं उत्पन्न करना

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

एक कुशल समाधान एक बार संख्याओं की यादृच्छिक सूची तैयार करना और क्रमिक रूप से उस पर काम करना है। यह दृष्टिकोण पुनरावर्ती कॉल की आवश्यकता को समाप्त करता है और कोई पुनरावृत्ति की गारंटी नहीं देता है। var i = array.length, जे = 0, अस्थायी; जबकि (i--) { j = Math.floor(Math.random() * (i 1)); अस्थायी = सरणी[i]; सरणी[i] = सरणी[j]; सरणी[जे] = अस्थायी; } वापसी सरणी; } var ranNums = शफल([1,2,3,4,5,6,7,8,9,10]);

वैकल्पिक रूप से, जनरेटर का उपयोग इस उद्देश्य के लिए किया जा सकता है:

function shuffle(array) {
    var i = array.length,
        j = 0,
        temp;

    while (i--) {
        j = Math.floor(Math.random() * (i 1));
        temp = array[i];
        array[i] = array[j];
        array[j] = temp;
    }
    return array;
}

var ranNums = shuffle([1,2,3,4,5,6,7,8,9,10]);

ये तकनीकें जावास्क्रिप्ट में गैर-दोहराई जाने वाली यादृच्छिक संख्याएं उत्पन्न करने के कुशल तरीके प्रदान करती हैं, जिससे अत्यधिक पुनरावर्ती कॉल से संबंधित समस्याएं समाप्त हो जाती हैं।

विज्ञप्ति वक्तव्य इस लेख को पुन: पेश किया गया है: 1729382177 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] पर संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3