کوئی نتیجہ نہیں ملا
ہمیں اس وقت اس اصطلاح کے ساتھ کچھ نہیں ملا، کچھ اور تلاش کرنے کی کوشش کریں۔
ہمارے مفت موڈیولو کیلکولیٹر سے کسی بھی تقسیم کا بقیہ (remainder) فوری معلوم کریں۔ مثبت اور منفی اعداد کی سپورٹ کے ساتھ مینوئل موڈیولس کا طریقہ کار سیکھیں۔
موڈیولو
1
آپ کے حساب میں ایک خرابی تھی۔
موڈیولو آپریشن (modulo operation) ایک ریاضیاتی طریقہ ہے جو تقسیم کے عمل کا بقیہ (remainder) معلوم کرنے کے لیے استعمال ہوتا ہے۔ خاص طور پر، موڈیولو دو اعداد کا جائزہ لیتا ہے اور بقیہ کو ایک مکمل عدد (whole number) کے طور پر واپس کرتا ہے۔
فرض کریں آپ کے تین بچے ہیں، اور آپ 20 کینڈیز کا ایک ڈبہ خریدتے ہیں۔ آپ کینڈیز کو ان کے درمیان برابر اور منصفانہ طور پر تقسیم کرنا چاہتے ہیں، اور بچ جانے والی کینڈیز کو ٹکڑے کیے بغیر اپنے لیے رکھنا چاہتے ہیں۔ چونکہ آپ کے بچے ابھی اسکول میں ہیں، آپ پہلے سے ہی بقیہ کا حساب لگا سکتے ہیں، جس سے آپ اپنا حصہ الگ کر سکتے ہیں۔
یہ موڈیولو آپریٹر (modulo operator) استعمال کرنے کا ایک بہترین منظر نامہ ہے، جسے اکثر % کے نشان یا مخفف mod سے ظاہر کیا جاتا ہے۔ اگرچہ آپ چھوٹے اعداد کے لیے آسانی سے ذہن میں ہی موڈیولو کا حساب لگا سکتے ہیں، لیکن بڑے اعداد کے ساتھ کام کرنا ایک مخصوص موڈیولو کیلکولیٹر کے استعمال سے زیادہ تیز اور آسان ہو جاتا ہے۔
مساوات کو اس طرح پیش کیا جا سکتا ہے:
مقسوم (Dividend) = (حاصلِ قسمت (Quotient) × مقسوم علیہ (Divisor)) + بقیہ (Remainder)
ہماری مثال میں:
اگر آپ موڈیولو آپریشن کا استعمال کرتے ہیں، تو آپ اسے درج ذیل شکل میں لکھ سکتے ہیں:
x % y = r
یا
x mod y = r
جہاں x مقسوم، y مقسوم علیہ، اور r بقیہ ہے۔
ہماری مثال میں،
20 % 3 = 2
آئیے ایک مخصوص حقیقی دنیا کی مثال لیتے ہیں۔
وایان (Wayan) بالی میں رہتا ہے اور چھ رہائشی یونٹس پر مشتمل ایک چھوٹا گیسٹ ہاؤس بنا رہا ہے۔ وہ باتھ رومز میں ٹائلیں لگانے کی تیاری کر رہا ہے۔ اس کا پڑوسی گیڈے (Gede)، جس نے حال ہی میں اپنا ہوٹل مکمل کیا ہے، وایان کو اپنی بچی ہوئی ٹائلیں خریدنے پر ایک بڑی رعایت پیش کرتا ہے۔
گیڈے نے اپنے گودام میں 15 ڈبوں کو گنا، جن میں سے ہر ایک میں 4 معیاری ٹائلیں (60 × 60 سینٹی میٹر) تھیں، اس کے علاوہ دو کھلی ٹائلیں بھی تھیں۔ کل ملا کر یہ 62 ٹائلیں بنتی ہیں۔ گیڈے پوری کھیپ ایک ساتھ فروخت کرنا چاہتا ہے۔
اب وایان کو یہ معلوم کرنا ہے کہ وہ اس کھیپ کے ساتھ کتنے باتھ رومز میں مکمل طور پر ٹائلیں لگا سکتا ہے—اور کتنی ٹائلیں غیر استعمال شدہ بچ جائیں گی۔
آپ موڈیولو آپریٹر کیلکولیٹر کے بغیر دستی طور پر موڈیولس کیسے معلوم کریں گے؟
وایان نے اپنے گیسٹ ہاؤس میں ایک معیاری باتھ روم کی پیمائش کی اور اسے اندازہ ہوا کہ اسے ہر کمرے کے لیے بالکل 14 ٹائلیں درکار ہیں۔
آئیے دستی حساب لگائیں!
ایک سادہ اور مختصر انداز میں، ہم اس عمل کو یوں لکھ سکتے ہیں:
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) کے رنگوں کو باری باری تبدیل کرنا ہے۔ مثال کے طور پر، اگر آپ چاہتے ہیں کہ قطاریں ہلکے نیلے اور ہلکے سرمئی رنگ کے درمیان بدلتی رہیں، تو آپ یہ جانچنے کے لیے موڈیولو آپریٹر استعمال کر سکتے ہیں کہ موجودہ قطار کا نمبر جفت ہے یا طاق۔
یونٹ کنورژن (اکائیوں کی تبدیلی) موڈیولو آپریشن کے عملی استعمال کی ایک کلاسک مثال ہے۔ اس کا کثرت سے استعمال تب ہوتا ہے جب کسی چھوٹی اکائی، جیسے منٹ، انچ، یا سینٹی میٹر کو بڑی اکائی، جیسے گھنٹے، میل، یا کلومیٹر میں تبدیل کیا جا رہا ہو۔ ان حالات میں اعشاری (decimal) یا کسر (fractional) والے اعداد ہمیشہ مددگار نہیں ہوتے۔
مثال کے طور پر، اگر ہم 373 منٹ میں گھنٹوں کی تعداد معلوم کرنا چاہتے ہیں، تو نتیجہ کو 6.2166666666666666667 گھنٹے کہنے کے بجائے 6 گھنٹے اور 13 منٹ کے طور پر ظاہر کرنا زیادہ عملی ہے۔
معیاری تقسیم (جو قریبی مکمل عدد تک راؤنڈ ڈاؤن کی گئی ہو) گھنٹوں کی کل تعداد کا تعین کرتی ہے، جبکہ موڈیولو کا عمل بقیہ منٹوں کا حساب لگاتا ہے۔ چاہے آپ وقت، فاصلہ، دباؤ، توانائی، یا ڈیٹا اسٹوریج سے نمٹ رہے ہوں، آپ اکائیوں کو آسانی سے تبدیل کرنے کے لیے اس عمومی نقطہ نظر کو لاگو کر سکتے ہیں۔
موڈیولو آپریٹر کی ایک اور عملی مثال یہ حساب لگانا ہے کہ آیا کوئی مخصوص سال لیپ سال ہے یا نہیں۔
لیپ سال ایک ایسا کیلنڈر سال ہے جس میں شمسی کیلنڈر کے اندر ایک اضافی دن—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 پر بھی مکمل طور پر تقسیم ہو سکیں۔
لیپ سال کے تعین کے اصول یوں بن گئے:
اس طرح، سال 1700، 1800، اور 1900 لیپ سال نہیں ہیں کیونکہ وہ 100 کے ضرب ہیں لیکن 400 کے نہیں۔ تاہم، سال 1600 اور 2000 لیپ سال ہیں کیونکہ وہ 400 کے ضرب ہیں۔
آئیے اپنے مسئلے کی طرف واپس چلتے ہیں۔
ہم جانتے ہیں کہ:
پائتھون (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.")
پروگرامنگ میں موڈیولو آپریٹر کے مقبول استعمال درج ذیل ہیں:
کمپیوٹر ہارڈویئر اور ٹیلی کمیونیکیشن آلات میں کنٹرول نمبرز بنانے اور ایک محدود رینج کے اندر سیوڈو-رینڈم (pseudo-random) نمبرز پیدا کرنے کے لیے موڈیولو ارتھمیٹک کا کثرت سے استعمال ہوتا ہے۔ اس کی ایک کلاسک مثال لینیئر کنگروینشل جنریٹر (linear congruential generator) ہے، جو ایک طریقہ کار ہے جسے 1949 میں ڈیرک ہنری لہمر (Derrick Henry Lehmer) نے پیش کیا۔
لینیئر کنگروینشل کا طریقہ مندرجہ ذیل فارمولے کے مطابق کام کرتا ہے:
$$X_{n+1} = (a × X_n + c)\mod m$$
جہاں:
مثال کے طور پر، m = 11, X₀ = 9, a = 9, c = 9 کے لیے، ہمیں بے ترتیب نمبرز کی درج ذیل سیریز ملتی ہے:
9, 2, 5, 10, 0, 9, 2, 5, 10, 0, 9
کرپٹوگرافر موڈیولو آپریٹر پر بہت زیادہ انحصار کرتے ہیں۔ جب بڑے نمبروں پر لاگو کیا جاتا ہے، تو موڈیولو ایسی فنکشنز بنانے میں مدد کرتا ہے جنہیں "ون-وے فنکشنز" (one-way functions) کہا جاتا ہے۔ یہ خصوصی فنکشنز ایک سمت میں نتیجے کا حساب لگانا تو کمپیوٹیشنل طور پر آسان بناتی ہیں، لیکن ان کو ریورس انجینئر کرنا انتہائی مشکل ہوتا ہے۔
مثال کے طور پر، اگر آپ کو بتایا جائے کہ 9 کسی عدد کے مربع (square) کا نتیجہ ہے، تو آپ فوراً نتیجہ اخذ کر سکتے ہیں کہ ان پٹ 3 تھا۔ اس عمل کو شروع سے آخر تک ٹریک کرنا آسان ہے۔ تاہم، اگر میں آپ کو بتاؤں کہ 9 دراصل x mod 29 کا نتیجہ ہے، تو اصل ان پٹ کا پتہ لگانا بہت زیادہ مشکل ہو جاتا ہے۔
کرپٹوگرافر اس ریاضیاتی خاصیت کا استعمال دیوہیکل مفرد اعداد (prime numbers) پیدا کرنے اور انتہائی محفوظ کرپٹوگرافک کیز (keys) بنانے کے لیے کرتے ہیں۔
چاہے آپ اشیاء کو کنٹینرز میں برابر تقسیم کر رہے ہوں، یہ چیک کر رہے ہوں کہ ایک عدد دوسرے پر مکمل طور پر تقسیم ہوتا ہے یا نہیں، یا محض وقت کا حساب لگا رہے ہوں، موڈیولو آپریشن عالمگیر سطح پر لاگو ہوتا ہے۔ ان تمام صورتحال میں، بقیہ معلوم کرنا بالکل اتنا ہی اہم ہے جتنا کہ تقسیم کے عمل میں حاصلِ قسمت (quotient) معلوم کرنا۔
اگرچہ موڈیولس کے سادہ مسائل کو وجدانی (intuitively) طور پر حل کیا جا سکتا ہے، لیکن بڑے ڈیٹا سیٹس کے ساتھ دستی حسابات تیزی سے پیچیدہ ہو سکتے ہیں۔ تیز، درست، اور پریشانی سے پاک نتائج کے لیے، درست حل معلوم کرنے کے لیے ہمیشہ آن لائن موڈیولس کیلکولیٹر استعمال کرنے کی انتہائی سفارش کی جاتی ہے۔