গণিত ক্যালকুলেটর
মডুলো ক্যালকুলেটর


মডুলো ক্যালকুলেটর

আমাদের ফ্রি মডুলো ক্যালকুলেটরের সাহায্যে সহজেই যেকোনো ভাগের ভাগশেষ বা রিমাইন্ডার বের করুন। পজিটিভ ও নেগেটিভ সংখ্যা সমর্থিত। ম্যানুয়াল নিয়মটিও শিখুন।

মডুলো

1

আপনার গণনায় একটি ত্রুটি ছিল।

সূচিপত্র

  1. মডুলাস ক্যালকুলেটর ছাড়া হিসাব
    1. উদাহরণ
  2. ঘড়ির মাধ্যমে মডুলো নীতির প্রদর্শন
    1. উদাহরণ
  3. মডুলোর ব্যবহার
    1. জোড় এবং বিজোড় সংখ্যা নির্ণয়
    2. একক রূপান্তর
    3. লিপ ইয়ার (অধিবর্ষ) নির্ণয়
  4. র‍্যান্ডম নাম্বার জেনারেটর
    1. ক্রিপ্টোগ্রাফি
  5. উপসংহার

মডুলো ক্যালকুলেটর

মডুলো অপারেশন হলো একটি গাণিতিক পদ্ধতি যা যেকোনো ভাগের ভাগশেষ (remainder) বের করতে ব্যবহৃত হয়। নির্দিষ্ট করে বললে, মডুলো দুটি সংখ্যাকে মূল্যায়ন করে এবং একটি পূর্ণসংখ্যা হিসেবে ভাগশেষ প্রদান করে।

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

মডুলো অপারেটর ব্যবহার করার জন্য এটি একটি নিখুঁত দৃশ্যপট, যা সাধারণত % চিহ্ন বা সংক্ষেপে mod দ্বারা প্রকাশ করা হয়। যদিও আপনি ছোট সংখ্যার জন্য মনে মনে সহজেই মডুলো হিসাব করতে পারেন, কিন্তু বড় সংখ্যার ক্ষেত্রে একটি ডেডিকেটেড মডুলো ক্যালকুলেটর ব্যবহার করা অনেক দ্রুত এবং সহজ।

সমীকরণটিকে নিচের মতো করে উপস্থাপন করা যেতে পারে:

ভাজ্য = (ভাগফল × ভাজক) + ভাগশেষ

আমাদের ক্ষেত্রে:

  • ভাজ্য হলো ২০ (ক্যান্ডির মোট সংখ্যা);
  • ভাজক হলো ৩ (বাচ্চাদের সংখ্যা);
  • ভাগফল হলো ৬ (প্রতিটি বাচ্চার জন্য ক্যান্ডির সংখ্যা);
  • ভাগশেষ হলো ২ (আপনার নিজের জন্য রাখা ক্যান্ডির সংখ্যা)।

আপনি যদি মডুলো অপারেশন ব্যবহার করেন, তবে আপনি এটিকে নিচের আকারে লিখতে পারেন:

x % y = r

অথবা

x mod y = r

যেখানে x হলো ভাজ্য, y হলো ভাজক এবং r হলো ভাগশেষ।

আমাদের ক্ষেত্রে,

20 % 3 = 2

মডুলাস ক্যালকুলেটর ছাড়া হিসাব

আসুন উদাহরণ হিসেবে একটি বাস্তব দৃশ্যপট বিবেচনা করি।

উদাহরণ

ওয়ায়ান বালিতে থাকেন এবং তিনি ছয়টি আবাসিক ইউনিট নিয়ে একটি ছোট গেস্টহাউস তৈরি করছেন। তিনি বাথরুমগুলোতে টাইলস লাগানোর প্রস্তুতি নিচ্ছেন। তার প্রতিবেশী, গেদে, যিনি সম্প্রতি তার নিজের হোটেল তৈরির কাজ শেষ করেছেন, ওয়ায়ানকে তার বেঁচে যাওয়া টাইলসগুলো বিশাল ডিসকাউন্টে কেনার প্রস্তাব দেন।

গেদে তার গুদামে ১৫টি বাক্স গুনে দেখেন, যার প্রতিটিতে ৪টি স্ট্যান্ডার্ড টাইলস (৬০ × ৬০ সেমি) রয়েছে, সাথে দুটি খোলা টাইলসও আছে। সব মিলিয়ে মোট ৬২টি টাইলস হয়। গেদে একবারে পুরো লটটি বিক্রি করতে চান।

