मैं एक अलग सिस्टम पर एक अलग python3 संस्करण स्थापित के साथ पाइथन के random.random()
से एक यादृच्छिक अनुक्रम पुन: पेश करने की कोशिश कर रहा हूं।यादृच्छिक जनरेटर बीजिंग क्यों पाइथन के संस्करणों के बीच स्थिर नहीं है?
यह आसान होना चाहिए के रूप में documentation says:
यादृच्छिक मॉड्यूल के एल्गोरिदम और बोने कार्यों के अधिकांश अजगर संस्करणों में परिवर्तन के अधीन हैं, लेकिन दो पहलुओं बदलने के लिए नहीं की गारंटी है:
- यदि कोई नई बीजिंग विधि जोड़ा जाता है, तो पिछड़ा संगत बीडर पेश किया जाएगा।
- जेनरेटर की यादृच्छिक() विधि जारी रहेगी, उसी अनुक्रम का उत्पादन जब संगत बीडर को बीज दिया जाता है।
: दो अलग-अलग मशीनों पर3.2.3 (default, May 3 2012, 15:51:42) [GCC 4.6.3] 0.4782479962566343 0.044242767098090496 0.11703586901195051 0.8566892547933538 0.2926790185279551 0.0067328440779825804 0.0013279506360178717 0.22167546902173108 0.9864945747444945 0.5157002525757287
import sys print(sys.version) from random import seed, random seed(str(1)) for i in range(10): print(random())
हालांकि, यह परीक्षण:
तो मैं निम्नलिखित कोड हमेशा एक ही 10 नंबर, कोई फर्क नहीं पड़ता विशिष्ट python3 संस्करण मुद्रित करने के लिए उम्मीद
और
3.1.2 (release31-maint, Dec 9 2011, 20:59:40)
[GCC 4.4.5]
0.0698436845523
0.27772471476
0.833036057868
0.35569897036
0.36366158783
0.722487971761
0.963133581734
0.263723867191
0.451002768569
0.0998765577881
विभिन्न परिणाम दें।
यह क्यों है? और वहाँ इस काम करने के लिए बनाने के लिए किसी भी तरह से है
। –
यह बताता है * पिछड़ा संगत बीडर पेश किया जाएगा * यह नहीं कि मौजूदा विधि पिछड़ा संगत होगा। – borrible