zoukankan      html  css  js  c++  java
  • 【练习】克拉兹问题

    3n+1问题是一个简单有趣而又没有解决的数学问题。这个问题是由Collatz在1937年提出的。克拉兹问题(Collatz problem)也被叫做hailstone问题、3n+1问题、Hasse算法问题、Kakutani算法问题、Thwaites猜想或者Ulam问题。
    问题如下:
    (1)输入一个正整数n;
    (2)如果n=1则结束;
    (3)如果n是奇数,则n变为3n+1,否则n变为n/2;
    (4)转入第(2)步。
    克拉兹问题的特殊之处在于:尽管很容易将这个问题讲清楚,但直到今天仍不能保证这个问题的算法对所有可能的输入都有效——即至今没有人证明对所有的正整数该过程都终止。
    例如:n=9时,有 9  28  14  7  22  11  34  17  52  26  13  40  20  10  5  16  8  4  2  1
     
    public class Collatz {
        /**
         * Collatz问题
         * @param number
         */
        public static void CollatzQ(int number){    
            String  result = "";
            int tmp = number;
            while(true){
                if(tmp == 1){
                    result = result + "Over";
                    System.out.println(result);
                    break;
                } else if (tmp <= 0){
                    System.out.println("The number is error!!!");
                    break;
                } else {
                     if (tmp % 2 == 0){
                         tmp = tmp/2;
                     }else {
                         tmp = 3 * tmp + 1;
                     }
                     result = result + tmp + "	";
                }
            }
            
        }
        
        public static void main(String[] args) {
            for(int num = 0; num < 10; num++){
                Collatz.CollatzQ(num);
            }
        }
    }
    The number is error!!!
    Over
    1    Over
    10    5    16    8    4    2    1    Over
    2    1    Over
    16    8    4    2    1    Over
    3    10    5    16    8    4    2    1    Over
    22    11    34    17    52    26    13    40    20    10    5    16    8    4    2    1    Over
    4    2    1    Over
    28    14    7    22    11    34    17    52    26    13    40    20    10    5    16    8    4    2    1    Over
     
  • 相关阅读:
    跨平台的图形软件Dia
    Marvel
    How to install Freemind 1.0.1 to Ubuntu 14
    PHP环境搭建
    java 调用wsdl接口同时将返回数据解析成json
    WSDL接口调用
    struts2 使用装饰页面 /decorators
    Android WebView中的JavaScript代码使用(转载)
    android WebView 显示网页
    linux vi 编辑器命令
  • 原文地址:https://www.cnblogs.com/yunkong/p/4403913.html
Copyright © 2011-2022 走看看