मैं एक छद्म यादृच्छिक संख्या जनरेटर की तलाश में हूं जो प्रत्येक नंबर उत्पन्न करने से पहले बीज देने पर तेज़ी से काम करने के लिए विशिष्ट होगा। अधिकांश जेनरेटर मैंने अब तक देखा है कि आप एक बार बीज सेट करते हैं और फिर संख्याओं का एक लंबा अनुक्रम उत्पन्न करते हैं। एकमात्र चीज जो कुछ हद तक दिखती है, मैंने अब तक देखा है पर्लिन शोर है, लेकिन यह बहुत "चिकनी" डेटा उत्पन्न करता है - इसी तरह के इनपुट के लिए यह समान परिणाम उत्पन्न करता है।प्रक्रियात्मक सामग्री के लिए फास्ट छद्म यादृच्छिक संख्या जनरेटर
जनरेटर की घोषणा की तरह कुछ दिखना चाहिए:
int RandomNumber1(int seed);
या:
int RandomNumber3(int seedX, int seedY, int seedZ);
मैं अच्छा RandomNumber1, पर्याप्त होना चाहिए के रूप में यह अपनी आदानों hashing द्वारा RandomNumber3 लागू करने के लिए संभव है होने लगता है और परिणाम को RandomNumber1 में पास कर दिया, लेकिन कुछ कार्यान्वयन स्वतंत्र इनपुट का उपयोग करने के मामले में मैंने दूसरा प्रोटोटाइप लिखा था।
इस जनरेटर के लिए इच्छित उपयोग प्रक्रियात्मक सामग्री जेनरेटर के लिए इसका उपयोग करना है, जैसे कि एक ग्रिड में पेड़ लगाकर और एक यादृच्छिक वृक्ष प्रजातियों और प्रत्येक स्थान के लिए यादृच्छिक स्थानिक ऑफसेट निर्धारित करके जंगल पैदा करना।
जनरेटर को बहुत ही कुशल (500 सीपीयू चक्र से नीचे) होना आवश्यक है, क्योंकि प्रक्रियात्मक सामग्री प्रतिपादन के दौरान वास्तविक समय में बड़ी मात्रा में बनाई जाती है।
कारण पर्लिन शोर इसी तरह की है कि क्या आप के लिए पूछ रहे हैं कि पर्लिन शोर एक नियतात्मक (दोहराने योग्य) कूट-यादृच्छिक समारोह का उपयोग करता है (और फिर परिणाम को सहज बनाता है) ने अपनी काम का हिस्सा करने के लिए है। यदि आप एक पर्लिन शोर कार्यान्वयन को देखते हैं, खासकर पहले के पूर्व-"बेहतर" वाले, आपको अक्सर कुशल, दोहराने योग्य "यादृच्छिक" फ़ंक्शन का प्रकार मिल जाएगा, हालांकि भाषा, डोमेन और श्रेणी अलग-अलग होगी। जैसे 'रैंडम नम्बर (वीसी 2 बीज, फ्लोट एक्स, फ्लोट वाई) {रिटर्न फ्रैक्ट (पाप (डॉट (बीज + वीसी 2 (एफएक्स, एफई), वीसी 2 (12.98 9 878233)) * 43758.5453); } '(जीएलएसएल ईएस) – LarsH
मैं इस प्रश्न का भी शोध करने की कोशिश कर रहा हूं, और इस निष्कर्ष पर पहुंचा हूं कि" जेनरेटर "शब्द अनुक्रमिक, स्ट्रीमिंग व्यवहार का तात्पर्य है जिसे हम टालने की कोशिश कर रहे हैं। यही कारण है कि एक पीआरएन ** जी ** आमतौर पर राज्य के "कार्यों" प्रदान करने के रूप में समझा जाता है, सख्ती से निर्धारक नहीं। अगर हम पीआरएनजी की बजाय पीआरएनएफ (फ़ंक्शन) की खोज करते हैं तो शायद हमें शोध में बेहतर सफलता मिलेगी। https://blogs.unity3d.com/2015/01/07/a-primer-on-repeatable-random-numbers/ उन्हें "यादृच्छिक हैश फ़ंक्शन" कहते हैं। – LarsH