Sorry, keine Ahnung, was ein Fixpunkt ist. Aber muss eine Periode in einer Zahlenfolge nicht immer genau dann eintreten, wenn ein x genau den Wert hat, den ein früheres x auch schon hatte? würde es nicht reichen, bei jedem x das Du errechnest zu schauen, ob es in der Liste der bisherigen (maximal vierhundert) x schon drin ist?
Hab mal folgenden Code geschrieben. Problem ist aber, dass Du die Formel einmal mit "*" und einmal mit "+" angegeben hast. Was stimmt denn? Ggf. Zeile 7 ändern...
Code: Alles auswählen
# -*- coding: cp1252 -*-
x = [ float(raw_input("Startwert x0? ")) ]
r = float( raw_input("Wert für r? "))
periodisch = False
for i in range(400):
y = x[i]*r*(1-x[i])
# beim Berechnen der Reihe wird auf früheres Vorkommen geprüft
if (y in x) and not periodisch:
print "Periodenkriterium erfüllt bei n=",i
periodisch = True
x.append(y)
if not periodisch:
print "War nicht periodisch!"
Bernhard
Edit: Ist natürlich unsinnig, ständig wieder zu gucken, ob es periodisch ist, wenn es schon einmal periodisch war. Also eher die for-Schleife abbrechen, wenn sich ein Wert ergibt, der schon in der WErteliste steht und dann nachschauen, nach wieviel Schritten es sich wiederholt hat. Schon hast Du die Periode. Aber im Prinzip muss es so gehen.