Die binäre Exponentation ist ein Verfahren zur Rechenoptimierung von Potenzen. Sie reduziert die Anzahl an benötigten Multiplikationen.
Beispiel: 17^9 - Um diesen Ausdruck zu berechnen, benötigen Sie 8 Multiplikationen. Formen Sie in jedoch um, ist es auch mit weniger möglich:
17^9 = 17(17^4)² = 17[(17²)²]²
Sollten sich Ausdrücke innerhalb der Terme wiederholen, können diese in Variablen zwischengespeichert werden, um die Häufung selbiger Op. zu vermeiden.
Function BinExp(ByVal base As Integer, ByVal exp As Integer) As Long
BinExp = base
For Each d As Char In Convert.ToString(exp, 2).Remove(0, 1)
If d = "0" Then BinExp *= BinExp Else BinExp *= BinExp * base
Next
End Function
2 Kommentare zum Snippet