Ist diese Java Aufgabe so richtig (Collatz Zahlen)? Siehe Fotos?

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Achtung, Vermutung:

Sobald die Collatz-Folge einmal die 1 erreicht hat, entsteht ein Zyklus. Wenn ich also die ERSTE auffindbare Collatz-Folge der Länge n bestimmen soll, dann muß ich nacheinander k=3,4,5 usw. als Startwert nehmen und schauen, on ich im n. Schritt bei der 1 lande.

Das wäre meine Interpretation was under eine Collatz-Folge der Länge n zu verstehen ist, die erste ist jene mit dem niedrigsten Startwert. (So ergibt der Aufgabentext zumindest einen Sinn)

Beispiel 3 10 5 16 8 4 2 1 4 2 1 Länge wäre hier die Sequenz 3 10 5 16 8 4 2 1 (Ab hier ist das Schicksal besiegelt), also Länge wäre hier dann 8, für die 4 ist die Länge offenbar 3, für die 5 ergibt sich dann 5 16 8 4 2 1 - 6 als Länge.

---

Es bleibt natürlich unklar, ob das Programm terminiert und für eine entsprechende Länge ein geeignetes k gefunden wird.

--

Es gibt hier einen guten Optimierungsansatz, indem man sich die Folgenlänge für die Startwerte notiert und somit schneller abbrechen kann.

Ja, scheint richtig zu sein


Nach meiner Ansicht nicht richtig. Schau dir nochmal die Definition der kollatz Folge an. Ich denke man muss durch 2 teilen wenn die Zahl gerade ist.

Du machst das aber wenn sie ungerade ist.

Des weiteren sagt die aufgabenstellung noch das du nur die Anzahl von folgenmitglieder ausgeben sollst die dem Startwert entsprechen.

Fängste mit n =3 an darfste auch bloß 3 zahlen als Ausgabe sehen.

Dein Programm gibt die ganze Folge aus bis zur ersten 1.

Des weiteren gibt dein Programm nicht die kollatzfolge für n aus sondern für 10. ich würde bei der Aufgabenstellung erwarten das der user das n angeben kann.

Woher ich das weiß:Studium / Ausbildung – Bachelor

KarlRanseierIII  12.11.2018, 20:51

Ich denke auch, daß die beiden Fälle in der Tat vertauscht wurden.

Einfach n%2==0 durch n&1 ersetzen.

1
Nichtsnutz12 
Fragesteller
 12.11.2018, 22:23

asoo ja ich hab es vertauscht undwas ist n asoo ich hab a genommen ok einfach nur den Buchstaben umändern xD

0
FouLou  13.11.2018, 07:18
@Nichtsnutz12

Naah. Ob du a oder n Schreibstil ist egal.

Es ging eher darum das ich erwarten würde das der user angeben kann für welches n er die erste collatz Reihe haben will.

Ansonsten hat Karl die Aufgabenstellung besser erfasst als ich.

0

Wie soll denn die Länge einer Collatz-Folge gemessen werden?

Die Anzahl der Schritte, bis man zum ersten Mal bei 4 ist?

Falls ja musst du an deinem Code noch einiges ändern.


Nichtsnutz12 
Fragesteller
 12.11.2018, 20:33

das weiß ich ja nicht wie sie gemessen wird deswegen ja die frage ): bin mir auch unsicher

0
YStoll  12.11.2018, 20:40
@Nichtsnutz12
System.out.println("Jede bekannte Collatzfolge ist unendlich lang, daher gibt es keine bekannte Folge der Länge n")

Einfach so abgeben

1
Nichtsnutz12 
Fragesteller
 12.11.2018, 22:24
@YStoll

😂😂😂😂😂😂😂😂😂😂😂😂😂😂😂😂😂😂😂😂😂😂🤥🤥😎😎😎😂😂😂😂😂😂

0