06-01:角谷猜想的编程验证

合集下载

基于变形“角谷猜想”识牌游戏的设计与实现

基于变形“角谷猜想”识牌游戏的设计与实现

3 相关概念及算法分析
3 1角谷猜想 .
“ 角谷猜想(a u a i o j cu e” K k tn ne t r) 实际上就是 C
“ 西拉古斯(y a u e猜想 ” 在被 日本数学家角谷静 S rc s ) , 夫带到 日本后 ,以他 的名字 叫成 “ 角谷猜想 ” 。这个猜
2 游戏概述
Absr c : W i h e eo me to n o m a in tc n o y mo e a d ta t t t e d v l p n f i f r t e h olg , h o r n mo e c r a e a e b e o e n o r a d g m s h v e n m v d o t
1 引 言
棋牌类游戏是人 们是常见休 闲娱乐方式 。而 关于
2 1张扑克牌 中默记一张 , 然后把牌按一定的规律分成 3组 ,再让玩家指出刚才默记牌所在的组数。表演者
再按规律变化牌 的顺序 ,之后再分成 3组 ,如此循环 3次。 最后表演者从这 2 张牌 中能找到玩家心 中所记 1 的牌 ,发现了玩家心 中的秘密。在本文所实现的魔术 找牌游戏 中,计算机充当表演者的角色 ,玩家默记一 张牌 ,通过确认这张牌 出现的组 ,之后 ,牌的顺序又 发生变化 ,再次确认这张牌 出现 的组。3 次之后 ,计 的游戏 种类名 目繁多 ,可 以是玩家 与玩 家之间
的竞技 游戏 ,也可以是魔 术表演形式 的大众娱乐 ,比
如识牌游戏 。在信息 技术如此发达 的今天 ,特别是互 联 网的盛行 , 多的游戏搬到 了电脑和 网上 。 众 相应地 ,
以计算机 为载体 的棋 牌游戏也是 多种 多样 , 目前 绝大
关键 词 : 角谷 猜想:变形 : 找牌游戏:随机数

高中数学-角谷猜想

高中数学-角谷猜想

简介考拉兹猜想,又称为3n+1猜想、角谷猜想、哈塞猜想、乌拉姆猜想或叙拉古猜想,是由日本数学家角谷静夫发现,是指对於每一个正整数,如果它是奇数,则对它乘3再加1,如果它是偶数,则对它除以2,如此循环,最终都能够得到1。

取一个数字如n = 6,根据上述公式,得出6→3→10→5→16→8→4→2→1。

(步骤中最大的数是16,共有7个步骤)如n = 11,根据上述公式,得出11→34→17→52→26→13→40→20→10→5→16→8→4→2→1。

(步骤中最大的数是52,共有13个步骤)如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。

注意:与角谷猜想相反的是蝴蝶效应,初始值极小误差,会造成巨大的不同;而3x+1恰恰相反,无论多么大的误差,都是会自行的恢复。

java实验报告

java实验报告

《java》实验报告学生姓名学号院系专业任课教师二O一六年 6 月 6 日实验一题目:角谷猜想:任何一个整数n,如果它是偶数则除以2,如果是奇数则乘以3再加上1,这样得到一个新的整数,如此继续进行上述处理,则最后得到的数一定是1。

编写应用程序和小程序分别证明:在3~10000之间的所有正整数都符合上述规则。

程序:(1)应用程序:package jiao.gu;import java.util.Scanner;public class JiaoGu {public static void main(String[] args) {Scanner in=new Scanner(System.in);System.out.println("请输入一个正整数:");int n=in.nextInt();while(n!=1){if(n%2==0)n=n/2;elsen=3*n+1;}System.out.println("Result: "+n);}}结果:(2)小程序:package jiaoguapp;import java.applet.Applet;import java.awt.*;public class Jiaoguapp extends Applet {Label lab1;TextField input1;int n;public void init(){lab1=new Label("请输入一个正整数:");input1=new TextField(10);add(lab1);add(input1);}public boolean action(Event e,Object o){n=Integer.parseInt(input1.getText());while(n!=1){if(n%2==0)n=n/2;elsen=3*n+1;}showStatus("Result: "+n);return true;}}结果:实验二题目:编写一个模拟同时投掷两个骰子的程序。

角谷猜想证明方法

