"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > समान संभावना के साथ पूर्वनिर्धारित मान के योग में यादृच्छिक संख्याएँ कैसे उत्पन्न करें?

समान संभावना के साथ पूर्वनिर्धारित मान के योग में यादृच्छिक संख्याएँ कैसे उत्पन्न करें?

2024-11-08 को प्रकाशित
ब्राउज़ करें:247

How to Generate Random Numbers Summing to a Predefined Value with Equal Probability?

पूर्वनिर्धारित मान के योग में यादृच्छिक संख्याएं उत्पन्न करना

इस संदर्भ में, हमारा लक्ष्य छद्म-यादृच्छिक संख्याओं की एक सूची तैयार करना है जो सामूहिक रूप से जुड़ती हैं एक विशिष्ट पूर्वनिर्धारित मूल्य तक. एक विधि में एक निर्दिष्ट सीमा के भीतर बेतरतीब ढंग से एक संख्या उत्पन्न करना, उसे कुल से घटाना और इस प्रक्रिया को तब तक दोहराना शामिल है जब तक कि योग वांछित मूल्य के बराबर न हो जाए। हालाँकि, यह दृष्टिकोण योग में योगदान के संदर्भ में पहली उत्पन्न संख्या का पक्ष लेता है।

एकरूपता सुनिश्चित करने के लिए, एक अधिक परिष्कृत समाधान विकसित किया गया है:

import random

def constrained_sum_sample_pos(n, total):
    """Return a randomly chosen list of n positive integers summing to total.
    Each such list is equally likely to occur."""

    dividers = sorted(random.sample(range(1, total), n - 1))
    return [a - b for a, b in zip(dividers   [total], [0]   dividers)]

यह विधि सकारात्मक पूर्णांकों की एक सूची तैयार करती है जो लक्ष्य मान के बराबर होती है। मुख्य अवधारणा यह है कि संख्याओं का हर संभव संयोजन समान रूप से उत्पन्न होने की संभावना है। इसके अतिरिक्त, इस तकनीक को विभिन्न योगों और यादृच्छिक संख्याओं की अलग-अलग संख्याओं तक विस्तारित करना सीधा है।

उदाहरण के लिए, यदि हम n को 4 और कुल को 40 पर सेट करते हैं, तो हम निम्नलिखित आउटपुट प्राप्त कर सकते हैं: [4, 4, 25 , 7]. यह ध्यान रखना महत्वपूर्ण है कि इस सूची का प्रत्येक तत्व, जब सारांशित किया जाता है, तो 40 का पूर्वनिर्धारित मान उत्पन्न करता है। constrained_sum_sample_nonneg(n, कुल): """एन गैर-नकारात्मक पूर्णांकों की यादृच्छिक रूप से चुनी गई सूची लौटाएं, जिसका योग योग हो। ऐसी प्रत्येक सूची के घटित होने की समान संभावना है।""" वापसी [x - 1 for x in constrained_sum_sample_pos(n, total n)]

प्रत्येक मान को एक से बढ़ाकर, हम गैर-नकारात्मक पूर्णांकों की एक सूची तैयार कर सकते हैं जो वांछित कुल में जुड़ते हैं।

यह विधि सुनिश्चित करती है कि हर संभावित संयोजन, चाहे संख्याएँ सकारात्मक हों या गैर-नकारात्मक, उत्पन्न होने की समान संभावना है। विभिन्न परिदृश्यों में अपने उपयोगकर्ता के अनुकूल कार्यान्वयन और बहुमुखी प्रतिभा के साथ, constrained_sum_sample_pos और constrained_sum_sample_nonneg पायथन में यादृच्छिक संख्या निर्माण कार्यों के अभिन्न अंग बन गए हैं।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3