2011-02-28 16 views
6

मैं यादृच्छिक संख्या जेनरेटर (26.5) के लिए नया सी ++ 0x दृष्टिकोण सीखने की कोशिश कर रहा हूं, और सी ++ 0x-compliant यादृच्छिक संख्या इंजन (26.5.1.4) पर कार्यान्वित करता हूं।सी ++ 0x यादृच्छिक संख्या जनरेटर की स्थिति प्राप्त करने का मानक तरीका क्या है?

मानक बीज अनुक्रमों के लिए आवश्यक इंटरफेस पर विस्तार से जाता है, और कैसे वे कन्स्ट्रक्टर या seed इंजनों के कार्यों को पारित किया जा सकता है।

हालांकि, मुझे इंजन से बीज अनुक्रम बनाने या उत्पन्न करने के लिए कोई मानक इंटरफ़ेस नहीं मिल रहा है, जिससे इसकी आंतरिक स्थिति मिलती है। क्या कोई है? या केवल प्रतिलिपि निर्माण/असाइनमेंट के माध्यम से या प्रारंभिक बीज अनुक्रम की प्रतिलिपि बनाकर इंजनों के बीच प्रतिलिपि बनाई जा सकती है?

यदि यह संभव नहीं है, तो क्या कोई जानता है कि ऐसा इंटरफ़ेस प्रदान करने के लिए तर्क क्या है (यदि कोई है)?

+1

यह मानता है कि किसी भी राज्य को बीज अनुक्रम के माध्यम से हासिल किया जा सकता है। क्या यह शुरू करने के लिए एक सही धारणा है? – MSalters

+0

@MSalters: मुझे ऐसा लगता है, या कम से कम मुझे लगता है कि यह एक भारी प्रतिबंध नहीं होगा। किसी भी गणना की आंतरिक स्थिति पूर्णांक की श्रृंखला के रूप में प्रतिनिधित्व योग्य है। –

उत्तर

7

कोई API नहीं है इंजन के राज्य से बीज या बीज अनुक्रम उत्पन्न करने के लिए। हालांकि इंजन का राज्य एक आईट्रीम में स्ट्रीम किया जा सकता है, और एक ओस्ट्रीम से निकाला जा सकता है। और इंजन का राज्य समानता है किसी अन्य इंजन के राज्य (समान प्रकार के इंजनों के लिए)।

कोई इंजन को स्ट्रीम करके उत्पन्न आईट्रीम का निरीक्षण कर सकता है। हालांकि उस आईट्रीम का प्रारूप अनिर्दिष्ट है।

0

यह मेरी समझ भी है। (स्पष्ट होने के लिए: मुझे लगता है कि राज्यों को कॉपी-निर्माण/असाइनमेंट के माध्यम से इंजनों के बीच कॉपी किया जा सकता है या उसी प्रारंभिक बीज अनुक्रम के साथ निर्माण किया जा सकता है और उसी छद्म यादृच्छिक संख्याओं को उत्पन्न किया जा सकता है।)

0

आंतरिक स्थिति को बीज अनुक्रम की तरह कुछ भी देखने की ज़रूरत नहीं है। मुझे लगता है कि यह एक बाइनरी से स्रोत कोड के लिए कंपाइलर पूछने के करीब है। संभव नहीं।

हालांकि आप पूरे इंजन की प्रतिलिपि बना सकते हैं, और प्रतिलिपि एक ही अनुक्रम को एक बार फिर से उत्पन्न कर सकती है। या आप राज्य को एक फ़ाइल में स्ट्रीम कर सकते हैं, और इसे फिर से लोड कर सकते हैं।

+0

_ आंतरिक स्थिति को बीज अनुक्रम की तरह कुछ भी देखने की ज़रूरत नहीं है ._ हालांकि, चूंकि बीज अनुक्रम का आंतरिक स्थिति शुरू करने के अलावा इंजन पर कोई मानक प्रभाव नहीं पड़ता है, इसलिए मानक की आवश्यकता नहीं होने के कारण ऐसा कोई कारण नहीं है यह। अपने राज्य को स्थापित करने के लिए बीज अनुक्रम की व्यापक मंगिंग वास्तव में आपको कुछ भी हासिल नहीं करती है। –

+0

@ जो: शायद नहीं, लेकिन मानक के लिए अधिकांश इंजनों को मानक की आवश्यकता होती है। इंजन बीज अनुक्रम के मानकों से अपने राज्य की स्थापना करता है, यह सिर्फ अनुक्रम को संग्रहित नहीं करता है। –

+0

बस बीज अनुक्रम के एन तत्वों को उत्पन्न करना और प्रत्येक को अपने आंतरिक राज्य में कॉपी करना, क्योंकि प्रत्येक आरएनजी मुझे पता है (जिसे, दिया गया है, निश्चित रूप से सभी नहीं है!) अनुक्रम को पुन: उत्पन्न करने से रोकता नहीं है। वास्तव में इसका मतलब है कि ऐसा करना मुश्किल है - बस अपनी आंतरिक स्थिति को वापस कॉपी करें। मैं ऐसे मामले के बारे में नहीं सोच सकता जिसमें बीज अनुक्रम की अपरिवर्तनीय मंगिंग लाभ प्रदान करती है। –

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