コラッツ予想

「任意の正の整数から始めて、偶数なら2で割り、奇数なら3倍して1を足す、という操作を繰り返すと、必ず有限回で1に到達する」という、未解決の数学の予想です。80年以上未解決で、2億円を超える懸賞金がかけられたこともあります。1937年にドイツの数学者ローター・コラッツによって提唱されました

下のBigIntソースコードはこの問題をシミュレートします。 let n : BigInt = BigInt.random(digits: 10)の10に乱数の桁数を指定してください。

 

 

import UIKit

import BigInt

 

class ViewController: UIViewController {

    

    override func viewDidLoad() {

        super.viewDidLoad()

        // 任意の正の整数nに対して

        //(Ⅰ) nが奇数ならば3倍して1を加える.

        //(Ⅱ) nが偶数ならば2で割る.

        //という操作を繰り返して,1になったら終了とする.

        //1930年代にコラッツは,どんな正の整数から始めても上記の操作を繰り//返せば1になると予想したが,この予想は証明も反証もできていな//い未解決問題となっている.(3n+1問題とも呼ばれる)

        let n : BigInt = BigInt.random(digits: 10)

        var result : BigInt = n

        print("\(result)", terminator: " → ")

        while result != 1 {

            if result.isEven {

                result = even(num: result)

            }else{

                result = odd(num: result)

            }

            print("\(result)", terminator: " → ")

        }

    }

    

 

    func even(num : BigInt) -> BigInt {

        return num / 2

    }

    func odd(num : BigInt) -> BigInt {

        return 3 * num + 1

    }

}

 

10桁の場合

7215489997 → 21646469992 → 10823234996 → 5411617498 → 2705808749 → 8117426248 → 4058713124 → 2029356562 → 1014678281 → 3044034844 → 1522017422 → 761008711 → 2283026134 → 1141513067 → 3424539202 → 1712269601 → 5136808804 → 2568404402 → 1284202201 → 3852606604 → 1926303302 → 963151651 → 2889454954 → 1444727477 → 4334182432 → 2167091216 → 1083545608 → 541772804 → 270886402 → 135443201 → 406329604 → 203164802 → 101582401 → 304747204 → 152373602 → 76186801 → 228560404 → 114280202 → 57140101 → 171420304 → 85710152 → 42855076 → 21427538 → 10713769 → 32141308 → 16070654 → 8035327 → 24105982 → 12052991 → 36158974 → 18079487 → 54238462 → 27119231 → 81357694 → 40678847 → 122036542 → 61018271 → 183054814 → 91527407 → 274582222 → 137291111 → 411873334 → 205936667 → 617810002 → 308905001 → 926715004 → 463357502 → 231678751 → 695036254 → 347518127 → 1042554382 → 521277191 → 1563831574 → 781915787 → 2345747362 → 1172873681 → 3518621044 → 1759310522 → 879655261 → 2638965784 → 1319482892 → 659741446 → 329870723 → 989612170 → 494806085 → 1484418256 → 742209128 → 371104564 → 185552282 → 92776141 → 278328424 → 139164212 → 69582106 → 34791053 → 104373160 → 52186580 → 26093290 → 13046645 → 39139936 → 19569968 → 9784984 → 4892492 → 2446246 → 1223123 → 3669370 → 1834685 → 5504056 → 2752028 → 1376014 → 688007 → 2064022 → 1032011 → 3096034 → 1548017 → 4644052 → 2322026 → 1161013 → 3483040 → 1741520 → 870760 → 435380 → 217690 → 108845 → 326536 → 163268 → 81634 → 40817 → 122452 → 61226 → 30613 → 91840 → 45920 → 22960 → 11480 → 5740 → 2870 → 1435 → 4306 → 2153 → 6460 → 3230 → 1615 → 4846 → 2423 → 7270 → 3635 → 10906 → 5453 → 16360 → 8180 → 4090 → 2045 → 6136 → 3068 → 1534 → 767 → 2302 → 1151 → 3454 → 1727 → 5182 → 2591 → 7774 → 3887 → 11662 → 5831 → 17494 → 8747 → 26242 → 13121 → 39364 → 19682 → 9841 → 29524 → 14762 → 7381 → 22144 → 11072 → 5536 → 2768 → 1384 → 692 → 346 → 173 → 520 → 260 → 130 → 65 → 196 → 98 → 49 → 148 → 74 → 37 → 112 → 56 → 28 → 14 → 7 → 22 → 11 → 34 → 17 → 52 → 26 → 13 → 40 → 20 → 10 → 5 → 16 → 8 → 4 → 2 → 1 →