Java में यादृच्छिक संख्याएँ बनाने के लिए java.util.Random क्लास के एक इंस्टेंस का उपयोग किया जा सकता है।
nextInt() मेथड की मदद से एक यादृच्छिक पूर्णांक बनाया जा सकता है।
यह Integer.MIN_VALUE से Integer.MAX_VALUE तक की कोई भी वैल्यू बनाता है।
Random random = new Random();
random.nextInt();
// => -1169335537
बनाई जाने वाली वैल्यूओं की सीमा तय करने के लिए nextInt(int) का उपयोग कीजिए।
यह 0 (शामिल) से लेकर दी गई ऊपरी सीमा (शामिल नहीं) तक एक वैल्यू बनाता है।
उदाहरण के लिए, यह 0 से 9 तक की एक यादृच्छिक संख्या बनाता है।
Random random = new Random();
random.nextInt(10);
// => 6
और यह 10 से 19 तक की एक यादृच्छिक संख्या बनाता है।
Random random = new Random();
10 + random.nextInt(10);
// => 11
nextDouble() मेथड की मदद से एक यादृच्छिक दशमलव संख्या बनाई जा सकती है।
यह 0.0 से 1.0 तक एक वैल्यू बनाता है।
Random random = new Random();
random.nextDouble();
// => 0.19250004204021398
और यह 100.0 से 200.0 तक एक यादृच्छिक संख्या बनाता है।
Random random = new Random();
100.0 + 100.0 * random.nextDouble();
// => 111.31849856260328
मैरी टीवी सीरीज़ स्टार ट्रेक: द नेक्स्ट जेनरेशन की बहुत बड़ी प्रशंसक है। वह अक्सर कागज़-कलम वाले रोल-प्लेइंग गेम खेलती है, जिनमें वह और उसके दोस्त खुद को स्टारशिप एंटरप्राइज़ के चालक दल की तरह मान लेते हैं। मैरी का पात्र कैप्टन पिकार्ड है, यानी उसे कैप्टन का लॉग रखना पड़ता है। उसे खेल का रचनात्मक हिस्सा बहुत पसंद है, लेकिन मौके पर ही यादृच्छिक डेटा बनाना उसे पसंद नहीं है।
कैप्टन के लॉग में आम तौर पर आने वाले डेटा के लिए यादृच्छिक जनरेटर बनाकर मैरी की मदद कीजिए।
इस अभ्यास में दिया गया शुरुआती कोड एक java.util.Random इंस्टेंस को कंस्ट्रक्टर आर्गुमेंट के रूप में लेता है।
इससे अभ्यास के टेस्ट एक ऐसा इंस्टेंस दे सकते हैं जिसका सीड पहले से तय होता है, और इस तरह टेस्ट के परिणाम पहले से अनुमानित हो जाते हैं।
इसलिए आपसे अपेक्षा है कि आप अपने कोड में दिए गए इसी java.util.Random इंस्टेंस का उपयोग करें।
स्टारशिप एंटरप्राइज़ को अपनी यात्राओं में कई ग्रह मिलते हैं।
स्टार ट्रेक की दुनिया में ग्रहों को उनकी विशेषताओं के आधार पर वर्गों में बाँटा गया है।
उदाहरण के लिए, पृथ्वी M वर्ग का ग्रह है।
ग्रहों के सभी संभव वर्ग ये हैं: D, H, J, K, L, M, N, R, T, और Y.
randomPlanetClass() मेथड बनाइए।
इसे इनमें से कोई एक ग्रह वर्ग यादृच्छिक रूप से लौटाना चाहिए।
captainsLog.randomPlanetClass();
// => "K"
एंटरप्राइज़ (रजिस्ट्री नंबर NCC-1701) अकेला स्टारशिप नहीं है जो अंतरिक्ष में उड़ रहा है!
जब एंटरप्राइज़ की मुलाकात किसी दूसरे स्टारशिप से होती है, तो मैरी को उस स्टारशिप का रजिस्ट्री नंबर अपने लॉग में दर्ज करना होता है।
रजिस्ट्री नंबर "NCC-" उपसर्ग से शुरू होते हैं और उसके बाद 1000 से 9999 तक (दोनों समेत) कोई संख्या आती है।
ऐसा randomShipRegistryNumber() मेथड बनाइए जो एक यादृच्छिक स्टारशिप रजिस्ट्री नंबर लौटाता है।
captainsLog.randomShipRegistryNumber();
// => "NCC-1947"
जिस लॉग में तारीखें ही न हों, उसका क्या फायदा?
स्टारडेट एक दशमलव संख्या होती है।
द नेक्स्ट जेनरेशन के पहले सीज़न में स्टारशिप एंटरप्राइज़ के जो कारनामे होते हैं, वे स्टारडेट 41000.0 और 42000.0 के बीच होते हैं।
"4" का मतलब 24वीं सदी है और "1" का मतलब पहला सीज़न।
ऐसा randomStardate() मेथड बनाइए जो 41000.0 (समेत) और 42000.0 (समेत नहीं) के बीच एक दशमलव संख्या लौटाता है।
captainsLog.randomStardate();
// => 41458.15721310934
Exercism पर साइन अप कीजिए और Java को 26 कॉन्सेप्ट158 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।