ट्रैक
/
Haskell
Haskell
/
अभ्यास
/
अंतरिक्ष युग
अंतरिक्ष युग

अंतरिक्ष युग

आसान

परिचय

साल 2525 है और आप अभी-अभी सौरमंडल के सारे ग्रहों की यात्रा पर निकले हैं (बुध, शुक्र, पृथ्वी, मंगल, बृहस्पति, शनि, अरुण और वरुण)।

पहला पड़ाव बुध है, जहाँ सीमा शुल्क विभाग आपसे एक फॉर्म भरवाता है (नौकरशाही साफ़ तौर पर सिर्फ़ पृथ्वी पर नहीं है)।

जब आप यह फॉर्म सीमा शुल्क अधिकारी को सौंपते हैं, तो वे उसे गौर से देखते हैं और भौंहें सिकोड़ लेते हैं।

"क्या आप सच में चाहते हैं कि मैं यह मान लूँ कि आपकी उम्र सिर्फ़ 50 साल है? आपकी उम्र तो 200 साल के आसपास होनी चाहिए!"

आपको यह सुनकर हँसी आती है और आप इंतज़ार करते हैं कि अधिकारी भी हँसेंगे, लेकिन वे एकदम गंभीर दिखते हैं।

तब आपको समझ आता है कि आपने अपनी उम्र पृथ्वी के सालों में भरी है, जबकि अधिकारी को उसकी उम्मीद बुध के सालों में थी!

सूरज के चारों ओर बुध की परिक्रमा की अवधि पृथ्वी की तुलना में बहुत कम है, इसलिए बुध के सालों में आपकी उम्र वास्तव में कहीं ज़्यादा होती है।

कुछ फुर्तीले हिसाब लगाने के बाद आप अपनी उम्र बुध के सालों में बता पाते हैं।

सीमा शुल्क अधिकारी संतुष्ट होकर मुस्कुराते हैं और आपको आगे जाने का इशारा करते हैं।

आप मन ही मन तय करते हैं कि आगे सीमा शुल्क की जाँच से पहले ही हर ग्रह के हिसाब से अपनी उम्र निकाल लेंगे, ताकि ऐसी गड़बड़ दोबारा न हो।

Note

अगर आप सोच रहे हैं कि प्लूटो को इस सूची में जगह क्यों नहीं मिली, तो यह YouTube वीडियो देखिए।

निर्देश

मान लीजिए आपको सेकंड में किसी की आयु दी गई है। अब गणना कीजिए कि हमारे सौरमंडल के किसी ग्रह पर वह व्यक्ति कितने साल का होगा।

पृथ्वी का एक वर्ष 365.25 पृथ्वी दिनों के बराबर होता है, यानी 31,557,600 सेकंड। अगर आपसे कहा जाए कि किसी की आयु 1,000,000,000 सेकंड है, तो उसकी आयु 31.69 पृथ्वी वर्ष होगी।

बाकी ग्रहों के लिए आपको उनका पृथ्वी वर्षों में परिक्रमण काल ध्यान में रखना होगा:

ग्रह पृथ्वी वर्षों में परिक्रमण काल
बुध 0.2408467
शुक्र 0.61519726
पृथ्वी 1.0
मंगल 1.8808158
बृहस्पति 11.862615
शनि 29.447498
अरुण 84.016846
वरुण 164.79132
Note

सूरज के चारों ओर पृथ्वी का एक पूरा चक्कर असल में 365.256 दिन (1 नाक्षत्र वर्ष) के ज़्यादा करीब होता है। ग्रेगोरियन कैलेंडर में औसतन 365.2425 दिन होते हैं। हालाँकि यह पूरी तरह सटीक नहीं है, फिर भी इस अभ्यास में 365.25 वैल्यू ही इस्तेमाल की जाती है। एक वर्ष मापने के और भी तरीके जानने के लिए विकिपीडिया पर वर्ष देखिए।

संकेत

इस अभ्यास में हमने बीजगणितीय डेटा टाइप की परिभाषा दी है, जिसका नाम Planet है। आपको ageOn फंक्शन बनाना है, जो यह गणना करता है कि सेकंड में दी गई उम्र के हिसाब से कोई Planet पर कितने साल का होगा।

अगर आपको टाइप को लेकर कोई संदेह हो, तो आप दिए गए सिग्नेचर का उपयोग कर सकते हैं, लेकिन इसे अपनी रचनात्मकता की सीमा न बनने दीजिए:

ageOn :: Planet -> Float -> Float
GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
Haskell Exercism

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

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