CUBE.CODES: Reihen: Unterschied zwischen den Versionen
Zeile 2: | Zeile 2: | ||
for(n=1; n<=10; ++n) UI.log("1/"+n); | for(n=1; n<=10; ++n) UI.log("1/"+n); | ||
− | ... ist eine witzige Folge von Zahlen, die immer kleiner werden. | + | ... ist eine witzige Folge von Zahlen (eigentlich "Texten"), die immer kleiner werden. |
[08:57:53] Program starting ... | [08:57:53] Program starting ... |
Aktuelle Version vom 4. Februar 2022, 07:53 Uhr
28.1.22: Unendliche Reihen basteln und testen
for(n=1; n<=10; ++n) UI.log("1/"+n);
... ist eine witzige Folge von Zahlen (eigentlich "Texten"), die immer kleiner werden.
[08:57:53] Program starting ... [08:57:53] Program running ... 1/1 1/2 1/3 1/4 1/5 1/6 1/7 1/8 1/9 1/10 [08:57:53] Program finished successfully
Wir können die Ausdrücke nicht nur als Text ausgeben, sondern auch ausrechnen lassen. Dann bekommen wir halt die Ergebnisse dezimal:
for(n=1; n<=10; ++n) UI.log(1/n);
Ausgabe:
[08:59:54] Program starting ... [08:59:55] Program running ... 1 0.5 0.3333333333333333 0.25 0.2 0.16666666666666666 0.14285714285714285 0.125 0.1111111111111111 0.1 [08:59:55] Program finished successfully
Wenn man die nun zusammenzählen würde, ...
Würde das Ergebnis immer mehr anwachsen (weil es ja immer mehr Zahlen werden, die dazugezählt werden) oder würde es über eine gewisse Schranke nie drübergehen (weil ja immer verschwindend kleinere Zahlen dazugezählt werden)? Probieren wir's aus!
summe=0; for(n=1; n<=1000; ++n) { summe=summe+1/n; UI.log(summe); }
... ergibt die Ausgabe:
[08:52:31] Program starting ... [08:52:31] Program running ... 1 1.5 1.8333333333333333 2.083333333333333 2.283333333333333 2.4499999999999997 2.5928571428571425 2.7178571428571425 2.8289682539682537 2.9289682539682538 ... ... (das geht jetzt 1000 Zeilen weiter ;-)) ... ... 7.483469859549342 7.484470860550343 7.485470860550343 [08:52:32] Program finished successfully
Man kann die Obergrenze für n jetzt immer größer machen. Es spielt ja keine Rolle. Der PC rechnet ja, nicht wir! :-) Wir beobachten, dass die Zahlen immer langsamer anwachsen (wie vermutet), aber irgendwann klickt es über 8, viel viel später mal über 9, ... Eine eindeutige Tendenz auf Dauer ist aber nicht erkennbar. Irgendwann schmiert auch der Rechner aus Überlastung ab. Dann kann man das Programm nur noch extern abbrechen. Hm!
IT-technisch interessant:
Könnt Ihr aus dem, was wir gelernt haben (CUBE.CODES: Besondere (Rechen-)Ausdrücke), wieder einen Einzeiler machen?
summe=0; for(n=1; n<=1000; ++n) UI.log(summe+=1/n);
Elegant, aber schon a bisserl crazy!