Wenn Sie das Problem ernst nehmen, versuchen Sie möglicherweise nicht, eine Lösung mit der geringsten Anzahl von Multiplikationen, sondern mit der niedrigsten Ausführungszeit zu finden.
Stellen Sie sich ein Modell vor, bei dem Sie in jedem Zyklus eine Multiplikation starten können, aber jede Multiplikation eine feste Anzahl von Zyklen benötigt, z. B. 3 Zyklen. Eine Methode zur Berechnung von x ^ n mit k Multiplikationen kann 3k Zyklen dauern (wenn jede Multiplikation von einem Ergebnis abhängt, das kurz zuvor berechnet wurde), während eine Methode mit mehr Multiplikationen möglicherweise schneller ausgeführt wird.
Zum Beispiel: Um x ^ 15 zu berechnen, können Sie in dieser Reihenfolge x ^ 2 = x * x, x ^ 3 = (x ^ 2) * x, x ^ 6 = (x ^ 3) ^ 2, x ^ 7 berechnen = x ^ 6 * x, x ^ 14 = (x ^ 7) ^ 2, x ^ 15 = x ^ 14 * x. Sechs Multiplikationen, die jedoch jeweils von der vorherigen abhängen.
Oder Sie berechnen x ^ 2, x ^ 4 = (x ^ 2) ^ 2, x ^ 3 = x ^ 2 * x, x ^ 5 = (x ^ 4) * x, x ^ 15 = x ^ 5 * x ^ 3, Sie haben also nur vier Multiplikationen, abhängig von den vorherigen Ergebnissen.