查看“考拉兹猜想”的源代码
←
考拉兹猜想
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
{{noteTA |1=zh-cn:数式; zh-tw:公式; zh-hk:數式 }} {{unsolved|數學|對所有[[自然數]],如果它是[[奇數]],則對它乘3再加1,如果它是[[偶數]],則對它[[除以二|除以2]],如此循環,最終都能夠得到1。}} '''考拉兹猜想'''({{lang-en|Collatz conjecture}}),又称为'''奇偶归一猜想'''、'''3n+1猜想'''、'''冰雹猜想'''、'''角谷猜想'''、'''哈塞猜想'''、'''乌拉姆猜想'''或'''叙拉古猜想''',是指对于每一个[[正整数]],如果它是[[奇数]],则对它乘3再加1,如果它是[[偶数]],则对它[[除以二|除以2]],如此循环,最终都能够得到1。 :<math> f(n) = \begin{cases} n/2 &\mbox{if } n \equiv 0 \\ 3n+1 & \mbox{if } n\equiv 1 \end{cases} \pmod{2}. </math> ==例子== 取一个正整数: * 如n = 6,根据上述数式,得出序列6, 3, 10, 5, '''16''', 8, 4, 2, 1。(步驟中最高的數是16,共有8個步驟) * 如n = 11,根据上述数式,得出序列11, 34, 17, '''52''', 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1。(步驟中最高的數是52,共有14個步驟) * 如n = 27,根据上述数式,得出序列 : { 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 }(步驟中最高的數是9232,共有111個步驟) 奇偶归一猜想称,任何正整数,经过上述计算步骤後,最终都会得到1。 [[File:Collatz5.svg|500px|thumb|center|n = 27时的序列分布(横轴-步数;纵轴-运算结果)]] 數目少於1萬的,步驟中最高的數是6171,共有261個步驟; 數目少於10萬的,步驟中最高的數是77031,共有350個步驟; 數目少於100萬的,步驟中最高的數是837799,共有524個步驟; 數目少於1億的,步驟中最高的數是63728127,共有949個步驟; 數目少於10億的,步驟中最高的數是670617279,共有986個步驟。 ==研究历史== 在1930年代,[[德国]][[汉堡大学]]的学生{{le|洛薩·考拉兹|Lothar Collatz|考拉兹}},曾经研究过这个猜想。在1960年,日本人{{le|角谷静夫|Shizuo Kakutani}}也研究过这个猜想。但这猜想到目前,仍没有任何进展。 [[保羅·艾狄胥]]就曾称,数学上尚未为此类问题提供答案。他并称会替找出答案的人奖赏500元。 目前已经有[[分布式计算]]在进行验证。到2009年1月18日,已验证[[正整数]]到 5 × 2<sup>60</sup> = 5,764,607,523,034,234,880,也仍未有找到例外的情况。但是这并不能够证明对於任何大小的数,这猜想都能成立。 有的数学家认为,该猜想任何程度的解决都是现代数学的一大进步,将开辟全新的领域。目前也有部分数学家和数学爱好者,在进行关于“负数的3x+1”、“5x+1”、“7x+1”等種種考拉兹猜想的變化形命題的研究。 ==计算机验证== === [[Python]] === 以下是这个猜想的Python版本代码。它会在答案得到1时停下来,以避免作0→0这个无限循环。 <source lang="python"> def collatz(number): while number != 1: if number % 2 == 0: number = number // 2 elif number % 2 == 1: number = number*3 + 1 print(number) collatz(int(input('輸入一個正整數'))) </source> === [[C语言]] === <source lang="C"> #include <stdio.h> void collatz(unsigned int n){ while(n > 1){ printf("%u\t->\t", n); n = n & 1 ? n * 3 + 1 : n / 2; } printf("1"); } </source> === [[Java]] === <source lang="Java"> void collatz(int n){ while(n > 1){ System.out.print(n + "\t->\t"); n = n % 2 == 0 ? n / 2 : n * 3 + 1; } System.out.print(1); } </source> === [[Visual Basic]] === <source lang="VB.net"> Imports System Imports System.Console Public Sub Collatz(ByVal n As UInteger) System.Console.WriteLine(n) If n = 1 Then Exit Sub n = n * 3 + 1 Do While(n Mod 2 = 0) // remove all trailing '0's n /= 2 Loop Call Collatz(n) End Sub </source> === [[JavaScript]] === <source lang="javascript"> function collatz(n) { while(n > 1) n = !(n % 2) ? n / 2 : n * 3 + 1; } </source> === [[golang]] === <source lang="golang"> func collatz(num int) { for num != 1 { if (num % 2) == 1 { num = num*3 + 1 } else { num = num / 2 } println(num) } } </source> ==相關條目== *{{le|3x + 1半群|3x + 1 semigroup}} *[[模算數]] == 外部連結 == * [http://www.ieeta.pt/~tos/3x+1.html 以電腦研究考拉兹猜想的網頁] * [http://boinc.thesonntags.com/collatz/ Collatz Conjecture的BOINC專案網頁] [[Category:数论]] [[Category:猜想]]
本页使用的模板:
Template:Lang-en
(
查看源代码
)
Template:Le
(
查看源代码
)
Template:NoteTA
(
查看源代码
)
Template:Unsolved
(
查看源代码
)
返回
考拉兹猜想
。
导航菜单
个人工具
登录
命名空间
页面
讨论
不转换
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息