Russische Bauernmultiplikation
aus Wikipedia, der freien Enzyklopädie
Die Russische Bauernmultiplikation (auch Ägyptisches Multiplizieren oder Abessinische Bauernregel genannt) ist ein einfaches Verfahren zur Multiplikation zweier natürlicher Zahlen.
Es war schon im Altertum bekannt, in Deutschland wurde es bis ins Mittelalter verwendet. In Russland war es bis weit in die Neuzeit üblich, daher der Name.
Das Verfahren hat den Vorteil, dass man im Prinzip nur halbieren, verdoppeln und addieren können muss, das kleine Einmaleins wird nicht benötigt. Implizit wird eine schriftliche Multiplikation im Binärsystem durchgeführt.
Inhaltsverzeichnis |
[Bearbeiten] Verfahren
[Bearbeiten] Beschreibung
Und so funktioniert das Verfahren:
- Man schreibt die beiden zu multiplizierenden Zahlen nebeneinander.
- Auf der linken Seite werden die Zahlen jeweils halbiert (Reste abgerundet) und die Ergebnisse untereinander geschrieben, bis man zur 1 gelangt.
- Auf der rechten Seite werden die Zahlen verdoppelt und untereinander geschrieben.
- Die rechts stehenden (verdoppelten) Zahlen werden gestrichen, wenn die links stehende Zahl gerade ist.
- Die Summe der nicht gestrichenen rechts stehenden Zahlen ergibt das gesuchte Produkt.
[Bearbeiten] Algorithmus
Der folgende Algorithmus in Python soll die Funktion demonstrieren. In der Praxis eignet sich das Verfahren vor allem für die Rechnung mit binären Zahlen, da hier die Verdoppelung und die Halbierung durch eine einfache Bit-Verschiebung (left bzw. right shift) möglich ist:
def rusmul(a,b): """liefert das Produkt zweier natürlicher Zahlen a und b""" ergebnis = 0 while a > 0: rest = a % 2 # Modulo if rest == 1: ergebnis = ergebnis + b a = a - 1 b = b << 1 a = a >> 1 # Halbieren ohne Rest return ergebnis
[Bearbeiten] Beispiele
35 · 89 | |
35 | 89 |
17 | 178 |
8 | |
4 | |
2 | |
1 | 2848 |
Ergebnis | 3115 |
84 · 123 | |
84 | |
42 | |
21 | 492 |
10 | |
5 | 1968 |
2 | |
1 | 7872 |
Ergebnis | 10.332 |
[Bearbeiten] Analoges Verfahren: Binäre Exponentiation
Dieselbe Idee kann auch benutzt werden, um Potenzen mit großen ganzzahligen Exponenten zu berechnen: Der Exponent wird schrittweise halbiert und die Basis quadriert, am Ende werden die Potenzen mit ungeraden Exponenten aufmultipliziert. Dieses Verfahren heißt binäre Exponentiation.