प्रश्न:
मैं आसानी से यादृच्छिक संख्याएं कैसे उत्पन्न कर सकता हूं बूस्ट का उपयोग किए बिना सी या सी में सामान्य वितरण का पालन करना पुस्तकालय?
उत्तर:
बॉक्स-मुलर ट्रांसफॉर्म
बॉक्स-मुलर ट्रांसफॉर्म जेनरेट करने के लिए व्यापक रूप से उपयोग की जाने वाली विधि है एक समान यादृच्छिक संख्या जनरेटर से सामान्य रूप से वितरित संख्याएँ। यह ऐसे मान उत्पन्न करता है जो गाऊसी वितरण का सटीक रूप से पालन करते हैं। (2 * π * U2) y = sqrt(-2 * log(U1)) * syn(2 * π * U2)
जहां:
x = sqrt(-2 * log(U1)) * cos(2 * π * U2) y = sqrt(-2 * log(U1)) * sin(2 * π * U2)U1 और U2 समान रूप से 0 और 1 के बीच यादृच्छिक संख्याएं वितरित की जाती हैं x और y को आम तौर पर माध्य 0 और मानक विचलन के साथ यादृच्छिक संख्याएं वितरित की जाती हैं 1
सी/सी में बॉक्स-मुलर परिवर्तन को लागू करने के लिए, आप निम्नलिखित कोड का उपयोग कर सकते हैं:#
x = sqrt(-2 * log(U1)) * cos(2 * π * U2) y = sqrt(-2 * log(U1)) * sin(2 * π * U2)
सामान्य रूप से वितरित यादृच्छिक संख्या उत्पन्न करने के लिए, बस बॉक्स_मुलर() फ़ंक्शन को कॉल करें:डबल रैंडम_नंबर = बॉक्स_मुलर();
random_number का मान माध्य 0 और मानक विचलन के साथ एक गाऊसी-वितरित यादृच्छिक चर होगा 1.
x = sqrt(-2 * log(U1)) * cos(2 * π * U2) y = sqrt(-2 * log(U1)) * sin(2 * π * U2)नोट:
बॉक्स-मुलर ट्रांसफॉर्म एक दूसरा परिणाम भी उत्पन्न करता है, y, लेकिन इसे बाद में उपयोग के लिए छोड़ा या बचाया जा सकता है।
यदि आपको 0 के अलावा किसी अन्य माध्य या 1 के अलावा किसी मानक विचलन के साथ सामान्य रूप से वितरित संख्याएँ उत्पन्न करने की आवश्यकता है, तो आप परिणाम को a से गुणा कर सकते हैं स्थिर।अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3