ریاضی کے کیلکولیٹرز
موڈیولو کیلکولیٹر


موڈیولو کیلکولیٹر

ہمارے مفت موڈیولو کیلکولیٹر سے کسی بھی تقسیم کا بقیہ (remainder) فوری معلوم کریں۔ مثبت اور منفی اعداد کی سپورٹ کے ساتھ مینوئل موڈیولس کا طریقہ کار سیکھیں۔

موڈیولو

1

آپ کے حساب میں ایک خرابی تھی۔

فہرستِ مضامین

  1. موڈیولس کیلکولیٹر کے بغیر حسابات
    1. مثال
  2. موڈیولو کے اصول کا گھڑی سے مظاہرہ
    1. مثال
  3. موڈیولو کا استعمال
    1. جفت اور طاق اعداد کا تعین
    2. اکائیوں کی تبدیلی (Unit Conversion)
    3. لیپ سال (Leap Year) کا تعین
  4. رینڈم نمبر جنریٹرز (Random Number Generators)
    1. کرپٹوگرافی (Cryptography)
  5. نتیجہ

موڈیولو کیلکولیٹر

موڈیولو آپریشن (modulo operation) ایک ریاضیاتی طریقہ ہے جو تقسیم کے عمل کا بقیہ (remainder) معلوم کرنے کے لیے استعمال ہوتا ہے۔ خاص طور پر، موڈیولو دو اعداد کا جائزہ لیتا ہے اور بقیہ کو ایک مکمل عدد (whole number) کے طور پر واپس کرتا ہے۔

فرض کریں آپ کے تین بچے ہیں، اور آپ 20 کینڈیز کا ایک ڈبہ خریدتے ہیں۔ آپ کینڈیز کو ان کے درمیان برابر اور منصفانہ طور پر تقسیم کرنا چاہتے ہیں، اور بچ جانے والی کینڈیز کو ٹکڑے کیے بغیر اپنے لیے رکھنا چاہتے ہیں۔ چونکہ آپ کے بچے ابھی اسکول میں ہیں، آپ پہلے سے ہی بقیہ کا حساب لگا سکتے ہیں، جس سے آپ اپنا حصہ الگ کر سکتے ہیں۔

یہ موڈیولو آپریٹر (modulo operator) استعمال کرنے کا ایک بہترین منظر نامہ ہے، جسے اکثر % کے نشان یا مخفف mod سے ظاہر کیا جاتا ہے۔ اگرچہ آپ چھوٹے اعداد کے لیے آسانی سے ذہن میں ہی موڈیولو کا حساب لگا سکتے ہیں، لیکن بڑے اعداد کے ساتھ کام کرنا ایک مخصوص موڈیولو کیلکولیٹر کے استعمال سے زیادہ تیز اور آسان ہو جاتا ہے۔

مساوات کو اس طرح پیش کیا جا سکتا ہے:

مقسوم (Dividend) = (حاصلِ قسمت (Quotient) × مقسوم علیہ (Divisor)) + بقیہ (Remainder)

ہماری مثال میں:

  • مقسوم 20 ہے (کینڈیز کی کل تعداد)؛
  • مقسوم علیہ 3 ہے (بچوں کی تعداد)؛
  • حاصلِ قسمت 6 ہے (ہر بچے کے لیے کینڈیز کی تعداد)؛
  • بقیہ 2 ہے (ان کینڈیز کی تعداد جو آپ اپنے لیے رکھ سکتے ہیں)۔

اگر آپ موڈیولو آپریشن کا استعمال کرتے ہیں، تو آپ اسے درج ذیل شکل میں لکھ سکتے ہیں:

x % y = r

یا

x mod y = r

جہاں x مقسوم، y مقسوم علیہ، اور r بقیہ ہے۔

ہماری مثال میں،

20 % 3 = 2

موڈیولس کیلکولیٹر کے بغیر حسابات

آئیے ایک مخصوص حقیقی دنیا کی مثال لیتے ہیں۔

مثال

