1976年的一天,《華盛頓郵報》于頭版頭條報道了一條數(shù)學(xué)新聞佩伤。文中記敘了這樣一個故事:
70年代中期静暂,美國各所名牌大學(xué)校園內(nèi)济丘,人們都像發(fā)瘋一般,廢寢忘食地玩弄一種數(shù)學(xué)游戲洽蛀。這個游戲十分簡單:任意寫出一個自然數(shù)N摹迷,并且按照以下的規(guī)律進行變換:
如果是個奇數(shù),則下一步變成3N+1郊供。
如果是個偶數(shù)峡碉,則下一步變成N/2。
為什么這種游戲的魅力經(jīng)久不衰驮审?因為人們發(fā)現(xiàn)鲫寄,無論N是怎樣一個數(shù)字,最終都無法逃脫回到谷底1疯淫。準(zhǔn)確地說地来,是無法逃出落入底部的4-2-1循環(huán),永遠也逃不出這樣的這就是著名的“冰雹猜想” 熙掺。
以下是go語言寫的驗證 可以預(yù)先透露一下?lián)毡竞兔绹臄?shù)學(xué)家攻關(guān)研究未斑,在小于7*10^11的所有的正整數(shù),都符合這個規(guī)律
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("數(shù)字%v在5千億步內(nèi)無法驗證\n", index)
}
fmt.Printf("數(shù)字%v可以驗證,變成1一共用了%v次\n", index, times)
fmt.Println()
}
}
func main() {
var n uint
label01:
fmt.Println("請輸入你想驗證的數(shù)字上限") // 你想要驗證多少以內(nèi)的數(shù)字
fmt.Scanln(&n)
if n <= 0 {
fmt.Println("您輸入的數(shù)字有誤,輸入的數(shù)字請大于0")
goto label01
}
hail(n)
}
下面是40以內(nèi)的結(jié)果
$ go run main.go
請輸入你想驗證的數(shù)字上限
41
1
數(shù)字1可以驗證,變成1一共用了0次
2 1
數(shù)字2可以驗證,變成1一共用了1次
3 10 5 16 8 4 2 1
數(shù)字3可以驗證,變成1一共用了7次
4 2 1
數(shù)字4可以驗證,變成1一共用了2次
5 16 8 4 2 1
數(shù)字5可以驗證,變成1一共用了5次
6 3 10 5 16 8 4 2 1
數(shù)字6可以驗證,變成1一共用了8次
7 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
數(shù)字7可以驗證,變成1一共用了16次
8 4 2 1
數(shù)字8可以驗證,變成1一共用了3次
9 28 14 7 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
數(shù)字9可以驗證,變成1一共用了19次
10 5 16 8 4 2 1
數(shù)字10可以驗證,變成1一共用了6次
11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
數(shù)字11可以驗證,變成1一共用了14次
12 6 3 10 5 16 8 4 2 1
數(shù)字12可以驗證,變成1一共用了9次
13 40 20 10 5 16 8 4 2 1
數(shù)字13可以驗證,變成1一共用了9次
14 7 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
數(shù)字14可以驗證,變成1一共用了17次
15 46 23 70 35 106 53 160 80 40 20 10 5 16 8 4 2 1
數(shù)字15可以驗證,變成1一共用了17次
16 8 4 2 1
數(shù)字16可以驗證,變成1一共用了4次
17 52 26 13 40 20 10 5 16 8 4 2 1
數(shù)字17可以驗證,變成1一共用了12次
18 9 28 14 7 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
數(shù)字18可以驗證,變成1一共用了20次
19 58 29 88 44 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
數(shù)字19可以驗證,變成1一共用了20次
20 10 5 16 8 4 2 1
數(shù)字20可以驗證,變成1一共用了7次
21 64 32 16 8 4 2 1
數(shù)字21可以驗證,變成1一共用了7次
22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
數(shù)字22可以驗證,變成1一共用了15次
23 70 35 106 53 160 80 40 20 10 5 16 8 4 2 1
數(shù)字23可以驗證,變成1一共用了15次
24 12 6 3 10 5 16 8 4 2 1
數(shù)字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
數(shù)字25可以驗證,變成1一共用了23次
26 13 40 20 10 5 16 8 4 2 1
數(shù)字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
數(shù)字27可以驗證,變成1一共用了111次
28 14 7 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
數(shù)字28可以驗證,變成1一共用了18次
29 88 44 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
數(shù)字29可以驗證,變成1一共用了18次
30 15 46 23 70 35 106 53 160 80 40 20 10 5 16 8 4 2 1
數(shù)字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
數(shù)字31可以驗證,變成1一共用了106次
32 16 8 4 2 1
數(shù)字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
數(shù)字33可以驗證,變成1一共用了26次
34 17 52 26 13 40 20 10 5 16 8 4 2 1
數(shù)字34可以驗證,變成1一共用了13次
35 106 53 160 80 40 20 10 5 16 8 4 2 1
數(shù)字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
數(shù)字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
數(shù)字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
數(shù)字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
數(shù)字39可以驗證,變成1一共用了34次
40 20 10 5 16 8 4 2 1
數(shù)字40可以驗證,變成1一共用了8次