एक समय की बात है, एक बुद्धिमान नौकर ने एक राजकुमार की जान बचाई। राजा ने वादा किया कि नौकर जो भी माँगेगा, वह उसे देगा। राजा को शतरंज बहुत पसंद था। यह जानकर नौकर ने राजा से कहा कि उसे गेहूँ के दाने चाहिए। शतरंज के बोर्ड के पहले खाने पर एक दाना, और हर अगले खाने पर दानों की संख्या दोगुनी।
शतरंज के बोर्ड पर गेहूँ के दानों की संख्या निकालिए।
शतरंज के बोर्ड में 64 खाने होते हैं। खाना 1 पर एक दाना होता है, खाना 2 पर दो दाने, खाना 3 पर चार दाने, और इसी तरह हर बार संख्या दोगुनी होती जाती है।
ऐसा कोड लिखिए जो यह निकालता है:
Euphoria में atom किसी भी तरह की संख्या रख सकते हैं। इनका सबटाइप integer पूर्ण संख्याओं के लिए है।
C जैसी भाषाओं में यह अभ्यास अनसाइन्ड 64-बिट पूर्णांक लौटाकर हल किया जा सकता है।
लेकिन Euphoria में पूर्णांक साइन्ड होते हैं और मशीन वर्ड से एक बिट छोटे होते हैं, इसलिए यह इस अभ्यास के लिए बहुत छोटे पड़ते हैं। जबकि atom बड़े पूर्णांक रख सकते हैं, क्योंकि उनमें ज़रूरी 64 बिट परिशुद्धता होती है।
Euphoria का एक 32-बिट वर्शन भी है। यह अब भी मौजूद है, ताकि लेगेसी एप्लिकेशन पहले से बने 32-बिट dll/so का इस्तेमाल तब भी करते रह सकें जब 64-बिट वर्शन उपलब्ध न हो, या जब ऐसे किसी एप्लिकेशन का रैपर हार्डकोडेड 32-बिट ऑफसेट से भरा हो।
यह वर्शन इस कार्य को हल करने के लिए पूरी तरह अनुपयुक्त है, क्योंकि उन atom में सिर्फ 53 बिट परिशुद्धता होती है।
अगर आपको यह अभ्यास अपने कंप्यूटर पर हल करने में दिक्कत हो रही है, तो ध्यान रखिए कि आप Euphoria का 64-बिट वर्शन ही इस्तेमाल कर रहे हैं।