Collatzの問題
出力欄:
やっていることは,偶数なら2で割り,奇数なら3倍して1を加えることを繰り返しているだけです。
function collatz() {
let x = parseInt(document.getElementById("input").value);
let s = "";
while (x > 1) {
s += x + " → ";
if (x % 2 == 0) {
x = x / 2;
} else {
x = 3 * x + 1;
}
}
s += x + " 終了";
document.getElementById("output").textContent = s;
}
これが無限ループにならずに1に落ち着くことはまだ証明されていませんが,実験的には確からしいようです。