Java數據構造及算法實例:考拉茲料想 Collatz Conjecture。本站提示廣大學習愛好者:(Java數據構造及算法實例:考拉茲料想 Collatz Conjecture)文章只能為提供參考,不一定能成為您想要的結果。以下是Java數據構造及算法實例:考拉茲料想 Collatz Conjecture正文
/**
* 考拉茲料想:Collatz Conjecture
* 又稱為3n+1料想、冰雹料想、角谷料想、哈塞料想、烏拉姆料想或敘拉古料想,
* 是指關於每個正整數,假如它是奇數,則對它乘3再加1,
* 假如它是偶數,則對它除以2,如斯輪回,終究都可以或許獲得1。
*/
package al;
public class CollatzConjecture {
private int i = 1;
public static void main(String[] args) {
long l = 9999999;
System.out.println("l is "+ l);
CollatzConjecture cc = new CollatzConjecture();
cc.Collatz(l);
}
/**
* 至今還沒有有人能證明其正確性。風趣的是,今朝也還沒有檢查出任何反例。
* 料想的內容是這樣的:有一個整數,假如是偶數,就除以 2 ;
* 假如是奇數,就乘以 3 再加 1 。
* 一個整數不斷這樣操作下去,最後必定會變成 1 。
* 這個操作的過程就是一種迭代。
* @author
* @param param 初始輸出的數字
*/
private void Collatz(long param) {
System.out.println("After " + i + " time we get result " + param);
if(param > 1) {
i++;
if (param%2 == 0) {
Collatz(param/2);
} else {
Collatz(3*param + 1);
}
}
}
}