Seite 1 von 1
While-Schleife Durchläufe zählen?
Verfasst: Montag 18. September 2017, 20:32
von Draike33
Gibt es in Phyton eine Funktion, die die Anzahl Durchläufe, welche eine While-Schleife macht zählt? Ich will ein Programm schreiben, dass mit die grösste Collatz-folge von den Zahlen von 1-1000 ausrechnet.
Die Folgen ausrechnen kann ich nur die längste finde ich nicht heraus.
Danke für euere Antworten

Re: While-Schleife Durchläufe zählen?
Verfasst: Montag 18. September 2017, 20:47
von __deets__
Nimm eine for-Schleife? Die ist notorisch gut im zählen.
Wenn du itertools.count nimmst, bekommst du auch eine gute Quelle zum hochzählen.
Re: While-Schleife Durchläufe zählen?
Verfasst: Montag 18. September 2017, 20:51
von sls
Hi,
du kannst die Collatz-Folgen mit jedem Schleifen-Durchlauf einer Liste hinzufügen, und dir anschließend die Größte Folge ausgeben lassen:
Code: Alles auswählen
sequence = []
while (statement):
- code logic -
sequence.append(result)
print(max(sequence))
Re: While-Schleife Durchläufe zählen?
Verfasst: Dienstag 19. September 2017, 07:24
von Sirius3
@Draike33: es gibt zwei Möglichkeiten, entweder zählt man händisch und nimmt eine while-Schleife oder man läßt die for-Schleife zählen und beendet sie mit einem `if ...: break`:
oder
Code: Alles auswählen
for length in itertools.count():
if n <= 1:
break
n = ...
Re: While-Schleife Durchläufe zählen?
Verfasst: Mittwoch 20. September 2017, 10:33
von ruedi_br
Hallo Draike33,
hattest Du so etwas gemeint:
Code: Alles auswählen
def collatz(z):
if z%2==0:
return z//2
else:
return 3*z+1
zahlen=[]
for zahl in range(2,1025):
zaehler=0
z=zahl
while zahl!=1:
zahl = collatz(zahl)
zaehler += 1
liste=(zaehler,z)
zahlen.append(liste)
print(max(zahlen))
??
Gruß Ruedi