यादृच्छिक संख्याओं / शब्दों के अनुक्रम उत्पन्न करने के लिए seq का स्टोचस्टिक संस्करण?


10

कुछ समय पहले मैंने छद्म करने के लिए छद्म यादृच्छिक उत्पन्न संख्याओं के अनुक्रम को मुद्रित करने के लिए एक seq- जैसे उपकरण का उपयोग किया था। आप एक सीमा, बीज, और नमूनों की संख्या और बहुत कुछ निर्दिष्ट कर सकते हैं।

मैं अभी इस टूल का नाम भूल गया हूं। क्या कोई मेरी मदद कर सकता है?

शायद आप यहां तक ​​कि एक और अधिक उन्नत उपकरण जानते हैं, उदाहरण के लिए, विभिन्न संभावना वितरण या यहां तक ​​कि विभिन्न अक्षर और लंबाई / चरित्र वितरण के तहत यादृच्छिक शब्दों के अनुक्रम की पीढ़ी का समर्थन करता है।

जवाबों:


11

क्या आपका मतलब jot है?

$ jot 
jot: jot - print sequential or random data
usage:  jot [ options ] [ reps [ begin [ end [ s ] ] ] ]
Options:
    -r      random data
    -c      character data
    -n      no final newline
    -b word     repeated word
    -w word     context word
    -s string   data separator
    -p precision    number of characters

यदि आप उबंटू का उपयोग करते हैं तो पैकेज एथेना-जोट है। एक सरल उदाहरण:

$ jot -r 10 12 27
26
13
22
18
25
12
13
23
15
23

अलविदा।


हाँ, जोत कमांड था, धन्यवाद! फिर से, मैं और अधिक उन्नत अनुक्रम पैदा करने वाले उपकरणों के सुझावों की सराहना करता हूं।
अधिकतम

2

यदि आपको किसी छोटी सी स्क्रिप्ट को लिखने में कोई आपत्ति नहीं है, तो आपको इसकी आवश्यकता है, मैं इसे आर , ओपन-सोर्स सांख्यिकी प्रणाली में करने की सलाह दूंगा ।

उदाहरण के लिए, 100 गाऊसी-वितरित संख्याओं की सूची प्राप्त करने के लिए इस एक-लाइनर पर विचार करें:

$ Rscript -e 'write(rnorm(100) * 100 + 100, "", 1)'
234.2903
-25.53289
168.0262
-28.49810
105.0687
85.97355
269.5072
...

चलिए इसे तोड़ते हैं।

मानक Rकमांड आपको एक संवादात्मक प्रोग्रामिंग वातावरण में लाता है, जो कि ठीक है यदि आप काम करना चाहते हैं तो हाथ से कुछ कैसे करें या कुछ वृद्धि कर रहे हैं, लेकिन आपके प्रश्न से, ऐसा लगता है कि आपको संख्याओं की सूची की आवश्यकता है दूसरे कार्यक्रम में भेजने के लिए। इसलिए इसके बजाय, हम उपयोग करते हैं Rscript, जो एक पारंपरिक यूनिक्स स्क्रिप्ट दुभाषिया की तरह अधिक व्यवहार करता है: आप इसे आर स्क्रिप्ट वाली फ़ाइल का नाम दे सकते हैं, या -eकमांड लाइन पर पूरे प्रोग्राम टेक्स्ट को पास करने के लिए मानक ध्वज का उपयोग कर सकते हैं ।

rnorm()"सामान्य" या गाऊसी वितरण के साथ यादृच्छिक संख्याओं की सूची प्राप्त करने के लिए आर फ़ंक्शन है। इसमें तीन पैरामीटर लगते हैं, जिनमें से केवल एक की आवश्यकता होती है, आप कितने नंबर चाहते हैं। हमने 100 के लिए कहा है। अन्य दो वैकल्पिक मापदंडों के लिए चूक लेने से, हमें 0 का मतलब और 1 का मानक विचलन मिलता है।

