मुझे संदेह है कि उत्तर ' मैथ के कारण ' है, लेकिन मुझे उम्मीद थी कि कोई व्यक्ति बुनियादी स्तर पर थोड़ी अधिक जानकारी दे सकता है ...
मैं आज बीसीएल स्रोत कोड में चारों ओर देख रहा था, इस बात पर एक नज़र कि मैंने पहले इस्तेमाल की गई कुछ कक्षाएं कैसे लागू की थीं। मैंने पहले कभी नहीं सोचा था कि कैसे (छद्म) यादृच्छिक संख्याओं को उत्पन्न किया जाए, इसलिए मैंने यह देखने का फैसला किया कि यह कैसे किया गया था।
पूर्ण स्रोत यहां: http://referencesource.microsoft.com/#mscorlib/system/random.cs#29
private const int MSEED = 161803398;
यह MSEED मान का उपयोग हर बार रैंडम () श्रेणी के बीज के रूप में किया जाता है।
वैसे भी, मैंने इस 'मैजिक नंबर' को देखा - 161803398 - और मुझे उस नंबर का चयन क्यों किया गया था, इस बारे में कोई अस्पष्ट विचार नहीं है। यह एक अभाज्य संख्या या 2 की शक्ति नहीं है। यह एक संख्या के लिए 'आधा रास्ता' नहीं है जो अधिक महत्वपूर्ण लगता है। मैंने इसे बाइनरी और हेक्स और अच्छी तरह से देखा, यह सिर्फ मुझे एक नंबर की तरह लग रहा था।
मैंने Google में नंबर खोजने की कोशिश की, लेकिन मुझे कुछ नहीं मिला।
The current implementation of the Random class is based on Donald E. Knuth's subtractive random number generator algorithm. For more information, see D. E. Knuth. "The Art of Computer Programming, volume 2: Seminumerical Algorithms". Addison-Wesley, Reading, MA, second edition, 1981.