এখন ওয়ায়ানকে বের করতে হবে যে এই লট দিয়ে তিনি কতগুলো বাথরুম সম্পূর্ণভাবে টাইলস করতে পারবেন—এবং কতগুলো টাইলস অব্যবহৃত থেকে যাবে।

মডুলো অপারেটর ক্যালকুলেটর ছাড়া আপনি কীভাবে ম্যানুয়ালি মডুলাস বের করবেন?

ওয়ায়ান তার গেস্টহাউসের একটি স্ট্যান্ডার্ড বাথরুমের মাপ নেন এবং বুঝতে পারেন যে তার প্রতিটি রুমের জন্য ঠিক ১৪টি টাইলস প্রয়োজন।

চলুন ম্যানুয়াল হিসাবটি করা যাক!

  1. শুরুর সংখ্যা বা ভাজ্য নির্ধারণ করুন। আমাদের ক্ষেত্রে, এটি হলো ৬২, যা প্রতিবেশীর প্রস্তাব দেওয়া টাইলসের সংখ্যা।
  2. ভাজক নির্ধারণ করুন। এটি হলো ১৪—একটি স্ট্যান্ডার্ড বাথরুমের জন্য প্রয়োজনীয় টাইলসের সঠিক সংখ্যা।
  3. ভাজ্যকে ভাজক দ্বারা ভাগ করুন এবং ফলাফলটিকে নিচের দিকের নিকটতম পূর্ণসংখ্যায় রাউন্ড করুন। ৬২ / ১৪ = ৪.৪২৮৫৭১৪২৮৫৭১৪২৯ বা ৪। সুতরাং ওয়ায়ান চারটি বাথরুম সম্পূর্ণভাবে টাইলস করতে পারবেন।
  4. ভাগের রাউন্ড করা ফলাফলটিকে ভাজক দিয়ে গুণ করুন। অর্থাৎ ৪ × ১৪ = ৫৬। এটি চারটি রুমের জন্য প্রয়োজনীয় টাইলসের মোট সংখ্যা নির্দেশ করে।
  5. মূল ভাজ্য থেকে এই গুণের ফলাফলটি বিয়োগ করুন। অর্থাৎ ৬২ - ৫৬ = ৬। এর মানে হলো ওয়ায়ানের কাছে অতিরিক্ত ছয়টি টাইলস অবশিষ্ট থাকবে।

সহজ এবং সংক্ষিপ্ত উপায়ে, আমরা এই অপারেশনটিকে এভাবে লিখতে পারি:

62 % 14 = 6

অথবা

62 mod 14 = 6

ওয়ায়ান সিদ্ধান্ত নেন যে এটি একটি দারুণ চুক্তি কারণ ছাঁটাই বা দুর্ঘটনাবশত ভেঙে যাওয়ার জন্য সর্বদা প্রায় ১০% রিজার্ভ রাখা বুদ্ধিমানের কাজ। তিনি চাইলে স্থানীয় একটি হার্ডওয়্যারের দোকান থেকে অবশিষ্ট দুটি বাথরুমের জন্য প্রয়োজনীয় সঠিক পরিমাণ টাইলস কিনে নিতে পারেন।

যদিও ম্যানুয়াল গণিত কার্যকর, তবে একটি অনলাইন মড ক্যালকুলেটর সেকেন্ডের মধ্যে এই সঠিক ফলাফলটি প্রদান করতে পারে।

ঘড়ির মাধ্যমে মডুলো নীতির প্রদর্শন

মডুলার পাটিগণিত হলো গণিতের এমন একটি শাখা যা চক্রাকার (cyclic) কাঠামো নিয়ে কাজ করে। এটি কল্পনা করার সবচেয়ে সহজ উপায় হলো একটি ১২-ঘণ্টার চক্রযুক্ত স্ট্যান্ডার্ড ঘড়ির মুখ। গাণিতিক পরিভাষায়, ঘড়ি mod 12-এ কাজ করে।

আপনি যদি জানতে চান যে ২৫১ ঘণ্টা কোনো ভাগশেষ ছাড়াই পুরোপুরিভাবে পূর্ণ দিনে ভাগ হয় কিনা, তবে আপনি এই অপারেশনটি প্রয়োগ করবেন:

251 mod 24

এর ফলাফল হলো ১১, যার মানে হলো ১১ ঘণ্টা অবশিষ্ট বা ভাগশেষ থাকে। অতএব, উত্তর হলো না! এটি তখনই নিখুঁতভাবে ভাগ হতো যদি ফলাফল ০ হতো।

উদাহরণ

