छद्म यादृच्छिक संख्या पीढ़ी एल्गोरिदम


12

आधुनिक और अच्छी गुणवत्ता वाले यादृच्छिक संख्या जनरेटर में क्या एल्गोरिदम का उपयोग किया जाता है?


1
इसी तरह के सवालों के साथ स्थिरता के लिए "यादृच्छिक-चर" को "यादृच्छिक-चर" के रूप में फिर से प्रकाशित किया।
whuber

जवाबों:


10

R में, यादृच्छिक संख्या पीढ़ी के लिए डिफ़ॉल्ट सेटिंग हैं:

  1. U (0,1) के लिए, Mersenne-Twister एल्गोरिथ्म का उपयोग करें
  2. गासियन संख्याओं के लिए मानक सामान्य वितरण फ़ंक्शन के संख्यात्मक उलटा का उपयोग करें।

आप इसे आसानी से देख सकते हैं, अर्थात

> RNGkind()
[1] "Mersenne-Twister" "Inversion"

डिफ़ॉल्ट जनरेटर को अन्य PRNG में बदलना संभव है, जैसे Super-Duper, Wichmann-Hill, Marsaglia-Multicarry या यहां तक ​​कि उपयोगकर्ता द्वारा प्रदत्त PRNG। अधिक जानकारी के लिए RNGkind देखें। मुझे डिफ़ॉल्ट PRNG को बदलने की कभी आवश्यकता नहीं है।

सी GSL पुस्तकालय भी उपयोग करता है Mersenne-ट्विस्टर डिफ़ॉल्ट रूप से।


क्या आप अपने दूसरे बिंदु के बारे में सुनिश्चित हैं, सीडीएफ को निष्क्रिय करके सामान्य यादृच्छिक चर उत्पन्न करते हैं? सामान्य सीडीएफ का उलटा मूल्यांकन करने के लिए एक काफी महंगा कार्य है। मुझे लगता है कि बॉक्स-मुलर का तरीका और तेज होगा। मानक बनाने के लिए फास्टर अभी भी मार्साग्लिया की जिग्गुरैट विधि होगी।
जॉन डी। कुक 14

मुझे भी यह संदिग्ध लगता है। मतलगिआ की ज़िगगुरैट मतलाब में डिफ़ॉल्ट है, और मैं यादृच्छिक संख्या पीढ़ी के क्षेत्र में मतलब को आर से बेहतर होने की कल्पना नहीं कर सकता।
शब्बीशेफ

@ जॉन वास्तव में, ध्रुवीय विधि आर में उपलब्ध है, सेटआरएनजी पैकेज देखें।
25'10 chl

6

मेर्सेन ट्विस्टर वह है जिसे मैंने पहले देखा था और अब से पहले इस्तेमाल किया है।


जैसे, पायथन ( j.mp/9TVyhv ), पर्ल ( j.mp/by85El ), ऑक्टेव ( j.mp/aVQ5Xz ), क्लोजर ( j.mp/dkjpZ9 , डिफ़ॉल्ट एक नहीं), Haskell ( j.mp/aWK7kK7kK) ), लुआ ( j.mp/bSD2vO ), या यहां तक ​​कि SQL ( j.mp/aOPJMW , एक अवलोकन के लिए) :-)
chl

3

जॉर्ज मार्साग्लिया द्वारा डिज़ाइन किया गया ज़ोर्शिफ्ट पीएनजी। इसकी अवधि (2 ^ 128-1) मोरसेन-ट्विस्टर की तुलना में बहुत कम है, लेकिन एल्गोरिथ्म को लागू करने के लिए बहुत सरल है और खुद को समानांतर करने के लिए उधार देता है। कई कोर आर्किटेक्चर जैसे डीएसपी चिप्स और एनवीडिया के टेस्ला पर अच्छा प्रदर्शन करता है।


क्या यह GPU पर लागू करने के लिए अच्छा होगा? विवरण, संदर्भ से लिंक करें?
डैरन डब्ल्यू

2
थॉमस, होव्स, लुक - 2009 - सीपीयू, जीपीयू, एफपीजीए, और यादृच्छिक संख्या पीढ़ी के लिए बड़े पैमाने पर समानांतर प्रोसेसर सरणियों की तुलना। doi.acm.org/10.1145/1508128.1508139 । CPU, GPU, FPGA और बड़े पैमाने पर समानांतर प्रोसेसर Arrays पर निष्पादित PNGs के एक सेट की चर्चा + मानक।
ब्रोशि

शायद कई धाराओं के साथ L'Ecuyer का RNG ( j.mp/bzJSlm )?
chl

3

पर http://prng.di.unimi.it/ आप कई यादृच्छिक संख्या जनरेटर की एक मुठभेड़ TestU01, कूट-यादृच्छिक संख्या जनरेटर के लिए आधुनिक टेस्ट स्वीट कि कट्टर और dieharder प्रतिस्थापित का उपयोग कर परीक्षण किया पा सकते हैं। आप चुन सकते हैं और चुन सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.