题目
考兹曼猜想:
- 一个正整数,无论它为多少
- 1.如果它是偶数,就除以2
- 2.如果它是基数,就乘以3+1
- 一直重复运算,最后结果一定为1
例子:5 16 8 4 2 1
现在改进考兹曼猜想:
- 一个正整数,无论它为多少
- 1.首先将它乘以3加1
- 2.如果它是偶数,就除以2
- 3.如果它是基数,就乘以3+1
- 重复运算,最后结果等于自己本身
例子:4 13 40 20 10 5 16 8 4
思路
现在实现考兹曼猜想改进版,统计2到10000,有多少符合特征的数
遍历运算并比较,运算结果为1,或者与自己本身相等时停止
实现
public class CowesMannGuess {
public static void main(String[] args) throws Exception {
System.out.println(countIsCowesMannNumber());
}
private static int countIsCowesMannNumber() throws Exception {
int count = 0;
for (int i = 2; i < 10000; i++) {
if( checkCowesMannGuess(i)){
count++;
}
}
return count;
}
private static boolean checkCowesMannGuess(int n) throws Exception {
if( n <= 0 ){
throw new Exception("不支持负数");
}
int check = n*3+1;
while ( check != 1 ){
if( check%2 == 0 ){
check = check/2;
} else {
check = check*3 + 1;
}
if( check == n ){
return true;
}
}
return false;
}
}

本文探讨了考兹曼猜想的改进版本,介绍了一个数学猜想的迭代算法,该算法通过特定的数学运算来检查正整数是否能最终返回自身。通过对2到10000之间的数字进行遍历和验证,我们统计了符合改进版考兹曼猜想特征的数字数量。
1万+

被折叠的 条评论
为什么被折叠?



