冰雹猜想(角谷猜想) go语言验证

1976年的一天,《华盛顿邮报》于头版头条报道了一条数学新闻。文中记叙了这样一个故事:

70年代中期,美国各所名牌大学校园内,人们都像发疯一般,废寝忘食地玩弄一种数学游戏。这个游戏十分简单:任意写出一个自然数N,并且按照以下的规律进行变换:

如果是个奇数,则下一步变成3N+1。

如果是个偶数,则下一步变成N/2。

为什么这种游戏的魅力经久不衰?因为人们发现,无论N是怎样一个数字,最终都无法逃脱回到谷底1。准确地说,是无法逃出落入底部的4-2-1循环,永远也逃不出这样的这就是著名的“冰雹猜想” 。

以下是go语言写的验证 可以预先透露一下据日本和美国的数学家攻关研究,在小于7*10^11的所有的正整数,都符合这个规律

package main

import (
    "fmt"
)

func hail(n uint) {

    fmt.Println()

    var index uint
    for index = 1; index < n; index++ {
        var times uint

        var i uint
        i = index

        fmt.Printf("%v\t", i)

        for {
            if i == 1 || times > 500000000000 {
                fmt.Println()
                break
            } else if i%2 == 0 {
                i = i / 2
                times++
                fmt.Printf("%v\t", i)
                continue
            } else if i%2 == 1 {
                i = 3*i + 1
                times++
                fmt.Printf("%v\t", i)
                continue
            }
        }

        if times > 500000000000 {
            fmt.Printf("数字%v在5千亿步内无法验证\n", index)
        }

        fmt.Printf("数字%v可以验证,变成1一共用了%v次\n", index, times)
        fmt.Println()

    }

}

func main() {

    var n uint

label01:
    fmt.Println("请输入你想验证的数字上限") // 你想要验证多少以内的数字
    fmt.Scanln(&n)

    if n <= 0 {
        fmt.Println("您输入的数字有误,输入的数字请大于0")
        goto label01
    }

    hail(n)

}

下面是40以内的结果

$ go run main.go
请输入你想验证的数字上限
41

1
数字1可以验证,变成1一共用了0次

2       1
数字2可以验证,变成1一共用了1次

3       10      5       16      8       4       2       1
数字3可以验证,变成1一共用了7次

4       2       1
数字4可以验证,变成1一共用了2次

5       16      8       4       2       1
数字5可以验证,变成1一共用了5次

6       3       10      5       16      8       4       2       1
数字6可以验证,变成1一共用了8次

7       22      11      34      17      52      26      13      40      20      10      5       16      8       4       2       1
数字7可以验证,变成1一共用了16次

8       4       2       1
数字8可以验证,变成1一共用了3次

9       28      14      7       22      11      34      17      52      26      13      40      20      10      5       16      8       4       2       1
数字9可以验证,变成1一共用了19次

10      5       16      8       4       2       1
数字10可以验证,变成1一共用了6次

11      34      17      52      26      13      40      20      10      5       16      8       4       2       1
数字11可以验证,变成1一共用了14次

12      6       3       10      5       16      8       4       2       1
数字12可以验证,变成1一共用了9次

13      40      20      10      5       16      8       4       2       1
数字13可以验证,变成1一共用了9次

14      7       22      11      34      17      52      26      13      40      20      10      5       16      8       4       2       1
数字14可以验证,变成1一共用了17次

15      46      23      70      35      106     53      160     80      40      20      10      5       16      8       4       2       1
数字15可以验证,变成1一共用了17次

16      8       4       2       1
数字16可以验证,变成1一共用了4次

17      52      26      13      40      20      10      5       16      8       4       2       1
数字17可以验证,变成1一共用了12次

18      9       28      14      7       22      11      34      17      52      26      13      40      20      10      5       16      8       4       2       1
数字18可以验证,变成1一共用了20次

19      58      29      88      44      22      11      34      17      52      26      13      40      20      10      5       16      8       4       2       1
数字19可以验证,变成1一共用了20次