角谷猜想证明方法

角谷猜想证明方法之一:排除法。

虽然一般的角谷猜想扩展的题目都可以发现反例子,除了化简版本以外,这证明了那些扩展题目都是错误的,但是对于它们的研究有助于发现反例子的规律......目前已经总结出的主反例子的规律是:1、无限归结因为是无限的所以没有办法归结于1 。

(数量必定无穷多个)2、循环归结因为没完没了而无法归结于1(泛指3个或者是3个以上的奇数出现的病态循环归结)。

3、互相归结同样因为没完没了而无法归结于1(特指2个奇数出现的病态互相归结)。

以上的这3种主反例子的病态归结都在角谷猜想的深度扩展题目里面有真实存在的例子。

对于角谷猜想的原题以及化简版本都是目前没有发现任何反例子的,化简版本只简单想一下就知道是成立而不存在反例子的,原题版本则需要证明是否存在反例子,使用排除法,首先排除偶数,再次排除能被3整除的奇数,以上的这3种反例子的类型都出现在奇数,而且是不能被3(或者是B)整除的奇数...该规律对于一切的角谷猜想扩展题目都适用。

也就是说只剩下不能被3(或者是B)整除的奇数没有被排除。

一旦今后有什么办法可以排除这一个类型的奇数也不存在主反例子,那么角谷猜想被证明就会大功告成,圆满结束。

偶数、能被3(或者是B)整除的奇数就算出现反例子,也只能是牵连反例子。

还有更加严格的证明,只可惜地方太小无法出示。

任何一道角谷猜想的深度扩展的题目只需要找到2个主反例子就会出现数量无穷多个牵连反例子。

也就是说一个反例子就足够推翻一个猜想。

其中主反例子都只出现在不能被3(或者是B)整除的奇数,数量有可能是无穷多个。

牵连反例子都只出现在能被3(或者是B)整除的奇数,或者是偶数,数量都必定是无穷多个。

角谷猜想证明方法之二:逆向思维法任给一个正整数n,如果n 能被a 整除,就将它变为n/a,如果除后不能再整除,则将它乘b 加c(即bn+c)。

不断重复这样的运算,经过有限步后,一定可以得到d 吗?对此题的答案只能有3 种:不一定、一定不、一定都。

角谷猜想证明

角谷猜想证明

角谷猜想证明王锦根黄山市黄山区房地产管理局 245799摘要:本文应用反证法,通过黑洞数唯1,3x+1必唯1,证明3x+1猜想成立。

关键词: 角谷猜想黑洞一、“角谷猜想”概念“角谷猜想”又称“冰雹猜想”、哈塞猜想、乌拉姆猜想或叙拉古猜想,它首先流传于美国,不久便传到欧洲,后来一位名叫角谷的日本人把它带到亚洲,因而人们就顺势把它叫做“角谷猜想”。

“角谷猜想”又叫奇偶归一猜想(英语:Collatz conjecture),是指对于每一个正整数,如果它是奇数,则对它乘3再加1,如果它是偶数,则对它除以2,如此循环,最终都能够得到1。

如果我给他命名,应该是:殊途归一,不管什么数,经过这么一个过程都归到“1”。

取一个数字,如x=11(考虑属于自然数范畴,在此处不用x表示,用x表示),根据上述公式,得出 11→34→17→52→26→13→40→20→10→5→16→8→4→2→1。

简约一下就是,11→34→17→52→13→40→5→16→1。

应该说,角谷猜想是一种数学黑洞现象,它最终进入1→4→1的循环圈。

倒推过来可以得到这样一类奇数,当x=(4k-1)/3时,x展开来就是4k−1+4k−2+……+4+1,k∈x;具体为:1,5,21,85,……,(4k-1)/3,始终满足角谷猜想,可惜不是全部奇数。

二、验证根据角谷猜想,数学家或数学爱好者总希望找到除了1以外,还有其他的循环圈(黑洞),在计算机的应用下,目前已有人经验证的最大数目达到1099511627776或更大。

我也曾逆向尝试,运用x=(4k-1)/3倒推,看扩散的奇数能否满足所有的奇数,由于无规律可循,终究不得而知。

