कंप्यूटर विज्ञान के क्षेत्र में, किसी सरणी या तत्वों की सूची में फेरबदल करना एक सामान्य ऑपरेशन है जो खेल के परिणामों को यादृच्छिक बनाने से लेकर डेक में कार्ड वितरित करने तक विभिन्न अनुप्रयोगों में उपयोगी हो सकता है। इस उद्देश्य के लिए सबसे प्रभावी एल्गोरिदम में से एक फिशर-येट्स शफ़ल है, जिसे नथ शफ़ल के रूप में भी जाना जाता है। यह एल्गोरिदम सुनिश्चित करता है कि सरणी का प्रत्येक क्रमपरिवर्तन समान रूप से संभावित है, जो इसे निष्पक्ष यादृच्छिक फेरबदल बनाने के लिए एक आदर्श विकल्प बनाता है।
इस लेख में, हम फिशर-येट्स शफल एल्गोरिदम के जावा कार्यान्वयन का पता लगाएंगे। प्रदान किया गया कोड इस एल्गोरिदम की सुंदरता और प्रभावशीलता दोनों को प्रदर्शित करते हुए, पूर्णांकों की एक श्रृंखला को कुशलतापूर्वक बदल देता है।
फिशर-येट्स शफल एल्गोरिदम अंत से शुरुआत तक सरणी पर पुनरावृत्ति करके संचालित होता है, प्रत्येक तत्व को यादृच्छिक रूप से चुने गए तत्व के साथ स्वैप करता है जो सरणी में पहले दिखाई देता है (वर्तमान स्थिति सहित)। यह प्रक्रिया सुनिश्चित करती है कि सरणी के सभी क्रमपरिवर्तन समान रूप से संभावित हैं।
यहां फिशर-येट्स शफल एल्गोरिदम का जावा कार्यान्वयन है:
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} मानों के साथ पूर्णांक एआरआर की एक सरणी शुरू करती है और फिर इस सरणी को शफ़ल करने के लिए शफ़ल विधि को कॉल करती है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3