आज दुनिया में अधिकांश लोग अरबी अंक (0–9) इस्तेमाल करते हैं। लेकिन अगर आप दो हज़ार साल पीछे चले जाएँ, तो पाएँगे कि अधिकांश यूरोपीय लोग इसके बजाय रोमन अंक इस्तेमाल करते थे।
रोमन अंक लिखने के लिए हम निम्नलिखित लैटिन अक्षर इस्तेमाल करते हैं, जिनमें से हर अक्षर की एक वैल्यू होती है:
| M | D | C | L | X | V | I |
|---|---|---|---|---|---|---|
| 1000 | 500 | 100 | 50 | 10 | 5 | 1 |
एक रोमन अंक इन अक्षरों का एक क्रम होता है, और उसकी वैल्यू अक्षरों की वैल्यू का जोड़ होती है।
उदाहरण के लिए, XVIII की वैल्यू 18 होती है (10 + 5 + 1 + 1 + 1 = 18)।
हालाँकि एक नियम चीज़ों को और मुश्किल बना देता है: एक ही अक्षर लगातार तीन बार से अधिक इस्तेमाल नहीं किया जा सकता।
इसका मतलब है कि हम 4 जैसी संख्याओं को उस सहज लगने वाले IIII से नहीं लिख सकते।
इसके बजाय, ऐसी संख्याओं के लिए हम दो अक्षरों के बीच घटाने का तरीका इस्तेमाल करते हैं।
तो हम 4 को 1 + 1 + 1 + 1 नहीं, बल्कि 5 - 1 के रूप में देखते हैं।
और हमारी आधुनिक सोच के लिए थोड़ा उलझाने वाला यह है कि हम छोटी संख्या पहले लिखते हैं।
यह केवल इन मामलों में लागू होता है: 4 (IV), 9 (IX), 40 (XL), 90 (XC), 400 (CD) और 900 (CM)।
रोमन अंकों में क्रम मायने रखता है! अक्षरों (और ऊपर दिए गए विशेष संयोजनों) को बाएँ से दाएँ घटती वैल्यू के क्रम में रखना होता है।
यहाँ कुछ उदाहरण दिए गए हैं:
105 => CV
---- => --
100 => C
+ 5 => V
106 => CVI
---- => --
100 => C
+ 5 => V
+ 1 => I
104 => CIV
---- => ---
100 => C
+ 4 => IV
और अंत में एक अधिक जटिल उदाहरण:
1996 => MCMXCVI
----- => -------
1000 => M
+ 900 => CM
+ 90 => XC
+ 5 => V
+ 1 => I
आपको एक संख्या को अरबी अंकों से रोमन अंकों में बदलना है।
इस अभ्यास में हमारा ध्यान केवल पारंपरिक रोमन अंकों पर है। इनमें सबसे बड़ी संख्या MMMCMXCIX (या 3,999) है।
अरबी और रोमन अंकों के बीच बदलने के बहुत सारे अलग-अलग तरीके हैं। हम सुझाव देते हैं कि पहले एक सरल तरीका अपनाइए, ताकि आप रोमन अंकों की अवधारणा से परिचित हो जाएँ, और फिर अधिक कुशल तरीके खोजिए।
अंत में हमारे Deep Dive वीडियो को ज़रूर देखिए, ताकि आप जान सकें कि आप कौन-कौन से अलग-अलग तरीके अपना सकते हैं!
इस अभ्यास में आपको एक एक्सटेंशन मेथड लिखना है। अधिक जानकारी के लिए, एक्सटेंशन मेथड देखिए।
Exercism पर साइन अप कीजिए और Visual Basic को 113 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।
इस मुश्किल अभ्यास के अलग-अलग तरह के हल जानिए। इनमें रिकर्शन से लेकर टेबल-आधारित लुकअप तक शामिल हैं, साथ ही एक ऐसा हल जो मिश्रित रेडिक्स संख्याएँ इस्तेमाल करता है, और Common Lisp की थोड़ी-सी सीधी चीटिंग भी।