Beispiel - Rechnen wie die Ägypter

Zahldarstellung in Ägypten

Auf alten Papyrusrollen kann man sehen, wie Zahlen in Ägypten vor mehr als 3000 Jahren dargestellt wurden. Hier zwei nachgebildete Beispiele:

Suchmaschine

Das Rechnen mit den Hieroglyphenzahlen der Ägypter kann man mit Geldstücken leicht nachvollziehen. Mit einer 1-Cent-Münze werden die Einer, mit einer 10-Cent-Münze die Zehner und mit einer 1-Euro-Münze die Hunderter dargestellt.

Aufgabe 1

(a) Probiere mit Münzen aus, wie man Hieroglyphenzahlen addieren bzw. subtrahieren kann.

(b) Warum kann man unsere schriftliche Multiplikation nicht mit Hieroglyphenzahlen nachbilden?

(c) Recht gut funktioniert das Verdoppeln und Halbieren von Hieroglyphenzahlen. Probiere das selbst aus.

Ägyptische Multiplikation

Die Abbildung zeigt, wie die Ägypter Zahlen multipliziert haben. Aufgaben dieser Art wurden auf einem Stück Papyrus gefunden, das nach dem englischen Archäologen A.H. Rhind heute Papyrus Rhind genannt wird.

Ägyptische Multiplikation

Mit der heute üblichen Zahlenschreibweise kann man die oben gezeigte Berechnung so darstellen:

Ägyptische Multiplikation

Alles klar?

Aufgabe 2

(a) Finde heraus, wie die ägyptische Multiplikation funktioniert. Hier ein weiteres Beispiel:

Ägyptische Multiplikation

(b) Berechne mit dem Verfahren folgende Produkte. Überprüfe aber auch, ob die erzielten Ergebnisse stimmen.

Aufgabe 3

Das Multiplikationsverfahren der Ägypter lässt sich mit dem folgenden Algorithmus beschreiben:

Struktogramm zur ägyptischen Multiplikation

(a) Führe das Verfahren zur Kontrolle mit den Übergaben zahl1 -> 13 und zahl2 -> 12 durch. Erstelle eine Trace-Tabelle, in der sämtliche Berechnungsschritte eingetragen sind.

(b) Erkläre, warum der Algorithmus das Multiplikationsverfahren beschreibt.

Fehlersuche

Wenn man (komplexere) Programme entwickelt, sind sie in den seltensten Fällen direkt fehlerfrei. Fehlersuche ist also eine Tätigkeit, die zur Entwicklung von Programmen dazu gehört. Wir spielen das im Folgenden an Implementierungen zur ägyptischen Multiplikation durch.

Aufgabe 4

Hier eine erste Implementierung zur ägyptischen Multiplikation. Siehst du bereits den Fehler? Wenn nicht, dann führe die Funktionsdefinition einmal aus. Python liefert dann eine Fehlermeldung, die dir weiterhilft.

def aegyptischeMultiplikation(zahl1, zahl2):
    produkt = 0
    while zahl1 > 0:
        if zahl1 % 2 = 1:
            produkt = produkt + zahl2
        zahl1 = zahl1 // 2
        zah12 = zahl2 * 2
    return produkt

Aufgabe 5

(a) In der folgenden Implementierung zur ägyptischen Multiplikation ist der Fehler aus Aufgabe 3 behoben. Wenn man die Funktion aufruft, dann liefert sie auch ein Ergebnis. Nur, stimmt das Ergebnis auch? Probiere es selbst mit verschiedenen Funktionsaufrufen aus.

def aegyptischeMultiplikation(zahl1, zahl2):
    produkt = 0
    while zahl1 > 0:
        if zahl1 % 2 == 1:
            produkt = produkt + zahl2
        zahl1 = zahl1 // 2
        zah12 = zahl2 * 2
    return produkt

# Test
print(aegyptischeMultiplikation(13, 12))

(b) Der Fehler ist hier schwer zu sehen. Mit dem Python Online Tutor kann man ihn aber finden.

Aufgabe 6: Fehler in Datentypen

Auch hier klappt etwas nicht. Wenn man das Programm ausführt, gibt es eine Fehlermeldung. Irgend etwas stimmt mit den Typen nicht. Kannst du den Fehler beheben?

def aegyptischeMultiplikation(zahl1, zahl2):
    produkt = 0
    while zahl1 > 0:
        if zahl1 % 2 == 1:
            produkt = produkt + zahl2
        zahl1 = zahl1 // 2
        zahl2 = zahl2 * 2
    return produkt

# Eingabe
z1 = input("Zahl 1: ")
z2 = input("Zahl 2: ")
# Verarbeitung
p = aegyptischeMultiplikation(z1, z2)
# Ausgabe
print("Produkt: ", p)
X

Fehler melden

X

Suche