के साथ एन संख्याओं का चयन करना कुछ कोड में मैं n
[0,1)
में यादृच्छिक संख्या चुनना चाहता हूं जो 1
पर है।निश्चित राशि
मैं [0,1)
में स्वतंत्र रूप से संख्या को चुनने और कुल योग से हर एक को विभाजित करके उन्हें सामान्य करके ऐसा कर:
numbers = [random() for i in range(n)]
numbers = [n/sum(numbers) for n in numbers]
मेरे "समस्या" है कि वितरण मैं बाहर निकलना काफी तिरछा है,। एक लाख नंबरों का चयन करना एक भी नहीं है 1/2
से अधिक हो जाता है। कुछ प्रयासों से मैंने पीडीएफ की गणना की है, और यह अच्छा नहीं है।
यहाँ है अजीब लग रही पीडीएफ मैं 5 चर के लिए मिलती है:
आप एक अच्छा एल्गोरिथ्म संख्या का चयन करने के लिए एक विचार है, एक और अधिक वर्दी या साधारण वितरण में है कि परिणाम?
मुझे यकीन नहीं है कि मैं समझता हूं, यदि आप नंबर 1 को दस लाख यादृच्छिक टुकड़ों में तोड़ते हैं तो _shouldn't_ 0.5 से अधिक नहीं हो सकता है। यदि वहां था, तो इसका मतलब यह होगा कि 99 99, 999 को दूसरे छमाही में फिट होना होगा। – DShook
संभावित डुप्लिकेट [पाइथन में मान के बराबर कई यादृच्छिक संख्याएं उत्पन्न करें] (http://stackoverflow.com/questions/3589214/generate-multiple-random-numbers-to-equal-a-value-in-python) –