JavaScript: Das Collatz-Problem

Das Collatz-Problem gehört zu den bisher noch nicht bewiesenen Vermutungen in der Mathematik und beschreibt folgenden Sachverhalt:

Man nehme irgendeine Zahl x. Ist diese Zahl gerade, halbiert man x, ist die Zahl ungerade nimmt man x * 3 + 1. Wenn man dies solange es geht wiederholt, lauten die letzten drei Werte für x immer 4, 2, 1 – so zumindest die Vermutung. Für die Zahl 10 lauten die Werte etwa: 5, 16, 8, 4, 2, 1

Ich bin da gestern zufällig in einer Vorlesung auf YouTube drauf gestoßen, und da ich gerade dabei bin mein JavaScript zu verbessern, dachte ich mir, das wäre doch eine gute Übung schnell mal eine Funktion zu schreiben, die den Collatz-Wert berechnet:

function collatz()
{
// Eingabe des Wertes, der für die spätere Ausgabe erhalten bleiben soll 
 var eingabe = prompt("Geben Sie eine Zahl ein: ");
// Übergabe des eingegeben Wertes an die Variable, mit der gerechnet wird 
 var x = eingabe;
// Definition von z als Durchlaufparameter 
 var z = 0;

  document.write("<table>");
// Die While-Schleife läuft solange, solange x ungleich 0 ist 
 while(x != 1)
 {
// Mit Hilfe des Modulus wird überprüft, ob x gerade ist
 if(x % 2 == 0)
 x = x / 2;
 else
 x = x * 3 + 1;

// Bei jedem Durchlauf wird z um 1 erhöht 
 z++;

// Ausgabe der Werte des jeweiligen Durchlaufs 
 document.write("<tr><td>x = " + x + "</td>");
 document.write("<td> z = " + z + "</td><tr>");
 }
 document.write("</table>");
// Ausgabe des Endergebnisses
 document.write("Der Collatz-Wert von " + eingabe + " beträgt: " + z);
}

Ausprobieren kann man die Funktion dann hier: …/collatz.html

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.