Fermat से Modular Inverse
modulus के अंतर्गत सुरक्षित रूप से divide करें
Fermat से Modular Inverse, CoddyKit पर Competitive Programming Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Competitive Programming Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Competitive Programming Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
मॉड के अंतर्गत भाग विफल होता है
जोड़, घटाव और गुणा मॉड्यूलस के अंतर्गत अच्छी तरह काम करते हैं, लेकिन साधारण भाग नहीं करता। आप सीधे भाग देकर शेषफल नहीं ले सकते। ⚠️
भाग को गुणा से बदलिए
इसका समाधान मॉड्यूलर प्रतिलोम है: x से भाग देने का अर्थ x के प्रतिलोम से गुणा करना होता है। इसलिए a / b mod m को a को b के प्रतिलोम से गुणा करने में बदला जाता है।
प्रतिलोम क्या होता है
x का प्रतिलोम वह संख्या है जिसे x से मॉड्यूलस के अंतर्गत गुणा करने पर 1 मिलता है। साधारण अंकगणित में यह 1/x की भूमिका निभाता है।
# x * inv(x) % m == 1अभाज्य संख्याएँ इसे संभव बनाती हैं
प्रतिलोम तभी मौजूद होता है जब x और m में कोई समान गुणनखंड न हो। 1e9+7 जैसे अभाज्य मॉड्यूलस का उपयोग करने पर प्रत्येक अशून्य x का प्रतिलोम निश्चित रूप से होता है।
फर्मा के लघु प्रमेय से परिचित हों
फर्मा का लघु प्रमेय कहता है कि किसी अभाज्य p के लिए, यदि x, p का गुणज नहीं है, तो x की p माइनस 1वीं घात 1 के सर्वांगसम होती है।
# x^(p-1) % p == 1प्रतिलोम निकालिए
x का एक गुणनखंड अलग कर देने पर शेष भाग उसका प्रतिलोम होना चाहिए। इसलिए x का प्रतिलोम x की p माइनस 2वीं घात है, जिसका p से मॉड लिया गया हो।
# inv(x) = x^(p-2) % pतेज़ घातांक गणना से निकालिए
यह घातांक बहुत बड़ा है, इसलिए पिछले पाठ की तेज़ घातांक गणना का उपयोग कीजिए। Python में pow को एक बार बुलाने से पूरा काम हो जाता है।
inv = pow(x, MOD - 2, MOD)भाग करने के लिए इसका उपयोग कीजिए
मॉड के अंतर्गत a को b से भाग देने के लिए a को b के प्रतिलोम से गुणा कीजिए। शेषफल p के मॉड्यूलो में वास्तविक भागफल के बिल्कुल बराबर होता है।
ans = a * pow(b, MOD - 2, MOD) % MODशून्य का प्रतिलोम कभी न निकालें
0 का कोई प्रतिलोम नहीं होता, क्योंकि शून्य से गुणा करने पर कोई भी संख्या 1 नहीं दे सकती। मॉड्यूलस के अंतर्गत घटकर शून्य बनने वाले मान से भाग देने से पहले जाँच अवश्य कीजिए।
एक प्रतिलोम की लागत
फर्मा का प्रत्येक प्रतिलोम एक तेज़ घातांक गणना है, इसलिए इसमें O(log p) समय लगता है। कुछ भागों के लिए यह सस्ता है, लेकिन लाखों बार करने पर लागत बढ़ जाती है।
एक साथ प्रतिलोम निकालने का संकेत
जब आपको बहुत सारे प्रतिलोम चाहिए हों, तो प्रत्येक तत्व के लिए pow बुलाने के बजाय एक चतुर रैखिक चरण से उनकी पूर्व-गणना कीजिए। अगले पाठ में nCr के लिए आपको इसी पर निर्भर रहना होगा।
त्वरित जाँच
अभाज्य मॉड्यूलस के अंतर्गत कौन-सी घात मॉड्यूलर प्रतिलोम देती है?
पुनरावृत्ति
अब आप अभाज्य मॉड्यूलस के अंतर्गत मॉड्यूलर प्रतिलोम से गुणा करके भाग कर सकते हैं। यह प्रतिलोम pow द्वारा x की p माइनस 2वीं घात के रूप में मिलता है। बस शून्य का प्रतिलोम कभी न निकालें। ✅
एआई शिक्षक के साथ Python सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 30
- पाठ
- 120
अक्सर पूछे जाने वाले प्रश्न
क्या “Fermat से Modular Inverse” पाठ निःशुल्क है?
हाँ—“Fermat से Modular Inverse” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Competitive Programming Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Competitive Programming Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“Fermat से Modular Inverse” में मैं क्या सीखूँगा?
modulus के अंतर्गत सुरक्षित रूप से divide करें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Competitive Programming Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Competitive Programming Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Competitive Programming Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।
“Fermat से Modular Inverse” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Competitive Programming Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Competitive Programming Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- Prime के Modulo में काम करना
- Fast Modular Exponentiation
- Fermat से Modular Inverse
- Precomputed Factorials के साथ nCr