Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ प्रोग्राम मोड्यूलर एक्सपोनेंशिएशन एल्गोरिदम लागू करने के लिए


यह मोड्यूलर एक्सपोनेंशिएशन एल्गोरिदम लागू करने के लिए एक C++ प्रोग्राम है।

एल्गोरिदम

Begin
function modular():
    // आर्गुमेंट्स: base, exp, mod.
    // फंक्शन बॉडी:
    res = 1 इनिशियलाइज़ करें
    while (exp > 0)
        if (exp % 2 == 1)
            res = (res * base) % mod
        exp = exp >> 1
        base = (base * base) % mod
    return res.
End

C++ कार्यान्वयन

#include <iostream>
using namespace std;

long long modular(long long base, long long exp, int mod) {
    long long res = 1;
    while (exp > 0) {
        if (exp % 2 == 1)
            res = (res * base) % mod;
        exp = exp >> 1;
        base = (base * base) % mod;
    }
    return res;
}

int main() {
    long long b, e;
    int mod;
    cout << "Enter Base: ";
    cin >> b;
    cout << "Enter Exponent: ";
    cin >> e;
    cout << "Enter Modular Value: ";
    cin >> mod;
    cout << modular(b, e, mod);
    return 0;
}

आउटपुट

Enter Base: 7
Enter Exponent: 6
Enter Modular Value: 26
25

व्याख्या

7⁶ mod 26 = 117649 mod 26 = 25। यह एल्गोरिदम O(log n) समय में काम करता है बाइनरी एक्सपोनेंशिएशन का उपयोग करके।

आवेदन

  • क्रिप्टोग्राफी (RSA, Diffie-Hellman)
  • बड़े नंबरों पर कम्प्यूटेशनल मैथमेटिक्स
  • कॉम्पिटिटिव प्रोग्रामिंग में मॉड्यूलर अर्थमेटिक
  1. - C++ प्रोग्राम: पार्क-मिलर यादृच्छिक संख्या जनरेशन एल्गोरिदम लागू करना

    पार्क-मिलर यादृच्छिक संख्या जनरेशन एल्गोरिदम यादृच्छिक संख्याएं उत्पन्न करने की एक और विधि है। इस प्रकार के यादृच्छिक संख्या जनरेटर (RNG) का एक सामान्य सूत्र है: X_{k+1} = g X(k) mod n जहां मॉड्यूलस n एक अभाज्य संख्या या अभाज्य संख्या की घात है, गुणक g, n मॉड्यूलो उच्च गुणात्मक क्रम का एक तत्व है,

  1. - C++ प्रोग्राम: इंटरपोलेशन सर्च एल्गोरिदम लागू करना

    बाइनरी सर्च तकनीक के लिए, सूचियों को समान भागों में विभाजित किया जाता है। इंटरपोलेशन सर्चिंग तकनीक के लिए, प्रक्रिया इंटरपोलेशन फॉर्मूला का उपयोग करके सटीक स्थिति का पता लगाने का प्रयास करेगी। अनुमानित स्थान ढूंढने के बाद, यह उस स्थान का उपयोग करके सूची को अलग कर सकता है। चूंकि यह हर बार सटीक स्थान

  1. - C++ प्रोग्राम: फिशर-येट्स एल्गोरिदम से ऐरे शफलिंग

    फिशर-येट्स एल्गोरिदम फिशर-येट्स एल्गोरिदम ऐरे तत्वों का यादृच्छिक क्रमपरिवर्तन उत्पन्न करता है, यानी यह ऐरे के सभी तत्वों को निष्पक्ष रूप से शफल करता है। सभी क्रमपरिवर्तन समान रूप से संभावित होते हैं। C++ प्रोग्राम उदाहरण #include <iostream> #include <cstdlib> #include <ctime> us