আমি এই জাতীয় একটি সহজ প্রশ্ন জিজ্ঞাসা করতে বিব্রত। আমার মেয়াদ আরও দুই সপ্তাহ শুরু হয় না তাই আমি কোনও অধ্যাপককে জিজ্ঞাসা করতে পারি না, এবং সাসপেন্স আমাকে মেরে ফেলবে।
2 মোড 4 = 2 কেন হয়?
আমি এই জাতীয় একটি সহজ প্রশ্ন জিজ্ঞাসা করতে বিব্রত। আমার মেয়াদ আরও দুই সপ্তাহ শুরু হয় না তাই আমি কোনও অধ্যাপককে জিজ্ঞাসা করতে পারি না, এবং সাসপেন্স আমাকে মেরে ফেলবে।
2 মোড 4 = 2 কেন হয়?
উত্তর:
মডুলো (মোড,%) হ'ল রিমাইন্ডার অপারেটর।
2%2 = 0 (2/2 = 1 remainder 0)
1%2 = 1 (1/2 = 0 remainder 1)
4%2 = 0 (4/2 = 2 remainder 0)
5%2 = 1 (5/2 = 2 remainder 1)
আপনি কলা এবং একদল লোক ব্যবহার করলে আরও সহজ।
বলুন আপনার কাছে 1 টি কলা এবং 6 জনের একটি দল রয়েছে, এটি আপনি প্রকাশ করবেন: 1 mod 6
/ 1 % 6
/ 1 modulo 6
।
আপনার গোষ্ঠীভুক্ত প্রতিটি ব্যক্তির ভাল পোষানো এবং সুখী হওয়ার জন্য আপনার 6 টি কলা প্রয়োজন।
সুতরাং আপনার যদি 1 টি কলা থাকে এবং এটি 6 জনের সাথে ভাগ করে নেওয়া প্রয়োজন তবে আপনি কেবলমাত্র ভাগ করতে পারবেন যদি আপনার কাছে প্রতিটি গ্রুপের সদস্যের জন্য 1 টি কলা থাকে, এটি 6 জন, তবে আপনার কাছে 1 টি কলা থাকবে (বাকিটি, কারও সাথে ভাগ করা হয়নি) গ্রুপ), একই 2 কলা জন্য যায়। তারপরে আপনার কাছে বাকি 2 টি কলা থাকবে (কিছুই ভাগ হয় না)।
তবে আপনি যখন 6 টি কলা পান, তখন আপনার খুশি হওয়া উচিত, কারণ তখন 6 জনের দলে প্রতিটি সদস্যের জন্য 1 টি কলা থাকে এবং যখন আপনি 6 জনের উপর সমস্ত 6 কলা ভাগ করে নেন তখন বাকী 0 বা কোনও কলা অবশিষ্ট থাকে না।
এখন, 7 টি কলা এবং 6 জন দলে দলে, আপনার তখন তা হবে 7 mod 6 = 1
, কারণ আপনি প্রত্যেককে 6 জন করে কলা দিয়েছেন, এবং 1 টি কলা বাকী।
জন্য 12 mod 6
বা 12 কলা 6 জনের এ ভাগ, প্রতিটি এক থেকে দুই কলা থাকবে এবং বাকি তারপর 0।
আমি এই সম্পর্কে খুব বিভ্রান্ত হয়ে পড়েছিলাম, মাত্র কয়েক মিনিট আগে। তারপরে আমি কাগজের টুকরোয় লম্বা হাত ধরে বিভাগটি করেছি এবং এটি উপলব্ধি করে:
কম্পিউটার যতদূর যাচ্ছে এই সমস্যাটি নিতে চলেছে। কম্পিউটারটি সেখানে থামবে এবং ২ টি প্রদান করে, যা "%" (মোড) যা চাইছে তা বোঝায়।
দশমিকের মধ্যে রাখার জন্য আমাদের প্রশিক্ষণ দেওয়া হয়েছে এবং যা চালিয়ে যেতে হবে যার কারণ এটি প্রথমে প্রতিদ্বন্দ্বী হতে পারে।
কেউ আমার সাথে যোগাযোগ করেছেন এবং প্রশ্নের মন্তব্যে আমার উত্তরটি আরও বিশদে ব্যাখ্যা করতে বলেছিলেন। সুতরাং আমি অন্য ব্যক্তিকে যেভাবে সহায়তা করতে পারি সেই ক্ষেত্রে আমি সেই ব্যক্তিকে জবাব দিয়েছি:
মডুলো অপারেশন আপনাকে ইউক্যালিডিয়ান বিভাজনের বাকি অংশ দেয় (যা কেবলমাত্র সংখ্যার সাথে কাজ করে, বাস্তব সংখ্যা নয়)। আপনার যদি A এর সাথে A = B * C + D (D <B সহ) থাকে তবে তারপরে A এর B এর ইউক্যালিডিয়ান বিভাগের ভাগফল সি হয় এবং বাকীটি ডি হয় যদি আপনি 2 দিয়ে 4 ভাগ করেন তবে ভাগফলটি হয় 0 এবং বাকি 2।
মনে করুন আপনার কাছে একটি জিনিস রয়েছে (যা আপনি কাটাতে পারবেন না)। এবং আপনি সেই পরিমাণ অবজেক্টগুলিকে বি লোকগুলিতে বিতরণ করতে চান। যতক্ষণ আপনার বি-এর চেয়ে বেশি অবজেক্ট থাকে আপনি তাদের প্রত্যেককে 1 টি দিয়ে যান এবং পুনরাবৃত্তি করুন। আপনার কাছে যখন বি এর চেয়ে কম অবজেক্ট থাকবে তখন আপনি থামবেন এবং বাকী অবজেক্ট রাখবেন। আপনি অপারেশনের পুনরাবৃত্তিটি কতবার করেছেন, সেই নাম্বার সিটিকে কল করুন, এটি ভাগফল। আপনি শেষে অবজেক্টের সংখ্যা রাখুন, যাক একে ডি বলুন, বাকিটি।
আপনার যদি 2 টি অবজেক্ট এবং 4 জন লোক থাকে। আপনার ইতিমধ্যে 4 টিরও কম অবজেক্ট রয়েছে। সুতরাং প্রতিটি ব্যক্তি 0 টি বস্তু পায় এবং আপনি 2 রাখেন।
এজন্য 2 মডুলো 4 2 হয়।
মোড অর্থ পুনরায় রেন্ডারটি যখন ভাগ করা হয়। সুতরাং 2 দ্বারা 4 বিভক্ত 0 টি বাকি 2 সহ with সুতরাং 2 মোড 4 2 হয়।
মডুলো হ'ল গাণিতিক বিভাগের অভিব্যক্তিটির পূর্ণসংখ্যা হিসাবে প্রকাশিত বাকী।
সুতরাং, ধরা যাক আপনি 90 পজিশনে পর্দার একটি পিক্সেল রেখেছেন যেখানে স্ক্রিনটি 100 পিক্সেল প্রশস্ত এবং 20 টি যুক্ত হবে এটি 10 পজিশনে মোড়ানো হবে কেন ... কারণ 90 + 20 = 110 অতএব 110% 100 = 10।
আমার এটি বোঝার জন্য আমি বিবেচনা করি যে মডিউলগুলি ভগ্নাংশের সংখ্যার পূর্ণসংখ্যা উপস্থাপনা। তবুও আপনি যদি অভিব্যক্তিটি পিছনের দিকে করেন এবং বাকী অংশটিকে ভগ্নাংশের সংখ্যা হিসাবে প্রসেস করেন এবং তারপরে ভাজকের সাথে যুক্ত করেন এটি আপনাকে আপনার আসল উত্তর দেবে।
উদাহরণ:
100
(A) --- = 14 mod 2
7
123
(B) --- = 8 mod 3
15
3
(C) --- = 0 mod 3
4
বিপরীত ইঞ্জিনিয়ার:
2 14(7) 2 98 2 100
(A) 14 mod 2 = 14 + --- = ----- + --- = --- + --- = ---
7 7 7 7 7 7
3 8(15) 3 120 3 123
(B) 8 mod 3 = 8 + --- = ----- + --- = --- + --- = ---
15 15 15 15 15 15
3 3
(B) 0 mod 3 = 0 + --- = ---
4 4
আমি মনে করি আপনি কীভাবে মডুলো সমীকরণটি পড়ছেন তা নিয়ে বিভ্রান্ত হচ্ছেন।
যখন আমরা একটি বিভাগ সমীকরণ লিখি যেমন 2/4
আমরা 2 দ্বারা 4 বিভক্ত করি।
যখন কোনও মডুলো সমীকরণ রচনা করা হয় যেমন 2 % 4
আমরা ভাগ করে দিই 2 by 4
(4 ওভারের চেয়ে 2 ভাবি) এবং বাকীটি ফিরে আসি।
এটি ইউক্লিড অ্যালগরিদম।
যেমন
একটি মোড বি = কে * বি + সি => একটি মোড বি = সি, যেখানে কে হল একটি পূর্ণসংখ্যা এবং সি এর উত্তর
4 মোড 2 = 2 * 2 + 0 => 4 মড 2 = 0
27 মোড 5 = 5 * 5 + 2 => 27 মোড 5 = 2
সুতরাং আপনার উত্তর হয়
2 মোড 4 = 0 * 4 + 2 => 2 মোড 4 = 2
এর জন্য:
2 mod 4
আমরা এই ছোট্ট সূত্রটি ব্যবহার করতে পারি কিছুটা চিন্তাভাবনা করার পরে, সম্ভবত এটি ইতিমধ্যে কোথাও সংজ্ঞায়িত করা হয়েছে যা আমি জানি না তবে আমার জন্য কাজ করে এবং এটি সত্যই কার্যকর।
A mod B = C
সি যেখানে উত্তর
K * B - A = |C|
যেখানে কে কতবার বি এ ফিট করে
2 mod 4
হবে:
0 * 4 - 2 = |C|
C = |-2| => 2
আশা করি এটা তোমার জন্য কাজ করবে :)
একটি মডুলোর উত্তর দিতে x % y
, আপনি দুটি প্রশ্ন জিজ্ঞাসা করুন:
এ- কতবার y
যায় x
বাকি ছাড়া? 2% 4 এর জন্য এটি 0।
বি- সেই থেকে ফিরে পেতে আপনাকে কত যোগ করতে হবে x
? 0 থেকে 2 এ ফিরে পেতে আপনার 2-0 অর্থাত্ 2 টি দরকার।
এই মত একটা প্রশ্ন সংকলিত আপ করা যাবে, সুতরাং: আপনি কত বিভাগের এর পূর্ণসংখ্যা পর ফলাফলের যোগ করতে হবে x
দ্বারা y
এ ফিরে পেতে x
?
পূর্ণসংখ্যা- ইশ দ্বারা এটি কেবলমাত্র পুরো সংখ্যা বোঝায় এবং আগ্রহের জন্য ভগ্নাংশ নয়।
একটি ভগ্নাংশ বিভাগ বাকী (যেমন .283849) মডুলোতে আগ্রহী নয় কারণ মডুলো কেবল পূর্ণসংখ্যার সংখ্যার সাথেই ডিল করে।
এটি সম্পর্কে চিন্তা করার জন্য একটি ঘড়ির মুখের চিত্র করুন যা আপনার নির্দিষ্ট উদাহরণে 12 এর পরিবর্তে কেবল 4 এ চলে যায় আপনি যদি ঘড়ির 4 থেকে শুরু করেন (যা শূন্য থেকে শুরু করার মতো) এবং এটি ঘড়ির কাঁটার দিকে ঘুরে দেখেন 2 "ঘন্টা", আপনি 2 এ অবতরণ করেন, ঠিক যেমন "ঘন্টার জন্য" ঘড়ির কাঁটার দিকে ঘুরে বেড়াতে চান আপনি 2 (6 মড 4 == 2 তে 2 মোড 4 == 2) এর মতোও অবতরণ করতে পারেন।
এটি মডারের () ফাংশনটি উল্লেখ করার জন্য ভাল সময় হতে পারে। এটি সম্পূর্ণ এবং একটি বিভাগের বাকি অংশগুলি উভয়ই প্রদান করে।
print("\n 17 // 3 =",17//3," # Does the same thing as int(17/3)")
print(" 17 % 3 =",17%3," # Modulo division gives the remainder.")
whole, remain = divmod(17,3)
print(" divmod(17,3) returns ->",divmod(17,3),end="")
print(" because 3 goes into 17,",whole,"times with a remainder of",remain,end=".\n\n")
2 = 0 * 4 + 2
।