2011-12-19 18 views
7

Array#sample के लिए दस्तावेज़ कहते हैं कि यह एक rng ले जा सकते हैं:ऐरे # नमूना (एन, यादृच्छिक: आरएनजी) वाक्यविन्यास का उपयोग कैसे करें?

तो RNG दिया जाता है, यह यादृच्छिक संख्या जनरेटर के रूप में इस्तेमाल किया जाएगा।

एक श्रेणी यादृच्छिक संख्या जेनरेटर के रूप में कैसे कार्य कर सकती है, या ऐसी चीज उपयोगी क्यों है?

इसके अलावा हैश फॉर्म से पता चलता है कि अन्य विकल्प भी हैं, लेकिन मुझे उनके बारे में कुछ भी नहीं मिला। [1,2,3,4,5].sample(3) का प्रयास करने से [1,2,3,4,5].sample(3, random: 1..2) की तरह व्यवहार होता है।

+0

मुझे लगता है कि चाहते हैं आप उपयोग कर सकते हैं यादृच्छिक संख्या जनरेटर यादृच्छिक संख्या के लिए एक अतिरिक्त स्रोत के रूप में इस्तेमाल किया जा सकता (एक हार्डवेयर डिवाइस की तरह) जो रूबी के अंतर्निर्मित आरएनजी की तुलना में बेहतर एन्ट्रॉपी प्रदान कर सकता है। – Koraktor

+0

"एक यादृच्छिक संख्या जनरेटर (आरएनजी) एक कम्प्यूटेशनल या भौतिक डिवाइस है जो संख्याओं या प्रतीकों का अनुक्रम उत्पन्न करने के लिए डिज़ाइन किया गया है जिसमें किसी भी पैटर्न की कमी है, यानी यादृच्छिक दिखाई देते हैं।" http://en.wikipedia.org/wiki/Random_number_generation –

+0

मुझे एक ही भ्रम है ... मुझे अभी भी समझ में नहीं आया है, '# नमूना' विधि के साथ दूसरे वैकल्पिक तर्क का उद्देश्य क्या है। यदि आप अभी ठीक हैं, तो क्या आप मुझे बताएंगे, इस परिदृश्य का उपयोग-मामला? –

उत्तर

8

तर्क एक यादृच्छिक संख्या जेनरेटर (आरएनजी) होना चाहिए।

यदि कोई प्रदान नहीं किया गया है, तो यह "स्टॉक" रूबी कार्यान्वयन के लिए डिफ़ॉल्ट है।

यह एक है कि सब पर यादृच्छिक नहीं है की तरह, एक मनमाना RNG साथ बदला जा सकता:

class NotAtAllRandom 
    def self.rand(x=0) 
    0 
    end 
end 

> (1..10000).sample(3, random: NotAtAllRandom) 
=> [1, 2, 3] 
> (1..10000).sample(3, random: NotAtAllRandom) 
=> [1, 2, 3] 
+0

यादृच्छिक संख्या जनरेटर के बजाय सीमा के लिए गलत आरएनजी, इसे आजमाया, समझ में नहीं आया। आपने इसे साफ़ कर दिया, धन्यवाद। – steenslag

+0

@steenslag मुझे लगता है कि यह रेंज की तरह दिखता है - duh; उसे भी नहीं देखा। –

+0

"मैं इस बात पर स्पष्ट नहीं हूं कि आपको लगता है कि यह एक सीमा है।": ''Range'.tr (' aeiou ',' ') ==' rng''। –

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