Abessinischen Bauernregel

Abessinischen Bauernregel

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

Verfahren

Beschreibung

Und so funktioniert das Verfahren:

  1. Man schreibt die beiden zu multiplizierenden Zahlen nebeneinander.
  2. Auf der linken Seite werden die Zahlen jeweils halbiert (Reste abgerundet) und die Ergebnisse untereinander geschrieben, bis man zur 1 gelangt.
  3. Auf der rechten Seite werden die Zahlen verdoppelt und untereinander geschrieben.
  4. Die rechts stehenden (verdoppelten) Zahlen werden gestrichen, wenn die links stehende Zahl gerade ist.
  5. Die Summe der nicht gestrichenen rechts stehenden Zahlen ergibt das gesuchte Produkt.

Beispiel: 27 mal 82

A-Seite B-Seite Dies addieren 
27  82  82 
13  164  164 
328 
656  656 
1312  1312 
Ergebnis: 2214 

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 (Rest)
       if rest == 1: 
          ergebnis = ergebnis + b
          a = a - 1
       b = b << 1            # Verdopplung
       a = a >> 1            # Halbieren ohne Rest
   return ergebnis

Beispiele

35 · 89
35 89
17 178
8 356
4 712
2 1424
1 2848
Ergebnis 3115
84 · 123
84 123
42 246
21 492
10 984
5 1968
2 3936
1 7872
Ergebnis 10.332


Beweis

Die Korrektheit der russischen Multiplikation kann durch vollständige Induktion bewiesen werden:

Bezeichne dazu RM(n, m) das Rechenverfahren und Ergebnis der russischen Multiplikation für die natürlichen Zahlen n und m.

Induktionsanfang
Für n = 1\!\, und jedes beliebige m \in \N gilt: RM(n, m) = R(1, m) = 1 \cdot m = n \cdot m.
Für n = 2\!\, und jedes beliebige m \in \N gilt: RM(n, m) = R(2, m) = 2 \cdot m = n \cdot m.
Induktionsschritt
Sei RM\!\, bereits bewiesen für RM \left( \left \lfloor \tfrac n 2 \right \rfloor, 2m \right) (Induktionsannahme).
Es gilt RM(n, m) = RM \left( \left \lfloor \tfrac n 2 \right \rfloor, 2m \right) + x, wobei x = 0\!\,, wenn n\!\, gerade ist und x = m\!\,, wenn n\!\, ungerade ist.
Daraus folgt aufgrund der Induktionsannahme RM(n, m) = n \cdot m.

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.

Weblinks


Wikimedia Foundation.

Игры ⚽ Нужно решить контрольную?

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”