20      10      5       16      8       4       2       1
数字20可以验证,变成1一共用了7次

21      64      32      16      8       4       2       1
数字21可以验证,变成1一共用了7次

22      11      34      17      52      26      13      40      20      10      5       16      8       4       2       1
数字22可以验证,变成1一共用了15次

23      70      35      106     53      160     80      40      20      10      5       16      8       4       2       1
数字23可以验证,变成1一共用了15次

24      12      6       3       10      5       16      8       4       2       1
数字24可以验证,变成1一共用了10次

25      76      38      19      58      29      88      44      22      11      34      17      52      26      13      40      20      10      5       16      8       4       2       1
数字25可以验证,变成1一共用了23次

26      13      40      20      10      5       16      8       4       2       1
数字26可以验证,变成1一共用了10次

27      82      41      124     62      31      94      47      142     71      214     107     322     161     484     242     121     364     182     91      274     137     412     206     103     310     155     466     233
        700     350     175     526     263     790     395     1186    593     1780    890     445     1336    668     334     167     502     251     754     377     1132    566     283     850     425     1276    638     319
        958     479     1438    719     2158    1079    3238    1619    4858    2429    7288    3644    1822    911     2734    1367    4102    2051    6154    3077    9232    4616    2308    1154    577     1732    866     433
        1300    650     325     976     488     244     122     61      184     92      46      23      70      35      106     53      160     80      40      20      10      5       16      8       4       2       1
数字27可以验证,变成1一共用了111次

28      14      7       22      11      34      17      52      26      13      40      20      10      5       16      8       4       2       1
数字28可以验证,变成1一共用了18次

29      88      44      22      11      34      17      52      26      13      40      20      10      5       16      8       4       2       1
数字29可以验证,变成1一共用了18次

30      15      46      23      70      35      106     53      160     80      40      20      10      5       16      8       4       2       1
数字30可以验证,变成1一共用了18次

31      94      47      142     71      214     107     322     161     484     242     121     364     182     91      274     137     412     206     103     310     155     466     233     700     350     175     526     263
        790     395     1186    593     1780    890     445     1336    668     334     167     502     251     754     377     1132    566     283     850     425     1276    638     319     958     479     1438    719     2158
        1079    3238    1619    4858    2429    7288    3644    1822    911     2734    1367    4102    2051    6154    3077    9232    4616    2308    1154    577     1732    866     433     1300    650     325     976     488
        244     122     61      184     92      46      23      70      35      106     53      160     80      40      20      10      5       16      8       4       2       1
数字31可以验证,变成1一共用了106次

32      16      8       4       2       1
数字32可以验证,变成1一共用了5次

33      100     50      25      76      38      19      58      29      88      44      22      11      34      17      52      26      13      40      20      10      5       16      8       4       2       1
数字33可以验证,变成1一共用了26次

34      17      52      26      13      40      20      10      5       16      8       4       2       1
数字34可以验证,变成1一共用了13次

35      106     53      160     80      40      20      10      5       16      8       4       2       1
数字35可以验证,变成1一共用了13次

36      18      9       28      14      7       22      11      34      17      52      26      13      40      20      10      5       16      8       4       2       1
数字36可以验证,变成1一共用了21次

37      112     56      28      14      7       22      11      34      17      52      26      13      40      20      10      5       16      8       4       2       1
数字37可以验证,变成1一共用了21次

38      19      58      29      88      44      22      11      34      17      52      26      13      40      20      10      5       16      8       4       2       1
数字38可以验证,变成1一共用了21次

39      118     59      178     89      268     134     67      202     101     304     152     76      38      19      58      29      88      44      22      11      34      17      52      26      13      40      20      10
        5       16      8       4       2       1
数字39可以验证,变成1一共用了34次

40      20      10      5       16      8       4       2       1
数字40可以验证,变成1一共用了8次

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,658评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,482评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,213评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,395评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,487评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,523评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,525评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,300评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,753评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,048评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,223评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,905评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,541评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,168评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,417评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,094评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,088评论 2 352

推荐阅读更多精彩内容