وایان (Wayan) بالی میں رہتا ہے اور چھ رہائشی یونٹس پر مشتمل ایک چھوٹا گیسٹ ہاؤس بنا رہا ہے۔ وہ باتھ رومز میں ٹائلیں لگانے کی تیاری کر رہا ہے۔ اس کا پڑوسی گیڈے (Gede)، جس نے حال ہی میں اپنا ہوٹل مکمل کیا ہے، وایان کو اپنی بچی ہوئی ٹائلیں خریدنے پر ایک بڑی رعایت پیش کرتا ہے۔

گیڈے نے اپنے گودام میں 15 ڈبوں کو گنا، جن میں سے ہر ایک میں 4 معیاری ٹائلیں (60 × 60 سینٹی میٹر) تھیں، اس کے علاوہ دو کھلی ٹائلیں بھی تھیں۔ کل ملا کر یہ 62 ٹائلیں بنتی ہیں۔ گیڈے پوری کھیپ ایک ساتھ فروخت کرنا چاہتا ہے۔

اب وایان کو یہ معلوم کرنا ہے کہ وہ اس کھیپ کے ساتھ کتنے باتھ رومز میں مکمل طور پر ٹائلیں لگا سکتا ہے—اور کتنی ٹائلیں غیر استعمال شدہ بچ جائیں گی۔

آپ موڈیولو آپریٹر کیلکولیٹر کے بغیر دستی طور پر موڈیولس کیسے معلوم کریں گے؟

وایان نے اپنے گیسٹ ہاؤس میں ایک معیاری باتھ روم کی پیمائش کی اور اسے اندازہ ہوا کہ اسے ہر کمرے کے لیے بالکل 14 ٹائلیں درکار ہیں۔

آئیے دستی حساب لگائیں!

  1. ایک ابتدائی عدد یا مقسوم (dividend) طے کریں۔ ہماری مثال میں، یہ 62 ہے، یعنی ان ٹائلوں کی تعداد جو پڑوسی پیش کر رہا ہے۔
  2. مقسوم علیہ (divisor) کا تعین کریں۔ یہ 14 ہے—جو ایک معیاری باتھ روم کے لیے درکار ٹائلوں کی بالکل درست تعداد ہے۔
  3. مقسوم کو مقسوم علیہ سے تقسیم کریں اور نتیجہ کو نیچے کی طرف مکمل عدد (whole number) میں راؤنڈ کریں۔ 62 / 14 = 4.428571428571429 یا 4۔ لہذا وایان چار باتھ رومز میں مکمل ٹائلیں لگا سکتا ہے۔
  4. تقسیم کے راؤنڈ کیے گئے نتیجے کو مقسوم علیہ سے ضرب دیں۔ یہ 4 × 14 = 56 ہے۔ یہ چار کمروں کے لیے درکار ٹائلوں کی کل تعداد کو ظاہر کرتا ہے۔
  5. اس ضرب کے نتیجے کو اصل مقسوم میں سے تفریق (منہا) کریں۔ یعنی 62 - 56 = 6۔ یوں وایان کے پاس چھ اضافی ٹائلیں بچتی ہیں۔

ایک سادہ اور مختصر انداز میں، ہم اس عمل کو یوں لکھ سکتے ہیں:

62 % 14 = 6

یا

62 mod 14 = 6

وایان فیصلہ کرتا ہے کہ یہ ایک زبردست سودا ہے کیونکہ کٹائی یا حادثاتی ٹوٹ پھوٹ کے لیے تقریباً 10% ریزرو رکھنا ہمیشہ دانشمندی ہوتی ہے۔ وہ باقی دو باتھ رومز کے لیے درکار ٹائلیں بآسانی کسی مقامی ہارڈویئر اسٹور سے خرید سکتا ہے۔

اگرچہ دستی ریاضی کارآمد ہے، لیکن ایک آن لائن موڈ کیلکولیٹر سیکنڈوں میں بالکل یہی نتیجہ فراہم کر سکتا ہے۔

موڈیولو کے اصول کا گھڑی سے مظاہرہ

موڈیولر ارتھمیٹک (Modular arithmetic) ریاضی کی ایک شاخ ہے جو دوری ساختوں (cyclic structures) سے متعلق ہے۔ اس کا تصور کرنے کا سب سے آسان طریقہ 12 گھنٹے کے چکر والی ایک معیاری گھڑی ہے۔ ریاضی کی اصطلاح میں، گھڑی mod 12 پر کام کرتی ہے۔

