मैं मोड के व्यवहार और जावा के बिगइंटर वर्ग के modInverse के व्यवहार को समझने की कोशिश कर रहा हूं क्योंकि वे काम नहीं करेंगे जैसा कि मैं उम्मीद करता हूं।जावा बिगइन्टर मोड इनवर्क्स और मोडपा
BigInteger a = BigInteger.valueOf(2);
BigInteger b = BigInteger.valueOf(5);
BigInteger n1 = new BigInteger(32, 100, new SecureRandom());
System.out.println("n = " + n1);
System.out.println("a^b = " + a.modPow(b, n1) + " ;; (a^b)^(b^-1) = " + a.modPow(b, n1).modPow(b.modInverse(n1), n1));
उत्पादन मैं मिलता है:
n = 2664021049 (This is a random prime, can change each run)
a^b = 32 ;; (a^b)^(b^-1) = 4
अब, मैं करने के लिए अंतिम पंक्ति में वहाँ 4
उम्मीद करेंगे हो सकता है कि मैं कुछ सरल याद आ रही है, इसलिए यहाँ कोड का एक बहुत ही सरल टुकड़ा है 2
हो, क्योंकि यह (a^b)^(1/b) = a^(b*(1/b)) = a
क्या यह एक मॉड्यूलो फ़ील्ड में भी काम करना चाहिए?
मैं क्या गलत कर रहा हूं?
'(ए^बी)^(1/बी) = ए^(बी * (1/बी)) - जो मॉड्यूलर इनवर्क्स के लिए नहीं है। – user2357112
तो क्या कोई दूसरा तरीका है जो '(ए^बी) 'और' बी' मुझे' ए 'मिला है? – user7295333