[Scheme] Iteration von Funktionen

Neue Frage »

Auf diesen Beitrag antworten »
Buef [Scheme] Iteration von Funktionen

Experimentieren Sie ein bisschen mit der Iteration von einfachen Funktionen: Wie verhalten sich
Folgen (x, f(x), f(f(x)), . . .)? Bei der Collatz–Folge hat die (3n+1)–Funktion f eine sehr einfache
Form, aber schon dieser Fall f¨uhrt, wie wir gesehen haben, auf bislang unl¨osbare Fragen.
Finden Sie eine eigene Variante von f und studieren Sie deren Iterationsverhalten mit Hilfe einer
einfachen tScheme-Inplementierung. Geben Sie einen kurzen Bericht dar¨uber, was Sie dabei beobachten.
(Ihr f muss nicht wie die Collatzsche Funktion auf den nat¨urlichen Zahlen definiert sein,
reelle Funktionen liefern auch interessante Ph¨anomene.)

Kann mir da irgendjemand helfen oder nen pseudocode hinschreiben. ich kann mit der aufgabe nix anfangen
 
Auf diesen Beitrag antworten »
dachdecker2 RE: [Scheme] Iteration von Funktionen

Zitat:
Original von Buef
...wie wir gesehen haben...


hmm? was haben wir denn gesehen, was wären denn eine unlösbare Frage dazu?

ich habe einen Moment damit herumexperimmentiert, aber ich hab eine Tabellenkalkulation genommen. Das ist doch wesentlich angebrachter, oder? (Scheme ist mir zwar namentlich bekannt, aber mehr weiß ich damit nicht anzufangen.)
Auf diesen Beitrag antworten »
dachdecker2

ich habe mal eben das Collatzsche Funktion nachgesehen, vielleicht ist es interessant für andere:
(wo ist eigentlich der Formeleditor hier???)
code:
1:
2:
wenn x gerade:   f(x) = x/2
wenn x ungerade: f(x) = 3x+1

betrachtet wird dabei die Folge, die bei wiederholtem Anwenden der Funktion auf ihr Ergebnis entsteht.

wenn x0 zum beispiel 12 ist, sieht die Folge so aus:
code:
1:
12, 6, 3, 10, 5, 16, 8, 4, 2, 1, 4


an den letzten vier stellen sieht man, dass sich das in der Schleife 4-1-2 festhängt. Das passiert früher oder später bei allen Zahlen, die ich getestet hab - eine Frage könnte lauten: Trifft das auf alle Zahlen zu?

In OpenCalc sieht das so aus:
code:
1:
2:
Zellinhalt von D10 (nach unten forgesetzt, Startzahl in D9):
=WENN(ISTGERADE(D9);D9/2;3*D9+1)
Wahrscheinlich passt das schon so wie es ist auf Excel.

Ich habe keine Ahnung, wie die Antwort lauten muss.
Auf diesen Beitrag antworten »
Crotaphytus

@dachdecker2: Dies ist genau die ungelöste Frage, die in der Aufgabenstellung angesprochen worden ist - man kann nicht beweisen, dass es für alle n gilt, auch wenns wohl stark vermutet wird.
 
Auf diesen Beitrag antworten »
dachdecker2

Warum soll man das nicht beweisen können? es muss einfach nur mal einer machen Augenzwinkern .

Das bedeutet, dass man das entweder über den Gegenbeweis machen kann - eine Zahl finden, die der Beginn einer Folge ist, die nie auf 2^n kommt (es dürfte unmöglich sein, das mit einer Rechenmaschine zu schaffen - man wird keine "letzte Zahl" finden, ab der man sicher sein kann, dass 2^n nicht Bestandteil der Folge ist).

Möglichkeit 2 wäre, theoritisch nachzuweisen, dass es solche Zahlen entweder geben muss oder nicht geben kann.
Auf diesen Beitrag antworten »
Crotaphytus

So einfach wirds wohl nicht gehen... Augenzwinkern

http://de.wikipedia.org/wiki/Collatz-Problem
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »