রোমান সংখ্যা

রোমান সংখ্যা

মধ্যম

ভূমিকা

আজ বিশ্বের বেশিরভাগ মানুষ আরবি সংখ্যা (০–৯) ব্যবহার করে। কিন্তু আপনি যদি দুই হাজার বছর পিছিয়ে যেতেন, তাহলে দেখতে পেতেন যে বেশিরভাগ ইউরোপীয় বরং রোমান সংখ্যা ব্যবহার করছিলেন।

একটি রোমান সংখ্যা লিখতে আমরা নিচের লাতিন অক্ষরগুলো ব্যবহার করি, যার প্রত্যেকটির একটি মান আছে:

M D C L X V I
1000 500 100 50 10 5 1

একটি রোমান সংখ্যা হলো এই অক্ষরগুলোর একটি ক্রম, আর এর মান হলো অক্ষরগুলোর মানের যোগফল। উদাহরণস্বরূপ, XVIII-এর মান ১৮ (10 + 5 + 1 + 1 + 1 = 18)।

তবে একটি নিয়ম বিষয়টা আরও জটিল করে তোলে, সেটি হলো একই অক্ষর পরপর তিনবারের বেশি ব্যবহার করা যাবে না। এর মানে হলো, ৪-এর মতো সংখ্যা আপাতদৃষ্টিতে স্বাভাবিক লাগা IIII দিয়ে প্রকাশ করা যায় না। তার বদলে ওই সংখ্যাগুলোর জন্য আমরা দুটি অক্ষরের মধ্যে বিয়োগ পদ্ধতি ব্যবহার করি। তাই আমরা 4-কে 1 + 1 + 1 + 1 হিসেবে নয়, বরং 5 - 1 হিসেবে ভাবি। আর আমাদের আধুনিক চিন্তাধারার কাছে একটু বিভ্রান্তিকর হলেও, আমরা ছোট সংখ্যাটি আগে লিখি। এটি কেবল নিচের ক্ষেত্রগুলোতেই প্রযোজ্য: ৪ (IV), ৯ (IX), ৪০ (XL), ৯০ (XC), ৪০০ (CD) এবং ৯০০ (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)।

Note

আরবি ও রোমান সংখ্যার মধ্যে রূপান্তর করার অনেকগুলো ভিন্ন উপায় আছে। আমরা পরামর্শ দেব, প্রথমে একটি সহজ সরল পদ্ধতি অবলম্বন করে রোমান সংখ্যার ধারণাটির সাথে পরিচিত হন, তারপর আরও দক্ষ পদ্ধতি খুঁজুন।

শেষে আমাদের Deep Dive ভিডিওটি দেখতে ভুলবেন না, যেখানে আপনি কোন কোন পদ্ধতি নিতে পারেন তা জানতে পারবেন!

রেজিস্টার

রেজিস্টার ব্যবহার টাইপ বিবরণ
$a0 ইনপুট ইন্টিজার প্রদত্ত সংখ্যা
$a1 ইনপুট/আউটপুট অ্যাড্রেস নাল-টার্মিনেটেড ফলাফল স্ট্রিং
$t0-9 টেম্পোরারি যেকোনো টেম্পোরারি স্টোরেজের জন্য

সূত্র

The Roman Numeral Kataলিংকটি নতুন উইন্ডো বা ট্যাবে খোলে
GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি একটি নতুন উইন্ডো বা ট্যাবে খোলে
MIPS Assembly Exercism

রোমান সংখ্যা শুরু করতে প্রস্তুত?

Exercism-এ সাইন আপ করুন, MIPS Assembly ট্র্যাকের 70টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।

ডিপ ডাইভ: রোমান সংখ্যা!

এই কঠিন অনুশীলনীর নানা রকম সমাধান ঘুরে দেখুন, রিকার্সন থেকে টেবিল-ভিত্তিক লুকআপ পর্যন্ত, মিক্সড রেডিক্স সংখ্যা ব্যবহার করা একটি সমাধান, আর Common Lisp দিয়ে করা কিছু সহজ ফাঁকি।