اگر آپ یہ جاننا چاہتے ہیں کہ کیا 251 گھنٹے بغیر کسی بقیہ کے پورے دنوں میں مکمل طور پر تقسیم ہوتے ہیں، تو آپ یہ عمل لاگو کریں گے:

251 mod 24

نتیجہ 11 ہے، جس کا مطلب ہے کہ 11 گھنٹے کا بقیہ موجود ہے۔ لہذا، جواب نہیں ہے! یہ صرف اسی صورت میں مکمل طور پر تقسیم ہوگا اگر نتیجہ 0 ہو۔

مثال

ڈینیل اٹلانٹا سے میامی کے لیے بس لینا چاہتا ہے۔ بس دوپہر 1 بجے نکلتی ہے اور سفر میں 15 گھنٹے لگتے ہیں۔ جب وہ پہنچے گا تو کیا وقت ہوگا؟ اس کا حساب یوں ہوگا:

1 + 15 mod 12

جو کہ 4 ہے۔ اس کے معاملے میں، وہ صبح 4 بجے پہنچے گا۔

موڈیولو کا استعمال

جفت اور طاق اعداد کا تعین

موڈیولس آپریٹر کا ایک انتہائی بنیادی استعمال یہ معلوم کرنا ہے کہ آیا کوئی عدد جفت (even) ہے یا طاق (odd)۔ یہ بالکل بے عیب کام کرتا ہے کیونکہ x % 2 ہمیشہ یا تو 0 دیتا ہے یا 1۔ جفت اعداد ہمیشہ 0 واپس کریں گے کیونکہ وہ 2 پر مکمل طور پر تقسیم ہوتے ہیں، جبکہ طاق اعداد ہمیشہ 1 کا بقیہ دیں گے۔

پروگرامنگ میں اس کا سب سے عام استعمال ٹیبل دکھاتے وقت قطاروں (rows) کے رنگوں کو باری باری تبدیل کرنا ہے۔ مثال کے طور پر، اگر آپ چاہتے ہیں کہ قطاریں ہلکے نیلے اور ہلکے سرمئی رنگ کے درمیان بدلتی رہیں، تو آپ یہ جانچنے کے لیے موڈیولو آپریٹر استعمال کر سکتے ہیں کہ موجودہ قطار کا نمبر جفت ہے یا طاق۔

اکائیوں کی تبدیلی (Unit Conversion)

یونٹ کنورژن (اکائیوں کی تبدیلی) موڈیولو آپریشن کے عملی استعمال کی ایک کلاسک مثال ہے۔ اس کا کثرت سے استعمال تب ہوتا ہے جب کسی چھوٹی اکائی، جیسے منٹ، انچ، یا سینٹی میٹر کو بڑی اکائی، جیسے گھنٹے، میل، یا کلومیٹر میں تبدیل کیا جا رہا ہو۔ ان حالات میں اعشاری (decimal) یا کسر (fractional) والے اعداد ہمیشہ مددگار نہیں ہوتے۔

مثال کے طور پر، اگر ہم 373 منٹ میں گھنٹوں کی تعداد معلوم کرنا چاہتے ہیں، تو نتیجہ کو 6.2166666666666666667 گھنٹے کہنے کے بجائے 6 گھنٹے اور 13 منٹ کے طور پر ظاہر کرنا زیادہ عملی ہے۔

معیاری تقسیم (جو قریبی مکمل عدد تک راؤنڈ ڈاؤن کی گئی ہو) گھنٹوں کی کل تعداد کا تعین کرتی ہے، جبکہ موڈیولو کا عمل بقیہ منٹوں کا حساب لگاتا ہے۔ چاہے آپ وقت، فاصلہ، دباؤ، توانائی، یا ڈیٹا اسٹوریج سے نمٹ رہے ہوں، آپ اکائیوں کو آسانی سے تبدیل کرنے کے لیے اس عمومی نقطہ نظر کو لاگو کر سکتے ہیں۔

لیپ سال (Leap Year) کا تعین

