Thema: EgyptMath

Einzelnen Beitrag anzeigen

Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#1

EgyptMath

  Alt 22. Dez 2016, 11:31
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.
Angehängte Dateien
Dateityp: pas EgyptMath.pas (4,0 KB, 15x aufgerufen)
  Mit Zitat antworten Zitat