ড্যানিয়েল আটলান্টা থেকে মিয়ামিতে বাসে যেতে চান। বাসটি দুপুর ১টায় ছাড়ে এবং যাত্রায় ১৫ ঘণ্টা সময় লাগে। তিনি যখন পৌঁছাবেন তখন কয়টা বাজবে? সেই হিসাবটি হবে:

1 + 15 mod 12

যা হলো ৪। তার ক্ষেত্রে, তিনি ভোর ৪টায় পৌঁছাবেন।

মডুলোর ব্যবহার

জোড় এবং বিজোড় সংখ্যা নির্ণয়

মডুলাস অপারেটরের অন্যতম মৌলিক ব্যবহার হলো একটি সংখ্যা জোড় না বিজোড় তা নির্ণয় করা। এটি নির্বিঘ্নে কাজ করে কারণ x % 2 সর্বদা 0 বা 1 প্রদান করে। জোড় সংখ্যাগুলো সবসময় 0 প্রদান করবে কারণ সেগুলো 2 দ্বারা বিভাজ্য, অন্যদিকে বিজোড় সংখ্যাগুলোর ক্ষেত্রে সর্বদা 1 ভাগশেষ থাকবে।

প্রোগ্রামিংয়ে এর সবচেয়ে সাধারণ প্রয়োগ হলো টেবিল প্রদর্শনের সময় সারির (row) রঙের পরিবর্তন করা। উদাহরণস্বরূপ, আপনি যদি চান যে সারিগুলো পর্যায়ক্রমে হালকা নীল এবং হালকা ধূসর রঙের হোক, তবে বর্তমান সারি নম্বরটি জোড় না বিজোড় তা তাৎক্ষণিকভাবে যাচাই করতে আপনি মডুলো অপারেটর ব্যবহার করতে পারেন।

একক রূপান্তর

একক রূপান্তর হলো মডুলো অপারেশনের ব্যবহারিক প্রয়োগের একটি ক্লাসিক উদাহরণ। ছোট একক, যেমন মিনিট, ইঞ্চি বা সেন্টিমিটারকে বড় একক যেমন ঘণ্টা, মাইল বা কিলোমিটারে রূপান্তর করার সময় এটি প্রায়শই ব্যবহৃত হয়। দশমিক বা ভগ্নাংশ সংখ্যা এসব পরিস্থিতিতে সবসময় সহায়ক হয় না।

উদাহরণস্বরূপ, আমরা যদি ৩৭৩ মিনিটে কত ঘণ্টা তা বের করতে চাই, তবে ফলাফলটিকে ৬ ঘণ্টা এবং ১৩ মিনিট হিসেবে প্রকাশ করা ৬.২১৬৬৬৬৬৬৬৬৬৬৬৬৬৬৬৬৭ ঘণ্টা বলার চেয়ে অনেক বেশি ব্যবহারিক।

সাধারণ ভাগ (নিকটতম পূর্ণসংখ্যায় রাউন্ড করা) মোট ঘণ্টার সংখ্যা নির্ধারণ করে, আর মডুলো অপারেশন অবশিষ্ট মিনিটগুলোর হিসাব করে। আপনি সময়, দূরত্ব, চাপ, শক্তি বা ডেটা স্টোরেজ—যাই নিয়ে কাজ করুন না কেন, অনায়াসেই একক রূপান্তর করতে আপনি এই সাধারণ পদ্ধতিটি প্রয়োগ করতে পারেন।

লিপ ইয়ার (অধিবর্ষ) নির্ণয়

মডুলো অপারেটরের আরেকটি ব্যবহারিক উদাহরণ হলো কোনো একটি নির্দিষ্ট বছর লিপ ইয়ার (অধিবর্ষ) কিনা তা হিসাব করা।

লিপ ইয়ার হলো এমন একটি ক্যালেন্ডার বছর যা সৌর ক্যালেন্ডারে একটি অতিরিক্ত দিন—২৯ ফেব্রুয়ারি—ধারণ করে।

৪৫ খ্রিস্টপূর্বাব্দের ১ জানুয়ারি, রোমান স্বৈরশাসক জুলিয়াস সিজার আলেকজান্দ্রিয়ার জ্যোতির্বিজ্ঞানীদের দ্বারা রোমে তৈরি একটি ক্যালেন্ডার প্রবর্তন করেন। এই ক্যালেন্ডারটি সেই হিসাবের উপর ভিত্তি করে তৈরি হয়েছিল যে একটি জ্যোতির্বিজ্ঞানের বছর প্রায় ৩৬৫.২৫ দিনের (৩৬৫ দিন এবং ৬ ঘণ্টা) সমান। এটি জুলিয়ান ক্যালেন্ডার হিসেবে পরিচিতি লাভ করে।

