2013-06-26 17 views
7

मुझे अनुप्रयोगों के वितरित नेटवर्क में यादृच्छिक संख्याओं का एक समान अनुक्रम भेजने की आवश्यकता है।सिस्टम भर में निर्धारित यादृच्छिक संख्या पीढ़ी

चूंकि ऐसा अनुक्रम काफी लंबा हो सकता है, इसलिए मैं केवल एक (यादृच्छिक रूप से जेनरेट) केंद्रीकृत बीज प्रारंभिक संख्या और वांछित अनुक्रम की लंबाई भेजने के बारे में सोच रहा था।

यह देखते हुए कि प्राप्त करने वाले हाथ पर हर घटक एक ही .NET संस्करण का उपयोग करेगा, क्या यह मेरे सभी नोड्स पर समान यादृच्छिक डेटा उत्पन्न करने का व्यवहार्य समाधान होगा?

+1

http://stackoverflow.com/questions/17094189/crossplatform-random-number-generator देखें – drch

+0

सूचक के लिए धन्यवाद। क्या आप इसे एक उत्तर के रूप में लिखना चाहते हैं ताकि मैं स्वीकृत के रूप में चिह्नित कर सकूं? – Andrea

उत्तर

9

आपको यादृच्छिक (int बीज) के लिए एक बीज वितरित करने में सक्षम होना चाहिए और यह मानना ​​है कि आप सभी वातावरण में .NET के समान संस्करण का उपयोग कर रहे हैं।

Remarks on System.Random @ MSDN

कॉलर्स में यादृच्छिक संख्या जनरेटर के कार्यान्वयन रैंडम वर्ग .NET फ्रेमवर्क के प्रमुख संस्करणों में एक ही रहने के लिए इसकी गारंटी नहीं है के लिए नोट्स। नतीजतन, आपका आवेदन कोड यह नहीं मानना ​​चाहिए कि उसी बीज के परिणामस्वरूप एनईईटी फ्रेमवर्क के विभिन्न संस्करणों में छद्म-यादृच्छिक अनुक्रम होगा।

आप एक मामले में जहां ढांचा संस्करण बदल जाएगा, या यदि आप एक पुराने अनुक्रम पुनः बनाने के बाद आप एक नए संस्करण का उपयोग शुरू कर दिया है आवश्यकता हो सकती है, आप अपने खुद यादृच्छिक कार्यान्वयन बनाना चाहते हैं देख सकते हैं।

संकेत के लिए इस सवाल का उत्तर देखें: Crossplatform random number generator

1

आप बीज के साथ Random कक्षा का उपयोग कर सकते हैं या एक सेवा उन्मुख वास्तुकला का उपयोग कर सकते हैं।

Random जब बीज के साथ प्रारंभ किया गया तो एक समान अनुक्रम उत्पन्न होगा।

+2

इस पर एक बड़ी चेतावनी है जिस पर पहले एसओ पर चर्चा की गई है। ड्रैच का जवाब देखें। – jerry

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