三、证明现在做两个假设,一是一个奇数如果经过3x+1运算法则,不回到黑洞数1,则必有另有一个奇数;如果证明没有除1以外的黑洞数,任一奇数按照3x+1法则运算,必穷尽其他所有的奇数,或归属这样一类(4k-1)/3的奇数(含1),从而最终落入黑洞数1。

角谷猜想的证明

角谷猜想的证明

角谷猜想一简介考拉兹猜想,又称为3n+1猜想、角谷猜想、哈塞猜想、乌拉姆猜想或叙拉古猜想,是由日本数学家角谷静夫发现,是指对於每一个正整数,如果它是奇数,则对它乘3再加1,如果它是偶数,则对它除以2,如此循环,最终都能够得到1。

取一个数字如n = 6,根据上述公式,得出6→3→10→5→16→8→4→2→1。

(步骤中最大的数是16,共有7个步骤)如n = 11,根据上述公式,得出11→34→17→52→26→13→40→20→10→5→16→8→4→2→1。

(步骤中最大的数是52,共有13个步骤)如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→1 67→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。

注意:与角谷猜想相反的是蝴蝶效应,初始值极小误差,会造成巨大的不同;而3x+1恰恰相反,无论多么大的误差,都是会自行的恢复。

角谷猜想的证明

角谷猜想的证明

一、“角谷猜想”概念“角谷猜想”又称“冰雹猜想”、哈塞猜想、乌拉姆猜想或叙拉古猜想,它首先流传于美国,不久便传到欧洲,后来一位名叫角谷的日本人把它带到亚洲,因而人们就顺势把它叫做“角谷猜想”。

“角谷猜想”又叫奇偶归一猜想(英语:Collatz conjecture),是指对于每一个正整数,如果它是奇数,则对它乘3再加1,如果它是偶数,则对它除以2,如此循环,最终都能够得到1。

如果我给他命名,应该是:殊途归一,不管什么数,经过这么一个过程都归到“1”。

取一个数字,如x=11(考虑属于自然数范畴,在此处不用x表示,用x表示),根据上述公式,得出 11→34→17→52→26→13→40→20→10→5→16→8→4→2→1。

简约一下就是,11→34→17→52→13→40→5→16→1。

应该说,角谷猜想是一种数学黑洞现象,它最终进入1→4→1的循环圈。

倒推过来可以得到这样一类奇数,当x=(4k-1)/3时,x展开来就是4k−1+4k−2+……+4+1,k∈x;具体为:1,5,21,85,……,(4k-1)/3,始终满足角谷猜想,可惜不是全部奇数。

二、验证根据角谷猜想,数学家或数学爱好者总希望找到除了1以外,还有其他的循环圈(黑洞),在计算机的应用下,目前已有人经验证的最大数目达到1099511627776或更大。

我也曾逆向尝试,运用x=(4k-1)/3倒推,看扩散的奇数能否满足所有的奇数,由于无规律可循,终究不得而知。

三、证明现在做两个假设,一是一个奇数如果经过3x+1运算法则,不回到黑洞数1,则必有另有一个奇数;如果证明没有除1以外的黑洞数,任一奇数按照3x+1法则运算,必穷尽其他所有的奇数,或归属这样一类(4k-1)/3的奇数(含1),从而最终落入黑洞数1。

(一)黑洞数唯“1”假设任一奇数x,经过3x+1若干步骤计算,回到x(≠1),那它就会在其他数字(x)循环,则3x+1猜想不成立。

1、一步循环。

C-C++语言趣味程序设计编程百例精解(9)

