Ich hab mich Letzens etwas mit ägyptischer Mathematik beschäftigt. Fand sie extrem verblüffend und wollte euch kurz die Multiplikation und Division "like an egyptian" vorstellen. Nein, hat nichts mit den Bangles zu tun
, die beiden Methoden werden z.B.
hier vorgestellt.
Code:
Wir brauchen Reihen der Art x0 = x, x1 = x0 + x0, x2 = x1 + x1, x3 = x2 + x2, ..
---------------------------
z.B. x = 1 -> 1, 2, 4, 8, 16, 32, .. = PowersOf2
z.B. x = 25 -> 25, 50, 100, 200, 400, 800, ..
Multiplikation
--------------
z.B. 17 x 25
Wir drücken die 17 in einer 1er Reihe aus
17 = (16) x 1 + 8 x 0 + 4 x 0 + 2 x 0 + (1) x 1
und schreiben eine 25iger Reihe daneben
(1) -> 25
2 50
4 100
8 200
(16) -> 400
Wir addieren die korrespondierenden Reihenwerte,
die wir zum Schreiben der 17 verwendet haben
Result = 400 + 25
Division = Inverse Multiplikation
---------------------------------
z.B. 170 / 25
Wir drücken die 170 in einer 25iger Reihe aus
170 = (100) x 1 + (50) x 1 + 25 x 0 + (Rest)
und schreiben (links) daneben die 1erReihe
1 25
2 <- (50)
4 <- (100)
Wir addieren die korrespondierenden Reihenwerte,
die wir zum Schreiben der 170 verwendet haben
Result = 4 + 2 + Rest
Warum ist das ganze nun interessant? Ich denke da vor allem an BigInts. Wenn man genauer hinschaut sieht man, daß sowohl die Multiplikation als auch die Division nur die Addition verwenden. Eine Add und Substract ist aber vergleichsweise einfach zu programmieren, z.B. nach der Grundschulmethode.