2013-04-11 11 views
8

PHP में, मैं एक विशिष्ट औसत और मानक विचलन के साथ सामान्य वितरण मानते हुए एक यादृच्छिक संख्या कैसे उत्पन्न कर सकता हूं?मैं एक यादृच्छिक संख्या कैसे चुन सकता हूं लेकिन PHP में सामान्य संभावना वितरण के साथ?

+4

यह प्रश्न कोई शोध प्रयास नहीं दिखाता है। ** आपके होमवर्क ** करना महत्वपूर्ण है। हमें बताएं कि आपको क्या मिला और *** क्यों *** यह आपकी आवश्यकताओं को पूरा नहीं करता है। यह दर्शाता है कि आपने स्वयं की मदद करने के लिए समय निकाला है, यह हमें स्पष्ट उत्तरों को दोहराने से बचाता है, और सबसे अधिक यह आपको अधिक विशिष्ट और प्रासंगिक उत्तर प्राप्त करने में मदद करता है। [FAQ] (http://stackoverflow.com/questions/how-to-ask)। –

+0

http://php.net/manual/en/function.rand.php – vikingmaster

+2

रैंड फ़ंक्शन केवल समान संभावनाओं के साथ यादृच्छिक संख्या उत्पन्न करता है, सामान्य संभाव्यता वितरण – Maggie

उत्तर

10
function nrand($mean, $sd){ 
    $x = mt_rand()/mt_getrandmax(); 
    $y = mt_rand()/mt_getrandmax(); 
    return sqrt(-2*log($x))*cos(2*pi()*$y)*$sd + $mean; 
} 
+0

पूरा करने की कोशिश कर रहे हैं, यह मेरे प्रयास के बाद और अधिक जटिल है और अधिक CPU लेता है। पूर्णांक के साथ भी काम करना अब संभव नहीं होगा। क्या यह बेहतर बनाता है? क्या आप कम से कम इसे समझा सकते हैं? क्या आपने इसका परीक्षण किया है? या कम से कम भी इस्तेमाल किया? – hek2mgl

+1

@ हेक 2 एमजीएल मैंने सामान्य वितरण को अनुमानित करने के लिए कुछ समय पहले 'सी' में एक PHP विस्तार लिखा था। मैंने इसे भारी इस्तेमाल किया। मैंने इस जवाब के लिए अभी अपना कोड 'सी' से' PHP' में बदल दिया है। – Paulpro

+0

यह कुछ भी नहीं बताता है। आपको अपने सी एक्सटेंशन पर पुनर्विचार करना चाहिए क्योंकि यह कम CPU उपभोग कर सकता है – hek2mgl

0

PHP के stats_rand_gen_normal फ़ंक्शन का उपयोग करने का प्रयास करें। मेरा मानना ​​है कि यह आप के लिए क्या देख रहे हैं और आवश्यकता नहीं है कि आप पहिया फिर से आविष्कार करता है:

मतलब, av साथ एक सामान्य वितरण से एक भी यादृच्छिक विचलित उत्पन्न करता है, और मानक विचलन, एसडी (एसडी> = 0)

+0

वह विधि वास्तव में टूटी हुई है (कम से कम PHP 5 के साथ असंगत), whcih यही कारण है कि मैंने अपना पहला एक्सटेंशन पहले स्थान पर लिखा था। – Paulpro

+1

मैंने इस फ़ंक्शन का उपयोग करने का प्रयास किया, लेकिन यह पता चला कि इसे एक निश्चित पैकेज की आवश्यकता है, और मुझे नहीं पता था कि इसे कैसे संकलित किया जाए। मैं एक php beginner हूँ, इसलिए यदि आपके पास एक लिंक है जो मुझे दिखा सकता है कि विवरण में पैकेज को संकलित कैसे करें, तो मैं इसकी सराहना करता हूं। धन्यवाद – Maggie

+0

यदि पॉलप्रू कहता है तो सत्य है तो आप इसका उपयोग करने में सक्षम होने की संभावना नहीं है ... मैं जांच करूँगा और देख सकता हूं कि PHP5 + (मैंने परीक्षण नहीं किया है) में इसका उपयोग करने का कोई तरीका है या नहीं –

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