संक्षेप में लिख देना
बीएसडी और ओएसएक्स पर आप अंतराल से (समावेशी ) एक एकल यादृच्छिक ( ) संख्या वापस करने के लिए जोत का उपयोग कर सकते हैं ।-r
min
max
$ min=5
$ max=10
$ jot -r 1 $min $max
वितरण की समस्या
दुर्भाग्य से, यादृच्छिक रूप से उत्पन्न संख्याओं की श्रेणी और वितरण इस तथ्य से प्रभावित है कि आउटपुट आउटपुट प्रारूप के लिए jot दोहरे परिशुद्धता फ़्लोटिंग पॉइंट अंकगणितीय और प्रिंटफ़ (3) का उपयोग करता है, जो गोलाई और ट्रंकेशन समस्याओं का कारण बनता है। इसलिए, अंतराल min
और max
प्रदर्शन के अनुसार कम बार उत्पन्न होता है:
$ jot -r 100000 5 10 | sort -n | uniq -c
9918 5
20176 6
20006 7
20083 8
19879 9
9938 10
OS X 10.11 (El Capitan) पर यह निश्चित किया गया प्रतीत होता है:
$ jot -r 100000 5 10 | sort -n | uniq -c
16692 5
16550 6
16856 7
16579 8
16714 9
16609 10
तथा...
$ jot -r 1000000 1 10 | sort -n | uniq -c
100430 1
99965 2
99982 3
99796 4
100444 5
99853 6
99835 7
100397 8
99588 9
99710 10
वितरण समस्या का समाधान
ओएस एक्स के पुराने संस्करणों के लिए, सौभाग्य से कई वर्कअराउंड हैं। एक प्रिंटफ (3) पूर्णांक रूपांतरण का उपयोग करना है। एकमात्र चेतावनी यह है कि अंतराल अब अधिकतम हो गया है max+1
। पूर्णांक स्वरूपण का उपयोग करके, हम पूरे अंतराल में उचित वितरण प्राप्त करते हैं:
$ jot -w %i -r 100000 5 11 | sort -n | uniq -c
16756 5
16571 6
16744 7
16605 8
16683 9
16641 10
सही समाधान
अंत में, वर्कअराउंड का उपयोग करके पासा का एक उचित रोल पाने के लिए, हमारे पास:
$ min=5
$ max_plus1=11 # 10 + 1
$ jot -w %i -r 1 $min $max_plus1
अतिरिक्त होमवर्क
Gory गणित और प्रारूपण विवरण और कई और उदाहरणों के लिए jot (1) देखें ।