এই ছয় ঘণ্টার ঘাটতি পূরণ করতে, সিজার লিপ ইয়ার প্রবর্তন করেন। পরপর তিন বছরের জন্য ৩৬৫ দিন ছিল। আর প্রতি চতুর্থ বছরে (চার-এর গুণিতক), ফেব্রুয়ারি মাসে একটি অতিরিক্ত দিন যোগ করা হয়েছিল।

তবে, কয়েক শতাব্দী পেরিয়ে যাওয়ার পর দেখা যায় যে, কেবল এই নিয়মটি পুরোপুরি নির্ভুল ছিল না।

গড় গ্রীষ্মমন্ডলীয় বছর (দুটি মহাবিষুবের মধ্যবর্তী সময়) প্রায় ৩৬৫ দিন, ৫ ঘণ্টা এবং ৪৯ মিনিটের কাছাকাছি। গড় গ্রীষ্মমন্ডলীয় বছর এবং জুলিয়ান ক্যালেন্ডার বছরের মধ্যে পার্থক্য ছিল প্রায় ১১ মিনিটের। ১২৮ বছর ধরে, সেই ১১ মিনিটগুলো যুক্ত হয়ে আস্ত একটি অতিরিক্ত দিনে পরিণত হয়েছিল।

এই পুঞ্জীভূত ত্রুটি দূর করতে এবং ভবিষ্যতের ঋতুগত পরিবর্তন এড়াতে, ১৫৮২ সালে পোপ গ্রেগরি ত্রয়োদশ ক্যালেন্ডারটির সংস্কার করেন। তিনি লিপ ইয়ারের অতিরিক্ত নিয়ম প্রবর্তন করেন। লিপ ইয়ারগুলো তখনও চার-এর গুণিতক ছিল, তবে ১০০-এর গুণিতক হওয়া বছরগুলোর ক্ষেত্রে ব্যতিক্রম করা হয়েছিল। শতাব্দীর বছরগুলো তখনই লিপ ইয়ার হবে যদি সেগুলো ৪০০ দ্বারা সম্পূর্ণরূপে বিভাজ্য হয়।

লিপ ইয়ার নির্ধারণের নিয়মগুলো তখন নিম্নরূপ হয়ে দাঁড়ায়:

  • যে বছরের সংখ্যা ৪০০-এর গুণিতক, সেটি একটি লিপ ইয়ার।
  • অবশিষ্ট যে বছরগুলো ১০০-এর গুণিতক, সেগুলো লিপ ইয়ার নয় (উদাহরণস্বরূপ ১৭০০, ১৮০০, ১৯০০, ২১০০, ২২০০, ২৩০০ সাল)।
  • অবশিষ্ট যে বছরগুলো ৪-এর গুণিতক, সেগুলো লিপ ইয়ার।
  • অন্য সমস্ত বছর লিপ ইয়ার নয়।

সুতরাং, ১৭০০, ১৮০০ এবং ১৯০০ সাল লিপ ইয়ার নয় কারণ সেগুলো ১০০-এর গুণিতক কিন্তু ৪০০-এর নয়। তবে, ১৬০০ এবং ২০০০ সাল লিপ ইয়ার কারণ এগুলো ৪০০-এর গুণিতক।

চলুন আমাদের সমস্যায় ফিরে যাই।

আমরা জানি যে:

  • যদি কোনো বছরের সংখ্যা mod 4 = 0 হয়, এবং বছরের সংখ্যা mod 100 ≠ 0 হয়, তবে সেটি একটি লিপ ইয়ার।
  • যদি কোনো বছরের সংখ্যা mod 400 = 0 হয়, তবে সেটি একটি লিপ ইয়ার।
  • অন্য যেকোনো ক্ষেত্রে, এটি লিপ ইয়ার নয়।

একটি সাধারণ পাইথন (Python) স্ক্রিপ্টের মাধ্যমে, আপনি সহজেই নির্ণয় করতে পারেন যে কোনো নির্দিষ্ট বছর লিপ ইয়ার কিনা। এটি দেখতে এমন হবে:

year = int(input('Enter year: '))

if (year%4 == 0 and year%100 != 0) or (year%400 == 0) :

	print(year, "is a leap year.")

else:

	print(year, "is not a leap year.")

