Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन में रूसी किसान गुणन को लागू करने का कार्यक्रम

मान लीजिए हमें चार पूर्णांक संख्याएँ p, q, r, और k दी गई हैं। हम रूसी किसान गुणन विधि नामक एक विधि का उपयोग करेंगे और (p + q.i)^r =r + s.i का मान निर्धारित करेंगे। हमें r mod k और s mod k का मान वापस करना होगा।

इसलिए, यदि इनपुट p =3, q ​​=0, r =8, k =10000 जैसा है, तो आउटपुट (6561, 0) 3^8 =6561 होगा, क्योंकि q =0 r mod k =6561 का मान होगा ।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • यदि r, 0 के समान है, तो
    • वापसी 1
  • अन्यथा जब r 1 के समान हो, तो
    • एक जोड़ी लौटाएं जिसमें (p mod k, q mod k) हो
  • अन्यथा जब r mod 2 0 के समान हो, तो
    • रिटर्न सॉल्व ((p*p - q*q) mod k, 2*p*q mod k, r/2, k)
  • अन्यथा,
    • एक जोड़ी (pr, qr) =हल करें(p, q, r-1, k)
    • एक जोड़ी लौटाएं जिसमें ((p * pr - q * qr) mod k, (p * qr + q * pr) mod k) हो

उदाहरण

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

def solve(p, q, r, k):
   if r == 0:
      return 1
   elif r == 1:
      return (p % k, q % k)
   elif r % 2 == 0:
      return solve((p*p - q*q) % k, 2*p*q % k, r/2, k)
   else:
      (pr, qr) = solve(p, q, r-1, k)
      return ((p * pr - q * qr) % k, (p * qr + q * pr) % k)

print(solve(3, 0, 8, 10000))

इनपुट

3, 0, 8, 10000

आउटपुट

(6561, 0)

  1. पायथन कार्यक्रम में साधारण रुचि

    इस लेख में, हम Python 3.x में साधारण ब्याज की गणना के बारे में जानेंगे। या पहले। साधारण रुचि भुगतानों के बीच बीते दिनों की संख्या से दैनिक ब्याज दर को मूल राशि से गुणा करके गणना की जाती है। गणितीय रूप से, साधारण ब्याज =(पी एक्स टी एक्स आर)/100 कहां, पी मूल राशि है T समय है और आर दर है उदाहर

  1. पायथन प्रोग्राम में सिलेक्शन सॉर्ट

    इस लेख में, हम Python 3.x में सिलेक्शन सॉर्ट और उसके कार्यान्वयन के बारे में जानेंगे। या पहले। चयन क्रम . में एल्गोरिथम, एक सरणी को पुनरावर्ती रूप से अनसोल्ड भाग से न्यूनतम तत्व ढूंढकर और शुरुआत में सम्मिलित करके सॉर्ट किया जाता है। किसी दिए गए सरणी पर चयन क्रम के निष्पादन के दौरान दो उप-सरणी बनते

  1. n . से विभाजित सरणी गुणन के अनुस्मारक खोजने के लिए पायथन कार्यक्रम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे - समस्या कथन कई संख्याओं और एक संख्या इनपुट n को देखते हुए, हमें n से विभाज्य सभी संख्या को गुणा करने के बाद शेष को प्रिंट करना होगा। दृष्टिकोण सबसे पहले, शेष की गणना arr[i]% n की तरह करें। फिर इस शेष को वर्तमान परिणाम से गुणा क