1. 程式人生 > >Collatz猜想(冰雹猜想)的計算次數驗證

Collatz猜想(冰雹猜想)的計算次數驗證

冰雹猜想 是指:一個自然數n,如果是奇數就乘以3再加1,如果是偶數就析出偶數因數2ⁿ,這樣經過若干個次數,最終回到1。

我們通過一個js程式計算任意輸入的自然數經過多少次後迴歸到1.

js計算程式碼:

 
 
function calculate(n,f){
if(Math.floor(n) != n || n <= 0){
alert("請輸入自然數");
return;
}
if(n > 1){
if(n % 2){
n = n * 3 + 1;
}else{
n = n / 2;
}
f ++;
arguments.callee(n,f);
}else if(n == 1){
console.log("進行了" + f + "次運算後,又變成1了哦");
return true
}
}
document.getElementById("click").onclick = function(){ var n; n = document.getElementById("num").value; calculate(n * 1,0); }

html程式碼:

    <input id="num" style="width:500px;" type="text" value="" placeholder="請輸入想要驗證的自然數">
    <input id="click" type="button" value="點選開始">

 

當在頁面框內輸入數字的時候就可以計算出這個自然數經過多少次的運算可以迴歸到1了。