अब तक मैं यादृच्छिक संख्या उत्पन्न करने के लिए सी # Mersenne Twister यहां पाया उपयोग कर रहे हैं:सी # Mersenne ट्विस्टर यादृच्छिक पूर्णांक जनरेटर कार्यान्वयन (SFMT) मोंटे कार्लो सिमुलेशन
http://www.centerspace.net/resources.php
मैं बस की खोज की SFMT है जो दोगुनी गति से यहाँ होना चाहिए:
http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/
क्या कोई मुझे एसएफएमटी के सी # कार्यान्वयन पर इंगित कर सकता है?
मेरी आवश्यकताएं 0 और 2^20 (1048576) के बीच एक पूर्णांक उत्पन्न करने के लिए हैं।
मुझे 24 घंटे की घड़ी पर चलने वाले सिमुलेशन के लिए प्रति दिन ट्रिलियन करने की आवश्यकता है, इसलिए मैं इसे पूर्णता में बदलने के लिए तैयार हूं। विधि genrand_int32()
का उपयोग
public uint Next20()
{
return (uint)(genrand_int32() >> 12);
}
मैं अपने खुद के संस्करण, genrand_int20()
, कि एक उत्पन्न करता है निर्माण करने के लिए करना चाहते हैं:
वर्तमान में मैं अपने आवश्यकताओं फिट करने के लिए एक नई विधि जोड़कर केंद्र अंतरिक्ष Mersenne ट्विस्टर बदलाव किया है पर सहेजने के लिए 0 और 2^20 के बीच पूर्णांक ऊपर कास्ट करें और को बदलें लेकिन मैं गणित को समझ नहीं पा रहा हूं। वास्तव में मैं यह कैसे कर सकता हूं?
भी का उपयोग कर रहा है जो तेजी से है, या केवल पता योग्य संख्याओं का मामला है? क्योंकि मुझे केवल 1048576 की जरूरत है, मैं केवल गति से चिंतित हूं।
इसके अलावा इस एक विंडोज सर्वर नेट 2. प्रोसेसर के साथ 2003 R2 SP2 (32 बिट) बॉक्स पर चल रहे हो जाएगा AMD Opteron 275 (4 कोर) है।
एक 20-बिट संख्या श्रेणी का प्रतिनिधित्व करेंगी 0 से 2^20-1 समावेशी, 2^20 21 बिट्स का प्रतिनिधित्व करने के लिए (एक 1 के बाद 20 शून्य) –
निफ्ले: एक * अंतराल * के साथ जेनरेटर (जो अनुक्रम की लंबाई है) के * अवधि * को भ्रमित न करें जिसमें आप यादृच्छिक संख्या चाहते हैं। – Joey
@ पैट्रिक धन्यवाद आप सही हैं 2^20-1 जो मुझे चाहिए, मुझे यादृच्छिक रूप से लंबाई 2^20 की सरणी में अनुक्रमित करने की आवश्यकता है। – m3ntat