প্রোগ্রামিংয়ে মডুলো অপারেটরের জনপ্রিয় প্রয়োগগুলোর মধ্যে রয়েছে:

  • কোনো সংখ্যা জোড় না বিজোড় তা নির্ণয় করা;
  • একটি তালিকার প্রতিটি N-তম উপাদানের উপর একটি নির্দিষ্ট অপারেশন সম্পাদন করা;
  • কোনো সংখ্যাকে একটি নির্দিষ্ট সীমার (range) মধ্যে সীমাবদ্ধ রাখা;
  • সীমিত অপশনগুলোর মধ্যে রোটেশন বা চক্রাকারে ঘোরা (সার্কুলার অ্যারে);
  • একটি সংখ্যাকে বিপরীত বা রিভার্স করা;
  • লিনিয়ার ডেটাকে ম্যাট্রিক্সে রূপান্তর করা;
  • অ্যারেগুলো একে অপরের রোটেটেড (rotated) সংস্করণ কিনা তা নির্ণয় করা;
  • পেজিনেশন (Pagination)।

র‍্যান্ডম নাম্বার জেনারেটর

কন্ট্রোল নম্বর তৈরি করতে এবং একটি নির্দিষ্ট সীমার মধ্যে সিউডো-র‍্যান্ডম (pseudo-random) নম্বর জেনারেট করতে কম্পিউটার হার্ডওয়্যার এবং টেলিযোগাযোগের সরঞ্জামগুলোতে প্রায়শই মডুলো পাটিগণিত ব্যবহৃত হয়। এর একটি ক্লাসিক উদাহরণ হলো লিনিয়ার কনগ্রুয়েনশিয়াল জেনারেটর (linear congruential generator), যা ১৯৪৯ সালে ডেরিক হেনরি লেহমার দ্বারা প্রস্তাবিত একটি পদ্ধতি।

লিনিয়ার কনগ্রুয়েনশিয়াল পদ্ধতি নিচের সূত্র অনুযায়ী কাজ করে:

$$X_{n+1} = (a × X_n + c)\mod m$$

যেখানে:

  • m হলো মডুলো,
  • a হলো গুণক,
  • c হলো ইনক্রিমেন্ট বা বৃদ্ধির পরিমাণ, এবং
  • X₀ হলো প্রাথমিক বা প্রারম্ভিক মান।

উদাহরণস্বরূপ, m = 11, X₀ = 9, a = 9, c = 9 এর জন্য, আমরা র‍্যান্ডম নম্বরগুলোর নিচের সিরিজটি পাই:

9, 2, 5, 10, 0, 9, 2, 5, 10, 0, 9

ক্রিপ্টোগ্রাফি

ক্রিপ্টোগ্রাফাররা মডুলো অপারেটরের উপর ব্যাপকভাবে নির্ভর করেন। যখন বিশাল সংখ্যার ক্ষেত্রে এটি প্রয়োগ করা হয়, তখন মডুলো "ওয়ান-ওয়ে ফাংশন" (one-way functions) নামে পরিচিত এক বিশেষ ফাংশন তৈরি করতে সাহায্য করে। এই বিশেষ ফাংশনগুলো একদিকে ফলাফল গণনা করাকে কম্পিউটেশনালি সহজ করে তোলে, কিন্তু এর রিভার্স-ইঞ্জিনিয়ারিং করা অবিশ্বাস্য রকমের কঠিন করে তোলে।

উদাহরণস্বরূপ, যদি আপনাকে বলা হয় যে কোনো সংখ্যার বর্গের ফলাফল হলো ৯, তবে আপনি দ্রুতই অনুমান করতে পারবেন যে ইনপুটটি ছিল ৩। শুরু থেকে শেষ পর্যন্ত প্রক্রিয়াটি ট্র্যাক করা সহজ। কিন্তু, আমি যদি আপনাকে বলি যে x mod 29 এর ফলাফল হলো ৯, তবে আসল ইনপুটটি খুঁজে বের করা অনেক বেশি কঠিন।

ক্রিপ্টোগ্রাফাররা দৈত্যাকার মৌলিক সংখ্যা (prime numbers) তৈরি করতে এবং অত্যন্ত সুরক্ষিত ক্রিপ্টোগ্রাফিক কী (cryptographic keys) গঠন করতে এই গাণিতিক বৈশিষ্ট্যটি ব্যবহার করেন।

উপসংহার

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

সাধারণ মডুলাস সমস্যাগুলো স্বজ্ঞাতভাবে বা মনে মনে সমাধান করা গেলেও, বড় ডেটাসেটের ক্ষেত্রে ম্যানুয়াল হিসাবগুলো খুব দ্রুত জটিল হয়ে উঠতে পারে। দ্রুত, নির্ভুল এবং ঝামেলামুক্ত ফলাফলের জন্য, সঠিক সমাধান পেতে সর্বদা একটি অনলাইন মডুলাস ক্যালকুলেটর ব্যবহার করার জন্য দৃঢ়ভাবে সুপারিশ করা হয়।