মূলদ সংখ্যা বলতে a এবং b দুটি ইন্টিজারের ভাগফলকে বোঝায়, যেখানে এদের যথাক্রমে লব ও হর বলা হয় এবং b != 0।
মনে রাখবেন, গাণিতিকভাবে হর কখনো শূন্য হতে পারে না। তবে মূলদ সংখ্যার অনেক ইমপ্লিমেন্টেশনে দেখবেন, হরকে শূন্য হতে দেওয়া হয়, আর এর আচরণ ফ্লোটিং পয়েন্ট সংখ্যায় ধনাত্মক বা ঋণাত্মক অসীমের মতো। সে ক্ষেত্রে সাধারণত হর ও লব একইসাথে শূন্য হতে পারে না।
r = a/b মূলদ সংখ্যাটির পরম মান |r| হলো |a|/|b|.
r₁ = a₁/b₁ এবং r₂ = a₂/b₂ দুটি মূলদ সংখ্যার যোগফল r₁ + r₂ = a₁/b₁ + a₂/b₂ = (a₁ * b₂ + a₂ * b₁) / (b₁ * b₂).
r₁ = a₁/b₁ এবং r₂ = a₂/b₂ দুটি মূলদ সংখ্যার বিয়োগফল r₁ - r₂ = a₁/b₁ - a₂/b₂ = (a₁ * b₂ - a₂ * b₁) / (b₁ * b₂).
r₁ = a₁/b₁ এবং r₂ = a₂/b₂ দুটি মূলদ সংখ্যার গুণফল (গুণ) r₁ * r₂ = (a₁ * a₂) / (b₁ * b₂).
একটি মূলদ সংখ্যা r₁ = a₁/b₁-কে অন্য একটি r₂ = a₂/b₂ দিয়ে ভাগ করলে হয় r₁ / r₂ = (a₁ * b₂) / (a₂ * b₁), যদি a₂ শূন্য না হয়।
কোনো মূলদ সংখ্যা r = a/b-কে অঋণাত্মক ইন্টিজার ঘাত n-এ উন্নীত করলে হয় r^n = (a^n)/(b^n).
কোনো মূলদ সংখ্যা r = a/b-কে ঋণাত্মক ইন্টিজার ঘাত n-এ উন্নীত করলে হয় r^n = (b^m)/(a^m), যেখানে m = |n|.
কোনো মূলদ সংখ্যা r = a/b-কে বাস্তব (ফ্লোটিং পয়েন্ট) সংখ্যা x ঘাতে উন্নীত করলে হয় ভাগফল (a^x)/(b^x), যা একটি বাস্তব সংখ্যা।
কোনো বাস্তব সংখ্যা x-কে মূলদ ঘাত r = a/b-এ উন্নীত করলে হয় x^(a/b) = root(x^a, b), যেখানে root(p, q) হলো p-এর q-তম মূল।
নিচের অপারেশনগুলো ইমপ্লিমেন্ট করুন:
আপনার মূলদ সংখ্যার ইমপ্লিমেন্টেশন সবসময় লঘিষ্ঠ আকারে থাকা উচিত।
যেমন, 4/4 লঘিষ্ঠ আকারে 1/1 হবে, 30/60 হবে 1/2, 12/8 হবে 3/2, ইত্যাদি।
কোনো মূলদ সংখ্যা r = a/b-কে লঘিষ্ঠ আকারে আনতে a ও b-কে তাদের গরিষ্ঠ সাধারণ গুণনীয়ক (gcd) দিয়ে ভাগ করুন।
তাই, যেমন, gcd(12, 8) = 4, ফলে r = 12/8-কে লঘিষ্ঠ করে (12/4)/(8/4) = 3/2 লেখা যায়।
মূলদ সংখ্যার লঘিষ্ঠ রূপটি "আদর্শ রূপে" থাকা উচিত (হর সর্বদা একটি ধনাত্মক ইন্টিজার হবে)।
যদি হরে ঋণাত্মক ইন্টিজার থাকে, তবে আদর্শ রূপে পৌঁছানো নিশ্চিত করতে লব ও হর দুটোকেই -1 দিয়ে গুণ করুন।
যেমন, 3/-4-কে লঘিষ্ঠ করে -3/4 লেখা উচিত।
ধরে নিন যে আপনি যে প্রোগ্রামিং ভাষা ব্যবহার করছেন, সেটিতে মূলদ সংখ্যার কোনো ইমপ্লিমেন্টেশন নেই।
Exercism-এ সাইন আপ করুন, Prolog ট্র্যাকের 109টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।