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

जावा में फिशर-येट्स एल्गोरिथम के साथ सारणियों में फेरबदल

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

Shuffling Arrays with the Fisher-Yates Algorithm in Java

परिचय

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

इस लेख में, हम फिशर-येट्स शफल एल्गोरिदम के जावा कार्यान्वयन का पता लगाएंगे। प्रदान किया गया कोड इस एल्गोरिदम की सुंदरता और प्रभावशीलता दोनों को प्रदर्शित करते हुए, पूर्णांकों की एक श्रृंखला को कुशलतापूर्वक बदल देता है।

फिशर-येट्स शफ़ल एल्गोरिथम

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

जावा कोड कार्यान्वयन

यहां फिशर-येट्स शफल एल्गोरिदम का जावा कार्यान्वयन है:

import java.util.*;

class FYShuffleAlgorithm {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 5, 6};

        shuffle(arr);
    }

    public static void shuffle(int[] arr) {
        Random rand = new Random();
        for (int i = arr.length - 1; i > 0; i--) {
            int randomIndex = rand.nextInt(i   1);
            int tmp = arr[i];
            arr[i] = arr[randomIndex];
            arr[randomIndex] = tmp;
        }
        System.out.println(Arrays.toString(arr));
    }
}

संहिता की व्याख्या
आरंभीकरण:
मुख्य विधि {1, 2, 3, 4, 5, 6} मानों के साथ पूर्णांक एआरआर की एक सरणी शुरू करती है और फिर इस सरणी को शफ़ल करने के लिए शफ़ल विधि को कॉल करती है।

विज्ञप्ति वक्तव्य यह लेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/imyusufaktar/shuffling-arrays-with-the-fisher-yates-algorithm-in-java-28gc?1 यदि कोई उल्लंघन है, तो कृपया स्टडी_गोलंग@163.com पर संपर्क करें। इसे हटाने के लिए
नवीनतम ट्यूटोरियल अधिक>

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

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

Copyright© 2022 湘ICP备2022001581号-3