Inhaltsverzeichnis
odd integer and square root
Ungerade Zahlen und das Quadrat. Betrachten wir zum Beispiel das 5×5 Feld mit 25 Elementen.
x x x x x O x x x 0 O O X 0 0 O X X X 0 X X X X X
Durch Umsortieren des Quarats entsteht die Reihe ungerader ganzer Zahlen.
n -> 2n+1 kummulierte Summe X 0 -> 1 1 X X X 1 -> 3 4 X X X X X 2 -> 5 9 O x x x x x 0 3 -> 7 16 O O O x x x 0 0 0 4 -> 9 25 = Elemente im Quadrat . . . . . . . . . . . 5 -> 11 36 > Mehr Elemente als im Quadrat
Allgemein: n^2 = summe(2x+1),x=0..n
^2
Zur Verifikation der Quadrierung bilden wir die Summe der ungeraden ganzen Zahlen.
: ^2 ( n - n*n ) 0 swap 0 DO i 2* 1+ + LOOP ;
sqrt
Umgekehrt lässt sich so auch die Quadratwurzel finden. Die letzte 5. Reihe enthält schon 11 Zeichen, und die Summe der ungeraden Zahlen bis dahin ist schon größer als das Quadrat. Mit der Anzahl der Zeichen dieser Reihe wird die integer division durchgeführt: 11/2 = 5 = wurzel(25)
Wenn man also so lange die Reihe der ungeraden Zahlen addiert, bis die Summe > n^2 erreicht ist, enthält der mitgeführte Summand 2n-1 schon die Quadratwurzel: Sie entspricht der integer division durch 2.
: sqrt ( n*n -- n ) -1 swap over do 2 + dup +loop 2/ ;