C-C++语言趣味程序设计编程百例精解(9)
}
*运行结果
1) Enter a number:4312
[1]:4312-1234=3078
[2]:8730-378=8352
[3]:8532-2358=6174
2) Enter a number:8720
[1]:8720-278=8442
[2]:8499=5355
85.回文数的形成
任取一个十进制整数,将其倒过来后与原来的整数相加,得到一个新的整数后重复以上步聚,则最终可得到一个回文数。请编程验证。
*问题分析与算法设计
回文数的这一形成规则目前还属于一个猜想,尚未得到数学上的证明。有些回文数要经历上百个步聚才能获得。这里通过编程验证。
题目中给出的处理过程很清楚,算法不需要特殊设计。可按照题目的叙述直接进行验证。
*思考题
本题的求解方法是先证明,在证明的过程中找到编程的算法,然后实现编程。实际上我们也可以不进行证明,直接使用
编程中常用的试探方法来找出该数列,验证该定理。请读者自行设计算法。当然这样得到的数列可能与用定理方法得到的数列不一样。
{
parse_sort(num,each); /*将整数分解,数字存入each数组中*/
max_min(each,&max,&min); /*求数字组成的最大值和最小值*/
num=max-min; /*求最大值和最小值的差*/
printf("[%d]: %d-%d=%d\n",++count,max,min,num); /*输出该步计算过程*/
入任意正整数*/
vr6174(n); /*调用函数进行验证*/

C语言程序设计大赛题目

C语言程序设计大赛题目

C语言程序设计大赛题目C语言程序设计大赛题目Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-199981.角谷猜想日本一位中学生发现一个奇妙的“定理”,请角谷教授证明,而教授无能为力,于是产生角谷猜想。

猜想的内容是:任给一个自然数,若为偶数除以2,若为奇数则乘3加1,得到一个新的自然数后按照上面的法则继续演算,若干次后得到的结果必然为1。

请编程验证。

*问题分析与算法设计本题是一个沿未获得一般证明的猜想,但屡试不爽,可以用程序验证。

题目中给出的处理过程很清楚,算法不需特殊设计,可按照题目的叙述直接进行证。

*程序说明与注释#include<>intmain(){intn,count=0;printf("Pleaseenternumber:");scanf("%d",&n);/*输入任一整数*/do{if(n%2){n=n*3+1;/*若为奇数,n乘3加1*/printf("[%d]:%d*3+1=%d\n",++count,(n-1)/3,n);}elsen/=2;/*若为偶数n除以2*/printf("[%d]:%d/2=%d\n",++count,2*n,n);}}while(n!=1);/*n不等于1则继续以上过程*/}2.四方定理数论中着名的“四方定理”讲的是:所有自然数至多只要用四个数的平方和就可以表示。

请编程证此定理。

*问题分析与算法设计本题是一个定理,我们不去证明它而是编程序验证。

对四个变量采用试探的方法进行计算,满足要求时输出计算结果。

#include<>#include<>intmain(){intnumber,i,j,k,l;printf("Pleaseenteranumber=");scanf("%d",&number);/*输入整数*/for(i=1;i<="" p="">for(j=0;j<=i;j++)for(k=0;k<=j;k++)for(l=0;l<=k;l++)if(number==i*i+j*j+k*k+l*l)/*若满足定理要求则输出结果*/{printf("%d=%d*%d+%d*%d+%d*%d+%d*%d\n",number,i,i, j,j,k, k,l,l);exit(0);}3.验证尼科彻斯定理,即:任何一个整数的立方都可以写成一串连续奇数的和#include<>intmain(){inta,b,c,d;printf("Pleaseenteranumber:");scanf("%d",&a);/*输入整数*/b=a*a*a;/*求整数的三次方*/printf("%d*%d*%d=%d=",a,a,a,b);for(d=0,c=0;c<="">d+=a*a-a+1+c*2;/*求数列的前a项的和*/printf(c"+%d":"%d",a*a-a+1+c*2);}if(d==b)printf("Y\n");/*若条件满足则输出“Y”*/elseprintf("N\n");/*否则输出“N”*/}4.自动发牌一副扑克有52张牌,打桥牌时应将牌分给四个人。

角谷猜想的证明

角谷猜想的证明

角谷猜想一简介考拉兹猜想,又称为3n+1猜想、角谷猜想、哈塞猜想、乌拉姆猜想或叙拉古猜想,是由日本数学家角谷静夫发现,是指对於每一个正整数,如果它是奇数,则对它乘3再加1,如果它是偶数,则对它除以2,如此循环,最终都能够得到1。

取一个数字如n = 6,根据上述公式,得出6→3→10→5→16→8→4→2→1。

(步骤中最大的数是16,共有7个步骤)如n = 11,根据上述公式,得出11→34→17→52→26→13→40→20→10→5→16→8→4→2→1。

(步骤中最大的数是52,共有13个步骤)如n = 27,根据上述公式,得出:27→82→41→124→62→31→94→47→142→71→214→107→322→161→484→242→12 1→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→1 22→61→184→92→46→23→70→35→106→53→160→80→40→20→10→5→16→8→4→2→1。

(步骤中最大的数是9232,共有111个步骤)考拉兹猜想称,任何正整数,经过上述计算步骤後,最终都会得到1。

注意:与角谷猜想相反的是蝴蝶效应,初始值极小误差,会造成巨大的不同;而3x+1恰恰相反,无论多么大的误差,都是会自行的恢复。

while循环验证角谷猜想

while循环验证角谷猜想

while循环验证角谷猜想以下是使用C语言实现的验证角谷猜想的代码示例:```c#include " stdio.h"proveJiaoGu(int n) {int count = 1;while (n!=1 && count <= 1000) { /* 阈值设为1000 */if (n % 2 == 0) { /* n 为偶数 */printf(" %d/2=%d\n", n, n/2);n = n/2;} else { /* n 为奇数 */printf(" %d*3+1=%d\n", n, n*3+1);n=n*3+1;}count++;}if (count < 1000 && n == 1)printf(" This natural number is according to JiaoGu Guess\n"); }main() {int n;printf(" Please input a number to verify\n");scanf(" %d", &n);printf(" -------- Step of Verification ----------\n");proveJiaoGu(n);getche();}```该代码使用了一个`while`循环,当`n`不等于1且循环计数小于等于1000时,会继续执行循环。

在循环体内,根据`n`的奇偶性分别进行不同的计算,然后将`n`更新为计算结果。

循环结束后,如果`n`等于1,则表示该自然数符合角谷猜想,否则不符合。

你可以根据自己的需求修改代码中的变量和循环条件,以满足不同的验证需求。

角谷猜想

角谷猜想

角谷猜想这个有趣的问题流传很广,关于它的起源却众说纷纭,这个问题最初由哪位数学家提出来的,已经搞不清楚了,但似乎并不古老。

20世纪30年代,德国汉堡大学的学生柯拉茨曾经研究过它。

1950年他在美国召开的国际数学家大会上介绍了这个有趣的问题,于是这个问题得到传播。

所以有人将这个问题称为“柯拉茨问题”。

1952年,一位英国数学家独立发现了它。

几年之后,它又被一位美国数学家所发现。

20世纪50年代后,这一问题传入各国的数学界,在流传的过程中,又不断地取得新的名称。

在西方,它常常被称为“西那库斯问题”,上面提到的柯拉茨的同事汉斯曾对此问题相当感兴趣,他曾到美国的西那库斯大学进行访问,并把该问题介绍给了西那库斯大学的师生们,于是有人就将其称为“西那库斯问题”。

在东方,它常常被称为“角谷猜想”。

之所以叫这个名称,和一个叫角谷静夫的日本学者有关,是他最初把这个问题介绍到了日本,并传播到亚洲各国的。

角谷是在1960年首先听到这个猜想的。

据说,当时是日本一位中学生最先发现了该问题,他请角谷教授证明,而角谷教授无能为力,但角谷对其很感兴趣,作了研究,并将其传播开来。

美国数学家乌拉姆在美国原子弹实验室所在地洛斯阿拉莫斯及其工作的其它地方广泛推进这个问题的研究工作,因此在那些地方,这一问题又被称为“乌拉姆问题”。

今天在数学文献里,大家就简单地把它称作“3x +1问题”。

人们争先恐后地去研究这个猜想,一遍遍地进行运算,在运算的过程中发现,算出来的数一会儿大,一会儿小,有的计算过程很长。

比如你选27,算到1就需要112步。

有人把演算过程形容为云中的小水滴,在高空气流的作用下,一会儿高,一会儿低,遇冷结冰,体积越来越大,最后变成冰雹落了下来,而演算的数字最后也像冰雹一样掉了下来,变成了1。

因此,人们又给这个猜想起了个形象的名字——冰雹猜想。

曾经有人拿各种各样的数字来试,但迄今为止,总是发现它们最后都无一例外地算到了“1”,或者说都进入了“4→2→1”这个循环中。

81角谷猜想【精品文档-doc】

81角谷猜想【精品文档-doc】

81.角谷猜想日本一位中学生发现一个奇妙的―定理‖,请角谷教授证明,而教授无能为力,于是产生角谷猜想。

猜想的内容是:任给一个自然数,若为偶数除以2,若为奇数则乘3加1,得到一个新的自然数后按照上面的法则继续演算,若干次后得到的结果必然为1。

请编程验证。

*问题分析与算法设计本题是一个沿未获得一般证明的猜想,但屡试不爽,可以用程序验证。

题目中给出的处理过程很清楚,算法不需特殊设计,可按照题目的叙述直接进行证。

*程序说明与注释#include<stdio.h>int main(){int n,count=0;printf("Please enter number:");scanf("%d",&n); /*输入任一整数*/do{if(n%2){n=n*3+1; /*若为奇数,n乘3加1*/printf("[%d]:%d*3+1=%d\n",++count,(n-1)/3,n);}else{n/=2; /*若为偶数n除以2*/printf("[%d]: %d/2=%d\n",++count,2*n,n);}}while(n!=1); /*n不等于1则继续以上过程*/}82.四方定理数论中著名的―四方定理‖讲的是:所有自然数至多只要用四个数的平方和就可以表示。

请编程证此定理。

*问题分析与算法设计本题是一个定理,我们不去证明它而是编程序验证。

对四个变量采用试探的方法进行计算,满足要求时输出计算结果。

*程序说明与注释#include<stdio.h>#include<stdlib.h>int main(){int number,i,j,k,l;printf("Please enter a number=");scanf("%d",&number); /*输入整数*/for(i=1;i<number/2;i++) /*试探法。

角谷猜想C语言程序

角谷猜想C语言程序

角谷猜想C语言程序第一篇:角谷猜想C语言程序#include#includevoid main(){int i,cnt=0;printf(“请输入一个自然数:”);scanf(“%d”,&i);while(i!=1){if(i%2){printf(“%d*3+1=%dt”,i,i*3+1);i=i*3+1;cnt++;}else{printf(“%d/2=%dt”,i,i/2);i=i/2;cnt++;}if(cnt%5==0)printf(“n”);if(cnt%50==0)getch();}}第二篇:角谷猜想提供一个趣味数学游戏——角谷猜想(2009.11.26更新)我在这里向大家介绍一个始发于欧美、风靡全球的趣味数学游戏——“角谷猜想”问题。

“角谷猜想”又称“冰雹猜想”。

它首先流传于美国,不久便传到欧洲,后来一位名叫角谷的日本人又把它带到亚洲,因而人们就顺势把它叫做“角谷猜想”。

其实,叫它“冰雹猜想”更形象,也更恰当。

为什么叫它“冰雹猜想”呢?顾名思义,这首先要从自然现象——冰雹的形成谈起。

大家知道,小水滴在高空中受到上升气流的推动,在云层中忽上忽下,越积越大并形成冰,最后突然落下来,变成冰雹。

“冰雹猜想”就有这样的意思,它算来算去,数字上上下下,最后一下子像冰雹似地掉下来,变成一个数字:“1”.这个数学猜想的通俗说法是这样的:任意给一个自然数N,如果它是偶数,就将它除以2,即将它变成对任意的一个自然数施行这种演算手续,经有限步骤后,最后结果必然是最小的自然数1.对这个猜想,你不妨任意挑几个数来试一试:若 N=9,则9×3+1=28,28÷2=14,14÷2=7,7×3+1=22,22÷2=11,11×3+1=34,34÷2=17,17×3+1=52,52÷2=26,26÷2=13,13×3+1=40,40÷2=20,20÷2=10,10÷2=5,5×3+1=16,16÷2=8,8÷2=4,4÷2=2,2÷2=1.你看,经过19个回合(这叫“路径长度”),最后变成了“1”.若N=120,则120÷2=60,60÷2=30,30÷2=15,15×3+1=46,46÷2=23,23×3+1=70,70÷2=35,35×3+1=106,106÷2=53,53×3+1=160,160÷2=80,80÷2=40,40÷2=20,20÷2=10,10÷2=5,5×3+1=16,16÷2=8,8÷2=4,4÷2=2,2÷2=1.你看,经过20个回合,最后也仍然变成了“1”.有一点更值得注意,假如N是2的正整数方幂,则不论这个数字多么庞大,它将“一落千丈”,很快地跌落到1.例如:N=65536=216则有:65536→32768→16384→8192→4096→2048→1024→512→256→128→64→32→16→8→4→2→1.你看,它的路径长度为16,比9的还要小些。

角谷猜想的证明

角谷猜想的证明

角谷猜想一简介考拉兹猜想,又称为3n+1猜想、角谷猜想、哈塞猜想、乌拉姆猜想或叙拉古猜想,是由日本数学家角谷静夫发现,是指对於每一个正整数,如果它是奇数,则对它乘3再加1,如果它是偶数,则对它除以2,如此循环,最终都能够得到1。

取一个数字如n = 6,根据上述公式,得出6→3→10→5→16→8→4→2→1。

(步骤中最大的数是16,共有7个步骤)如n = 11,根据上述公式,得出11→34→17→52→26→13→40→20→10→5→16→8→4→2→1。

(步骤中最大的数是52,共有13个步骤)如n = 27,根据上述公式,得出 :27→82→41→124→62→31→94→47→142→71→214→107→322→161→484→242→121→36 4→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。

注意:与角谷猜想相反的是蝴蝶效应,初始值极小误差,会造成巨大的不同;而3x+1恰恰相反,无论多么大的误差,都是会自行的恢复。

角谷猜想给我带来的启示。(通过C++以实现。)

角谷猜想给我带来的启示。(通过C++以实现。)

⾓⾕猜想给我带来的启⽰。

(通过C++以实现。

)⾝为oi初⼼者,显然道阻且长,途中遇到很多问题,所谓的问题,是⾃⾝能⼒的缺陷所在,应予以必要之修正。

本题为⾓⾕猜想(1.5.21),题⼲是这样的:对于任意⼀个正整数,如果是奇数,则*3+1,如果是偶数,则/2,得到的结果再按上述规则重复处理,最终能得到1。

如,假定初始整数为5,计算过程分别为16、8、42、1。

要求:程序要求输⼊⼀个整数,将经过处理得到的1输出来。

最后⼀⾏输出「end」。

如果输⼊为1,直接输出「end」。

思路:⾸先,⼤致地审完题,明题意。

对于输⼊的是奇数是偶数,显然要使⽤条件语句,然后所谓的规则重复处理,⽽是循环控制,⾄于是for循环还是while循环,题⼲中出现了对于奇数或是偶数的如何操作的条件,我们选择while循环,基本结题框架就布置ok了。

在微观分析,题⼲中说得到的结果再按上述规则重复处理再根据后⾯的假定整数为5以及其计算过程,我们可以了解到⾓⾕猜想的含义,特别之处奇数,当输⼊的为奇数时,再*3+1那就成为偶数了,便按照规则要/2,再继续下去在商成为1之前⼀直是偶数。

放代码:1 #include <iostream>2 #include <cstdio>3using namespace std;45int main(){6int a;7 cin>>a;8if (a % 2 == 0 ){9while (a != 1){10 a /= 2.0;11 printf("%d\n",a);12 }13 cout<<"END"<<endl;1415 }else if (a % 2 != 0){16 a = 3 * a + 1;17while (a != 1){18 a /= 2.0;19 printf("%d\n",a);20 }21 cout<<"END"<<endl;22 }else{23 cout<<"END"<<endl;24 }2526return0;27 }(ps 那个除数可以不是2.0)我们要着重讲这个呢?原因是,由于我的思维的不严谨,导致以为是奇数时就要⼀直*3+1,结果导致溢出,当时还没察觉到,到现在才明⽩,审题的重要性,理解概念,明题意,所谓的明题意就是考查的是什么,题⼲的⼤概意思是什么,构成在解题之前的思路框架。

中南大学C++程序设计实践思考题答案

中南大学C++程序设计实践思考题答案
}
return 0;
}
三、实验思考
1.读入一个整数N,若N为非负数,则计算N到2×N之间的整数和;若N为负数,则求2×N到N之间的整数和。分别利用for和while写出两个程序。
#include<iostream>
using namespace std;
int main()
{
int N;
cin>>N;
#include <iostream>
using namespace std;
int main()
{
int x,y,z;
for(x=1;x<=16;x++)
for(y=1;y<=24;y++)
{
z=30-x-y;
if(3*x+2*y+z==50)
cout<<"Men are "<<x<<",women are "<<y <<",children are "<<z<<"."<<endl;
return number;
}
5.计算s=1+(1+2)+(1+2+3)+(1+2+3+4)+ … +(1+2+3+ … +n)的值。
方法1:
#include <iostream>
using namespace std;
int main()
{
int i,j,n;
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档