موڈیولو آپریٹر کی ایک اور عملی مثال یہ حساب لگانا ہے کہ آیا کوئی مخصوص سال لیپ سال ہے یا نہیں۔

لیپ سال ایک ایسا کیلنڈر سال ہے جس میں شمسی کیلنڈر کے اندر ایک اضافی دن—29 فروری—شامل ہوتا ہے۔

1 جنوری، 45 قبل مسیح کو، رومی ڈکٹیٹر جولیس سیزر نے ایک کیلنڈر متعارف کرایا جو روم میں اسکندریہ کے ماہرین فلکیات نے تیار کیا تھا۔ یہ کیلنڈر اس حساب پر مبنی تھا کہ ایک فلکیاتی سال تقریباً 365.25 دن (365 دن اور 6 گھنٹے) کا ہوتا ہے۔ اسے جولین کیلنڈر (Julian calendar) کے نام سے جانا جانے لگا۔

چھ گھنٹے کے اس فرق کو متوازن کرنے کے لیے، سیزر نے لیپ سال متعارف کرایا۔ مسلسل تین سالوں کے لیے، 365 دن ہوتے تھے۔ ہر چوتھے سال (چار کا ضرب / multiple of four)، فروری میں ایک اضافی دن شامل کیا گیا۔

تاہم، جوں جوں صدیاں گزرتی گئیں، یہ بات سامنے آئی کہ صرف یہ اصول مکمل طور پر درست نہیں تھا۔

اوسط ٹراپیکل سال (دو بہاریہ اعتدال یا vernal equinoxes کے درمیان کا وقت) 365 دن، 5 گھنٹے، اور 49 منٹ کے زیادہ قریب ہے۔ اوسط ٹراپیکل سال اور جولین کیلنڈر کے سال کے درمیان فرق تقریباً 11 منٹ کا تھا۔ 128 سالوں کے دوران، یہ 11 منٹ جمع ہو کر ایک پورا اضافی دن بن گئے۔

جمع ہونے والی اس خامی کو دور کرنے اور مستقبل میں موسموں کی تبدیلیوں سے بچنے کے لیے، پوپ گریگوری ہشتم نے 1582 میں کیلنڈر میں اصلاحات کیں۔ انہوں نے لیپ سال کے اضافی اصول متعارف کرائے۔ لیپ سال اب بھی چار کے ضرب (multiples) تھے، لیکن ان سالوں کے لیے استثناء رکھا گیا جو 100 کے ضرب تھے۔ صدی والے سال صرف اسی صورت میں لیپ سال ہوں گے جب وہ 400 پر بھی مکمل طور پر تقسیم ہو سکیں۔

لیپ سال کے تعین کے اصول یوں بن گئے:

  • وہ سال جس کا عدد 400 کا ضرب (multiple) ہے، ایک لیپ سال ہے۔
  • باقی سال جن کا کل 100 کا ضرب ہے وہ لیپ سال نہیں ہیں (مثال کے طور پر سال 1700، 1800، 1900، 2100، 2200، 2300)۔
  • باقی سال، جن کا عدد 4 کا ضرب ہے، وہ لیپ سال ہیں۔
  • دیگر تمام سال لیپ سال نہیں ہیں۔

اس طرح، سال 1700، 1800، اور 1900 لیپ سال نہیں ہیں کیونکہ وہ 100 کے ضرب ہیں لیکن 400 کے نہیں۔ تاہم، سال 1600 اور 2000 لیپ سال ہیں کیونکہ وہ 400 کے ضرب ہیں۔

آئیے اپنے مسئلے کی طرف واپس چلتے ہیں۔

ہم جانتے ہیں کہ:

  • اگر ایک سال کا نمبر 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ویں آئٹم پر کوئی خاص عمل (operation) انجام دینا؛
  • کسی عدد کو ایک مخصوص حد (range) تک محدود کرنا؛
  • محدود اختیارات (circular array) کے درمیان گردش کرنا؛
  • کسی عدد کو الٹنا (reverse کرنا)؛
  • لینیئر ڈیٹا کو میٹرکس میں تبدیل کرنا؛
  • یہ تعین کرنا کہ آیا ایریز (arrays) ایک دوسرے کے گھمائے ہوئے (rotated) ورژن ہیں؛
  • پیجینیشن (Pagination / صفحات کی ترتیب)۔

