[PYTHON] Binäre Methode

Binäre Methode

Wenn $ x = a ^ k $ ist, wird die Quadratberechnung $ k $ mal durchgeführt. Um die Berechnung effizienter zu gestalten, besteht die binäre Methode darin, den Rechenaufwand auf $ log (k) $ zu beschränken, indem $ a ^ {2 ^ i} $ nacheinander ermittelt wird.

Konkretes Beispiel

5^{21}=5^{2^4}*5^{2^2}*5^{2^0}

Die Berechnung wird ausgeführt, indem auf eine Binärzahl erweitert und in der Reihenfolge von links erweitert wird. Als Ergebnis wird $ g ^ k (mod p) $ berechnet.

Algorithmus

binary.py


def Binary(k, g, p):
    k_binary = []
    while(k != 0):
        k_binary.append(k%2)
        k = k//2
        if k == 1:
            k_binary.append(k)
            k = 0
    y = 1
    for i in reversed(range(len(k_binary))):
        if k_binary[i] == 1:
            y = (y*y%p)*g%p
        else:
            y = (y*y%p)
    return y

Recommended Posts

Binäre Methode
Spezielle Methode
Spezielle Methode
Verstehen Sie die k-means-Methode
Clustering-Methode Clustering
Methode für Wörterbuchelemente
[PyTorch] So installieren Sie
N-Kreuz-Methode
Bildersammelmethode
Visualisieren Sie die binäre Suche
ABC146C (Dichotomie)
Methode der Regressionsanalyse
Implementierung der Gradientenmethode 1
Python-Peewee-Verbindungsmethode
Klassenmethode statische Methode
youtube-dl Update-Methode
Monte-Carlo-Methode
Modusanpassungsmethode Simulation_Python
Johnson-Methode (Python)
[Python] Semi-Lagrange-Methode