बेवकूफ shuffling के साथ असली दुनिया की समस्याएं

मैं पोकर से संबंधित विषयों के उपयोग के माध्यम से प्रोग्रामिंग अवधारणाओं को शुरू करने के लिए कई लेख लिख रहा हूं। वर्तमान में, मैं shuffling के विषय पर काम कर रहा हूँ।

As Jeff Atwood points out on CodingHorror.com, one simple shuffling method (iterating through an array and swapping each card with a random card elsewhere in the array) creates an uneven distribution of permutations. In an actual application, I would just use the Knuth Fisher-Yates shuffle for more uniform randomness. But, I don't want to bog down an explanation of programming concepts with the much less coder-friendly algorithm.

इससे सवाल उठता है: ब्लैक-टोपी के कितने फायदे होंगे यदि उन्हें पता था कि आप 52-कार्ड डेक के बेवकूफ शफल का उपयोग कर रहे थे? ऐसा लगता है जैसे यह infinitesimally छोटा होगा।

0

5 उत्तर

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

व्यक्तिगत रूप से, मुझे लगता है कि छात्रों को एक गरीब एल्गोरिदम पढ़ाना जब उचित व्यक्ति कोई जटिल नहीं है (और कल्पना करना आसान है!) एक बुरा दृष्टिकोण है।

0
जोड़ा
मैं सहमत हूँ। इस मामले में मुझे लगता है कि दोनों एल्गोरिदम दिखाए जाने चाहिए और एक स्पष्टीकरण क्यों कि दूसरे की तुलना में बेहतर है। इस मामले में यह एक बहुत छोटा बदलाव है और मेरी राय में यह अधिक जटिल नहीं है।
जोड़ा लेखक some, स्रोत

एक तरफ के रूप में, एक ITtoolbox पर ब्लॉग पोस्ट </ए> शफल करने के बारे में जब यह एक शफल अनुकरण करने की बात आती है।

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

0
जोड़ा

ऐसा नहीं है कि आप एक पोकर प्रोग्राम लिख रहे हैं जिसका उपयोग वास्तविक ऑनलाइन जुआ साइट के लिए किया जाएगा। कार्यक्रम में धोखा देने के लिए किसी की क्षमता एक बड़ा सौदा नहीं है जब आप लोगों को प्रोग्राम कैसे पढ़ा रहे हैं।

एक नोट छोड़कर कहें कि यह असली दुनिया का एक गरीब मॉडल है (इसके संदर्भ में संभावित सुरक्षा दोष के रूप में), और केवल शिक्षण के साथ चलते रहें।

0
जोड़ा
मैंने नहीं लिखा था, उस समय मैंने लिखा था कि अंतर इतना छोटा है। मैं सहमत होगा: उन्हें अच्छा शफलिंग एल्गोरिदम बताओ। शायद "क्यों" पर सटीक विवरण "इस साहित्य का संदर्भ" हो सकता है।
जोड़ा लेखक Keith B, स्रोत
नहीं, लेकिन इन लेखों को पढ़ने वाले लोग आगे बढ़ सकते हैं। सही शफल करना महत्वपूर्ण है, क्योंकि इसे गलत करने से पहले एक ब्रेक हुआ है।
जोड़ा लेखक afrazier, स्रोत

व्यक्तिपरक।

ऐसा लगता है जैसे यह infinitesimally छोटा होगा।

इस बात से सहमत।

0
जोड़ा

It turns out the advantage is quite significant. Check out this article

समस्या का एक हिस्सा त्रुटिपूर्ण एल्गोरिदम है, लेकिन दूसरा हिस्सा यह धारणा है कि आप कंप्यूटर से "यादृच्छिक" संख्या प्राप्त कर सकते हैं।

0
जोड़ा