ट्रैक
/
Java
Java
/
अभ्यास
/
कप्तान का लॉग
कप्तान का लॉग

कप्तान का लॉग

सीखने का अभ्यास

परिचय

यादृच्छिकता

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

निर्देश

मैरी टीवी सीरीज़ स्टार ट्रेक: द नेक्स्ट जेनरेशन की बहुत बड़ी प्रशंसक है। वह अक्सर कागज़-कलम वाले रोल-प्लेइंग गेम खेलती है, जिनमें वह और उसके दोस्त खुद को स्टारशिप एंटरप्राइज़ के चालक दल की तरह मान लेते हैं। मैरी का पात्र कैप्टन पिकार्ड है, यानी उसे कैप्टन का लॉग रखना पड़ता है। उसे खेल का रचनात्मक हिस्सा बहुत पसंद है, लेकिन मौके पर ही यादृच्छिक डेटा बनाना उसे पसंद नहीं है।

कैप्टन के लॉग में आम तौर पर आने वाले डेटा के लिए यादृच्छिक जनरेटर बनाकर मैरी की मदद कीजिए।

Note

इस अभ्यास में दिया गया शुरुआती कोड एक java.util.Random इंस्टेंस को कंस्ट्रक्टर आर्गुमेंट के रूप में लेता है। इससे अभ्यास के टेस्ट एक ऐसा इंस्टेंस दे सकते हैं जिसका सीड पहले से तय होता है, और इस तरह टेस्ट के परिणाम पहले से अनुमानित हो जाते हैं।

इसलिए आपसे अपेक्षा है कि आप अपने कोड में दिए गए इसी java.util.Random इंस्टेंस का उपयोग करें।

1. एक यादृच्छिक ग्रह बनाइए

स्टारशिप एंटरप्राइज़ को अपनी यात्राओं में कई ग्रह मिलते हैं। स्टार ट्रेक की दुनिया में ग्रहों को उनकी विशेषताओं के आधार पर वर्गों में बाँटा गया है। उदाहरण के लिए, पृथ्वी M वर्ग का ग्रह है। ग्रहों के सभी संभव वर्ग ये हैं: D, H, J, K, L, M, N, R, T, और Y.

randomPlanetClass() मेथड बनाइए। इसे इनमें से कोई एक ग्रह वर्ग यादृच्छिक रूप से लौटाना चाहिए।

captainsLog.randomPlanetClass();
// => "K"

2. स्टारशिप का यादृच्छिक रजिस्ट्री नंबर बनाइए

एंटरप्राइज़ (रजिस्ट्री नंबर NCC-1701) अकेला स्टारशिप नहीं है जो अंतरिक्ष में उड़ रहा है! जब एंटरप्राइज़ की मुलाकात किसी दूसरे स्टारशिप से होती है, तो मैरी को उस स्टारशिप का रजिस्ट्री नंबर अपने लॉग में दर्ज करना होता है।

रजिस्ट्री नंबर "NCC-" उपसर्ग से शुरू होते हैं और उसके बाद 1000 से 9999 तक (दोनों समेत) कोई संख्या आती है।

ऐसा randomShipRegistryNumber() मेथड बनाइए जो एक यादृच्छिक स्टारशिप रजिस्ट्री नंबर लौटाता है।

captainsLog.randomShipRegistryNumber();
// => "NCC-1947"

3. एक यादृच्छिक स्टारडेट बनाइए

जिस लॉग में तारीखें ही न हों, उसका क्या फायदा?

स्टारडेट एक दशमलव संख्या होती है। द नेक्स्ट जेनरेशन के पहले सीज़न में स्टारशिप एंटरप्राइज़ के जो कारनामे होते हैं, वे स्टारडेट 41000.0 और 42000.0 के बीच होते हैं। "4" का मतलब 24वीं सदी है और "1" का मतलब पहला सीज़न।

ऐसा randomStardate() मेथड बनाइए जो 41000.0 (समेत) और 42000.0 (समेत नहीं) के बीच एक दशमलव संख्या लौटाता है।

captainsLog.randomStardate();
// => 41458.15721310934
GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
Java Exercism

कप्तान का लॉग शुरू करने के लिए तैयार हैं?

Exercism पर साइन अप कीजिए और Java को 26 कॉन्सेप्ट158 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।