2010-07-01 12 views
6

के बाद अजगर वेबसाइट से है, के बारे मेंअजगर random.shuffle की अनियमितता

random.shuffle(x[, random])

जगह में अनुक्रम x शफ़ल करें। वैकल्पिक तर्क यादृच्छिक 0 -में एक यादृच्छिक फ्लोट लौटने वाला 0-तर्क फ़ंक्शन है; डिफ़ॉल्ट रूप से, यह फ़ंक्शन random() है।

ध्यान दें कि यहां तक ​​कि अपेक्षाकृत छोटे len(x) के लिए, x के क्रमपरिवर्तन की कुल संख्या सबसे यादृच्छिक संख्या जनरेटर की अवधि की तुलना में बड़ा है, इसका तात्पर्य है कि लंबे अनुक्रम के अधिकांश क्रमिकरण कभी उत्पन्न नहीं किए जा सकते हैं।

अगर मैं ['a'..'k'] की एक यादृच्छिक क्रमपरिवर्तन हो रही दोहराना चाहते हैं, यह शफ़ल मुझे अनियमितता देना नहीं होगा लगता है। क्या मेरी समझ सही है?

धन्यवाद!

+2

[पाइथन random.shuffle के साथ शफल करने के लिए सूची की अधिकतम लंबाई का संभावित डुप्लिकेट]] (http://stackoverflow.com/questions/3062741/maximal-length-of-list-to-shuffle-with-python- यादृच्छिक -शफल) –

+0

त्वरित और विस्तृत स्पष्टीकरण के लिए क्रिस और साइलेंटगोस्ट धन्यवाद! –

उत्तर

6

लंबाई 11 के अनुक्रम के लिए, 11 हैं! या 39, 9 16,800 (~ 2 25.3) संभावित क्रमिक क्रमशः। Mersienne Twister (पायथन के यादृच्छिक एल्गोरिदम) के लिए अवधि 2 - 1. दूसरे शब्दों में, आप ठीक होंगे।

संबंधित मुद्दे