उसके बाद अंकगणित सिर्फ R भाषा की एक शांत विशेषता दिखा रहा है: आप पूरे डेटा तालिकाओं, मैट्रिसेस, आदि पर अंकगणित कर सकते हैं, बस एक अधिक विशिष्ट भाषा में स्केलर मान के रूप में आसानी से। मैंने सभी उत्पन्न मूल्यों को 100 से गुणा किया है और उन्हें 100 जोड़ा है, सिर्फ इसलिए कि मैं कर सकता हूं। क्योंकि आर एक पूर्ण विकसित प्रोग्रामिंग भाषा है, इस संख्या की सूची के साथ आप जो कुछ कर सकते हैं, उसकी कोई सीमा नहीं है। यह एक निश्चित उद्देश्य कमांड के बजाय ऐसी प्रणाली का उपयोग करने का लाभ है jot

हम write()फ़ंक्शन के उस पिछले ऑपरेशन के परिणाम को पास करते हैं, जो डेटा को डिफ़ॉल्ट रूप से एक फ़ाइल में लिखता है, लेकिन हमने ओवरराइड किया है कि दूसरे पैरामीटर, फ़ाइल नाम के लिए एक रिक्त स्ट्रिंग पास करके, इसलिए यह तालिका को लिखता है इसके बजाय टर्मिनल। अगला पैरामीटर, 1बस यह बताता है कि हम एकल-कॉलम प्रारूप में अपना आउटपुट चाहते हैं।

आर है कई अन्य यादृच्छिक संख्या पीढ़ी कार्यों आधार प्रणाली में बनी। उदाहरण के लिए, हम jotइस स्क्रिप्ट के साथ lcpriani के उत्तर में कमांड की नकल कर सकते हैं :

$ Rscript -e 'write(round(runif(10, 12, 27)), "", 1)'

यहाँ हम runif()12 से 27 तक 10 समान रूप से वितरित यादृच्छिक संख्याएँ प्राप्त करने के लिए उपयोग कर रहे हैं । जैसे rnorm()कि हमने ऊपर जो प्रयोग किया है, यह फ़ंक्शन फ़्लोटिंग-पॉइंट मान लौटाता है, इसलिए हमें round()स्क्रीन पर लिखने से पहले उन्हें अपने निकटतम पूर्णांक मानों में भेजना होगा।

R के पास CRAN में एक समृद्ध सेट है , जो पर्ल के CPAN पर निर्मित एक रिपॉजिटरी है। आप जिस में रुचि रखते हैं, उसे बस यादृच्छिक कहा जाता है , जो random.org के लिए एक इंटरफ़ेस के रूप में कार्य करता है , एक सेवा जो वायुमंडलीय शोर से उत्पन्न सच यादृच्छिक संख्याओं को वापस करती है।

आर एक पूर्ण प्रोग्रामिंग वातावरण है, इसलिए यह हो सकता है कि आपको वास्तव में पाठ प्रारूप में अपने नंबर को आर से बाहर निकालने की आवश्यकता न हो। आप अपनी समस्या को पूरी तरह से आर में हल करने में सक्षम हो सकते हैं। इसे शॉट दें।


किसी दिए गए अंतराल से x यादृच्छिक संख्या प्राप्त करने का R तरीका क्या है? जैसे 10 और 200 के बीच 100 यादृच्छिक संख्या (सामान्य वितरण से)?
मैक्सक्लेपज़िग

मैंने jotउपरोक्त उत्तर के लिए lcpriani की कमांड की नकल करने के बारे में जानकारी जोड़ी । मानों को सीमित करने के लिए rnorm(), यह सामान्य वितरण के काम करने का तरीका नहीं है। यदि आप 0 और 1 के एसडी का डिफ़ॉल्ट मतलब लेते हैं, तो 1000 अभी भी एक संभावित रिटर्न वैल्यू है, यह बहुत अधिक संभावना नहीं है। आर आपको कुछ ऐसा लिखने देगा जो किसी दिए गए रेंज के बाहर चीजों को हटाने के लिए मूल्यों को जकड़ देगा, लेकिन तब आप शायद सामान्य वितरण का दुरुपयोग कर रहे होंगे।
वॉरेन यंग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.