رینڈم نمبر جنریٹرز (Random Number Generators)

کمپیوٹر ہارڈویئر اور ٹیلی کمیونیکیشن آلات میں کنٹرول نمبرز بنانے اور ایک محدود رینج کے اندر سیوڈو-رینڈم (pseudo-random) نمبرز پیدا کرنے کے لیے موڈیولو ارتھمیٹک کا کثرت سے استعمال ہوتا ہے۔ اس کی ایک کلاسک مثال لینیئر کنگروینشل جنریٹر (linear congruential generator) ہے، جو ایک طریقہ کار ہے جسے 1949 میں ڈیرک ہنری لہمر (Derrick Henry Lehmer) نے پیش کیا۔

لینیئر کنگروینشل کا طریقہ مندرجہ ذیل فارمولے کے مطابق کام کرتا ہے:

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

جہاں:

  • m موڈیولو ہے،
  • a ملٹیپلائر (multiplier) ہے،
  • c انکریمنٹ (increment) ہے، اور
  • X₀ ابتدائی قدر (initial value) ہے۔

مثال کے طور پر، m = 11, X₀ = 9, a = 9, c = 9 کے لیے، ہمیں بے ترتیب نمبرز کی درج ذیل سیریز ملتی ہے:

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

کرپٹوگرافی (Cryptography)

کرپٹوگرافر موڈیولو آپریٹر پر بہت زیادہ انحصار کرتے ہیں۔ جب بڑے نمبروں پر لاگو کیا جاتا ہے، تو موڈیولو ایسی فنکشنز بنانے میں مدد کرتا ہے جنہیں "ون-وے فنکشنز" (one-way functions) کہا جاتا ہے۔ یہ خصوصی فنکشنز ایک سمت میں نتیجے کا حساب لگانا تو کمپیوٹیشنل طور پر آسان بناتی ہیں، لیکن ان کو ریورس انجینئر کرنا انتہائی مشکل ہوتا ہے۔

مثال کے طور پر، اگر آپ کو بتایا جائے کہ 9 کسی عدد کے مربع (square) کا نتیجہ ہے، تو آپ فوراً نتیجہ اخذ کر سکتے ہیں کہ ان پٹ 3 تھا۔ اس عمل کو شروع سے آخر تک ٹریک کرنا آسان ہے۔ تاہم، اگر میں آپ کو بتاؤں کہ 9 دراصل x mod 29 کا نتیجہ ہے، تو اصل ان پٹ کا پتہ لگانا بہت زیادہ مشکل ہو جاتا ہے۔

کرپٹوگرافر اس ریاضیاتی خاصیت کا استعمال دیوہیکل مفرد اعداد (prime numbers) پیدا کرنے اور انتہائی محفوظ کرپٹوگرافک کیز (keys) بنانے کے لیے کرتے ہیں۔

نتیجہ

چاہے آپ اشیاء کو کنٹینرز میں برابر تقسیم کر رہے ہوں، یہ چیک کر رہے ہوں کہ ایک عدد دوسرے پر مکمل طور پر تقسیم ہوتا ہے یا نہیں، یا محض وقت کا حساب لگا رہے ہوں، موڈیولو آپریشن عالمگیر سطح پر لاگو ہوتا ہے۔ ان تمام صورتحال میں، بقیہ معلوم کرنا بالکل اتنا ہی اہم ہے جتنا کہ تقسیم کے عمل میں حاصلِ قسمت (quotient) معلوم کرنا۔

اگرچہ موڈیولس کے سادہ مسائل کو وجدانی (intuitively) طور پر حل کیا جا سکتا ہے، لیکن بڑے ڈیٹا سیٹس کے ساتھ دستی حسابات تیزی سے پیچیدہ ہو سکتے ہیں۔ تیز، درست، اور پریشانی سے پاک نتائج کے لیے، درست حل معلوم کرنے کے لیے ہمیشہ آن لائن موڈیولس کیلکولیٹر استعمال کرنے کی انتہائی سفارش کی جاتی ہے۔