如果我写的博文《数学黑洞(一)令人拍案叫绝的卡布列克常数》惊艳到您了,那西西弗斯黑洞也同样不会让您感到失望。西西弗斯黑洞又叫123黑洞,很明显,这个要出现的不可思议的现象要与再简单不过的数字123扯上了,与6174黑洞还要限制数字位数相比,123黑洞可适用于适合正整数!那么下面我们就看一下关于这个黑洞的描述:

设定一个任意数字串,数出这个数中的偶数个数,奇数个数,及这个数中所包含的所有位数的总数,

  例如:1234567890,   偶:数出该数数字中的偶数个数,在本例中为2,4,6,8,0,总共有 5 个。   奇:数出该数数字中的奇数个数,在本例中为1,3,5,7,9,总共有 5 个。   总:数出该数数字的总个数,本例中为 10 个。   新数:将答案按 “偶-奇-总” 的位序,排出得到新数为:5510。   重复:将新数5510按以上算法重复运算,可得到新数:134。   重复:将新数134按以上算法重复运算,可得到新数:123。   结论:对数1234567890,按上述算法,最后必得出123的结果,换言之,任何数的最终结果都无法逃逸123黑洞。

下面我们还是用程序验证这一结论。

代码清单:

import java.util.Random;public class HeiDong123 {static final int N = 100;static int count = 0;public static void main(String[] args) {Random r = new Random();/*随机产生N个随机数进行测试*/for(int i = 0; i < N; i++)go(r.nextInt(r.nextInt(1000000)+1)); /*判断N个随机数结果是否产生N个123*/System.out.println(count == N);}private static void go(int a) {int oushu = 0;int jishu = 0;int sum = 0;while(a > 0){if((a & 1) == 0)oushu++;elsejishu++;a /= 10;}sum = oushu + jishu;int temp = sum;int n = 1;while(temp > 0){n *= 10;temp /= 10;}int m = n;temp = jishu;if(temp == 0)jishu = 10;while(temp > 0){m *= 10;temp /= 10;}sum = oushu * m + jishu * n + sum;if(sum == 123){count++;return;}go(sum);}}

此问题已在2010年由我国的唯美主义和自然主义男士秋屏证明。

以下内容转载至秋屏的新浪博客上的证明原文:

http://blog.sina.com.cn/s/blog_4d2e0dd80100ih0x.html

“西西弗斯串(数学黑洞)”现象与其证明

                                                             □     秋 屏

由若干个阿拉伯数字从左至右排列而成的一串数字符号,叫做数字串。如:“0”,“12”,“235”,“333”,“1403765”,“00587465132098”等等,就分别是一个数字串。显然任意一数字串中均含有若干个由一个阿拉伯数字构成的奇数或偶数。

“数学黑洞”现象:取任意一数字串,(1)先数一下其中所含由一个阿拉伯数字构成的偶数个数,比如个数是“m”,就记作“m”。(2)再数一下其中所含由一个阿拉伯数字构成的奇数个数,比如个数是“n”,就在“m”后面记作“n”——得出“mn”。(3)最后算一下其中所含阿拉伯数字的总个数,即把“m”加 “n”的和算出,比如和是“l”,就在“mn”后面记作“l”——得出“mnl”。经过以上三个步骤的程序操作,就将原数字串转变成了“mnl”这个数字串。此时会发现:也许按本程序操作一次,所转变成的数字串就是数字串“123”;否则,将转变成的数字串继续按本程序操作,这样反复操作下去最终总可将原数字串转变成数字串“123”。而且一旦将原数字串转变成数字串“123”后,无论再对“123”按本程序操作多少次,所转变成的数字串总还是“123”,而不会是其他形式的数字串。这就是说对任意一数字串按本程序反复操作下去,最终所转变的数字串总是“123”。因此对于这个程序以及“数字宇宙(即无限个数字串)”来说,数字串“123”就是一个永远无法逃逸的“数学黑洞”。数字串“123”也称作西西弗斯串。西西弗斯的故事出自希腊神话,天神罚科林斯国王西西弗斯将一块巨石推到一座陡峭的山顶上,但无论他怎样努力,这块巨石总是在到达山顶时却又不可避免地滚下来,于是他只得重新再推,永无休止。之所以把数字串“123”称作西西弗斯串,意思是说对于任意一数字串按本程序反复操作下去,所得的结果都是“123”,而且一旦转变成“123”后,无论再按本程序操作多少次,每次所转变的结果都会永无休止地重复着“123”。

例如:对数字串“235”按本程序反复操作。先数下其中所含由一个阿拉伯数字构成的偶数个数,个数为“1”,就记作“1”。再数下其中所含由一个阿拉伯数字构成的奇数个数,个数为“2”,就在“1”后面记作“2”——得出“12”。最后算一下其中所含阿拉伯数字的总个数,即把“1”和“2”的和算出,和是“3”,就在“12”后面记作“3”——得出“123”。这样原数字串就转变成了“123”。而后对“123”继续按本程序操作任意次,结果还是转变成“123”。

例如:对数字串“0”按本程序反复操作。先数下其中所含由一个阿拉伯数字构成的偶数个数,个数为“1”,就记作“1”。再数下其中所含由一个阿拉伯数字构成的奇数个数,个数为“0”,就在“1”后面记作“0”——得出“10”。最后算一下其中所含阿拉伯数字的总个数,即把“1”和“0”的和算出,和是“1”,就在“10”后面记作“1”——得出“101”。这样就把原数字串转变成了“101”。继续对“101”按本程序操作,先数下其中所含由一个阿拉伯数字构成的偶数个数,个数为“1”,就记作“1”。再数下其中所含由一个阿拉伯数字构成的奇数个数,个数为“2”,就在“1”后面记作“2”——得出“12”。最后算一下其中所含阿拉伯数字的总个数,即把“1”和“2”的和算出,和是“3”,就在“12”后面记作“3”——得出“123”。这样“101”就转变成了“123”。而后对“123”继续按本程序操作任意次,结果还是转变成“123”。

例如:对数字串“333”按本程序反复操作。先数下其中所含由一个阿拉伯数字构成的偶数个数,个数为“0”,就记作“0”。再数下其中所含由一个阿拉伯数字构成的奇数个数,个数为“3”,就在“0”后面记作“3”——得出“03”。最后算一下其中所含阿拉伯数字的总个数,即把“0”和“3”的和算出,和是“3”,就在“03”后面记作“3”——得出“033”。这样就把原数字串转变成了“033”。继续对“033”按本程序操作,就可将其转变成“123”。而后对“123”继续按本程序操作任意次,结果还是转变成“123”。

例如:对数字串“005874626820987688899445321068215”按本程序反复操作。先数下其中所含由一个阿拉伯数字构成的偶数个数,个数为“22”,就记作“22”。再数下其中所含由一个阿拉伯数字构成的奇数个数,个数为“11”,就在“22”后面记作“11”——得出“2211”。最后算一下其中所含阿拉伯数字的总个数,即把“22”和“11”的和算出,和是“33”,就在“2211”后面记作“33”——得出“221133”。这样就把原数字串转变成了“221133”。继续对“221133”按本程序操作,就可将其转变成“246”。继续对“246”按本程序操作,就可将其转变成“303”。继续对“303”按本程序操作,就可将其转变成“123”。而后对“123”继续按本程序操作任意次,结果还是转变成“123”。

如果将本程序的三个步骤作出相应改变,比如先数下数字串中所含由一个阿拉伯数字构成的奇数个数,记下。再数下数字串中所含由一个阿拉伯数字构成的偶数个数,记下。最后算一下数字串中所含阿拉伯数字的总个数,记下。这样就能形成“数学黑洞”——“213”;比如先数下数字串中所含阿拉伯数字的总个数,记下。再数下数字串中所含由一个阿拉伯数字构成的偶数个数,记下。最后算一下数字串中所含由一个阿拉伯数字构成的奇数个数,记下。这样就能形成“数学黑洞”——“312”;比如先数下数字串中所含阿拉伯数字的总个数,记下。再数下数字串中所含由一个阿拉伯数字构成的奇数个数,记下。最后算一下数字串中所含由一个阿拉伯数字构成的偶数个数,记下。这样就能形成“数学黑洞”——“321”;比如先数下数字串中所含由一个阿拉伯数字构成的偶数个数,记下。再数下数字串中所含阿拉伯数字的总个数,记下。最后算一下数字串中所含由一个阿拉伯数字构成的奇数个数,记下。这样就能形成“数学黑洞”——“132”;比如先数下数字串中所含由一个阿拉伯数字构成的奇数个数,记下。再数下数字串中所含阿拉伯数字的总个数,记下。最后算一下数字串中所含由一个阿拉伯数字构成的偶数个数,记下。这样就能形成“数学黑洞”——“231”。

为什么会形成这样的“数学黑洞”现象呢?下面就作出数学证明。

“西西弗斯串(数学黑洞)”——“123”的证明过程

在证明之前,首先探讨下自然数和阿拉伯数字个数之间的关系。

规律一:一个大于“0”且含有“k(k为大于‘0’的自然数)”个阿拉伯数字的自然数N,其取值范围为:10k-1≦N≦10k-1。(此规律证明过程略)

如:1≦N≦9;10≦N≦99;100≦N≦999;1000≦N≦9999;10000≦N≦99999……

规律二:一个含有“k(k为大于‘0’的自然数)”个阿拉伯数字的自然数可表示为两个自然数之和,那么这后两个自然数中所含阿拉伯数字的个数,均不能超过“k”,却可能同时为“k”。因此,(一)当k=1时,这三个具有加法运算关系的自然数中所含阿拉伯数字的个数之和,只能有唯一的值,其值是:3k。(二)当k﹥1时,这三个具有加法运算关系的自然数中所含阿拉伯数字的个数之和,会有若干个值,而每个值均大于“3”,并且可能存在的最大值是:3k。(此规律证明过程略)

如:“0,1,2,9……”这些自然数中含有“1”个阿拉伯数字,并且它们均可表示为两个自然数之和,而在“0=0+0;1=1+0;2=1+1,2=2+0;9=4+5,9=9+0……”中,三个具有加法运算关系的自然数中所含阿拉伯数字的个数之和,只能有唯一的值,其值是:3k=3×1=3。

如:“1000,3333,9856,9999……”这些自然数中含有“4”个阿拉伯数字,并且它们均可表示为两个自然数之和,而在“1000=998+2,1000=990+10,1000=600+400,1000=1000+0;3333=3330+3,3333=3300+33,3333=2833+500,3333=3333+0,3333=1000+2333;9856=9855+1,9856=9800+56,9856=9000+856,9856=9856+0,9856=8132+1724;9999=9997+2,9999=9900+99,9999=9000+999,9999=9999+0,9999=1000+8999……”中,三个具有加法运算关系的自然数中所含阿拉伯数字的个数之和,有3或4个值,而每个值均大于“3”,并且可能存在的最大值是:3k=3×4=12。

下面便是“西西弗斯串(数学黑洞)”——“123”的证明步骤。

1.对所含阿拉伯数字的总个数不大于“3”的数字串,按本程序操作一次,则可将其转变成数字串“abc(a,b,c分别为自然数;a系前一个数字串中所含由一个阿拉伯数字构成的偶数个数;b系前一个数字串中所含由一个阿拉伯数字构成的奇数个数;c系前一个数字串中所含阿拉伯数字的总个数,且c=a+b≦3)”的形式。因其中c≦3,故可知c中所含阿拉伯数字的个数k=1。根据规律二中(一)的描述可知,c,a,b中所含阿拉伯数字的个数之和是:3k=3×1=3,即“abc” 中所含阿拉伯数字的总个数为“3”。

2.对所含阿拉伯数字的总个数不小于“4”的数字串,按本程序操作一次,则可将其转变成数字串“abc(a,b,c分别为自然数;a系前一个数字串中所含由一个阿拉伯数字构成的偶数个数;b系前一个数字串中所含由一个阿拉伯数字构成的奇数个数;c系前一个数字串中所含阿拉伯数字的总个数,且c=a+b≧4)”的形式。因其中c≧4,故可知c中所含阿拉伯数字的个数k≧1(k系自然数)。

1)当k=1时,①根据规律一的描述可知,c的取值范围为:10k-1≦c≦10k-1,即1≦c≦9。又因为此时c≧4,而4﹥1,所以c的真正取值范围是:4≦c≦9。因为c的真正最小值为“4”,故前一个数字串中所含阿拉伯数字的总个数至少为“4”。②根据规律二中(一)的描述可知,c,a,b中所含阿拉伯数字的个数之和是:3k=3×1=3,即“abc” 中所含阿拉伯数字的总个数为“3”。显然“abc” 中所含阿拉伯数字的总个数,要比前一个数字串中所含的有所减少。

2)当k﹥1时,①根据规律一的描述可知,c的取值范围为:10k-1≦c≦10k-1。虽然此时c≧4,而10k-1﹥4(此不等式的证明过程略),所以c的真正取值范围还是:10k-1≦c≦10k-1。因为c的真正最小值为“10k-1”,故前一个数字串中所含阿拉伯数字的总个数至少为“10k-1”。②根据规律二中(二)的描述可知,c,a,b中所含阿拉伯数字的个数之和大于“3”,并且可能存在的最大值是:3k,即“abc” 中所含阿拉伯数字的总个数大于“3”,并且最多不会超过“3k”。因为此时10k-1﹥3k(此不等式的证明过程略),所以“abc” 中所含阿拉伯数字的总个数大于“3”,并且要比前一个数字串中所含的有所减少。

因为1)中“abc” 中所含阿拉伯数字的总个数等于“3”,而2)中“abc” 中所含阿拉伯数字的总个数大于“3”,所以此时合并而论,“abc” 中所含阿拉伯数字的总个数即不小于“3”。再由1)和2)的结论可知,只要对所含阿拉伯数字的总个数不小于“4”的数字串,按本程序操作一次,所转变成的数字串中所含阿拉伯数字的总个数不小于“3”,并且和前一个数字串中所含的相比就会减少。若所转变成的数字串中所含阿拉伯数字的总个数还不小于“4”,继续对此数字串按本程序操作,同理,再次转变成的数字串中所含阿拉伯数字的总个数不小于“3”,并且和前一个数字串中所含的相比还会减少……如此减少下去,这种减少趋势直到减少到所含阿拉伯数字的总个数是“3”时为止。

3.通过对1.和2.的结论的分析,不难想象还会进一步推导出这样的综合结论——任意一数字串“Q”,无论其中所含阿拉伯数字的总个数是多少,若按本程序操作若干次后,总可将其转变成所含阿拉伯数字的总个数为“3”的数字串“mnl(m,n,l分别为自然数;m系前一个数字串中所含由一个阿拉伯数字构成的偶数个数;n系前一个数字串中所含由一个阿拉伯数字构成的奇数个数;l系前一个数字串中所含阿拉伯数字的总个数,且l=m+n)”。

继续对“mnl” 按本程序操作一次后,则可将其转变成数字串“pqr(p,q,r分别为自然数;p系前一个数字串中所含由一个阿拉伯数字构成的偶数个数;q系前一个数字串中所含由一个阿拉伯数字构成的奇数个数;r系前一个数字串中所含阿拉伯数字的总个数,且r=p+q)”。因为“mnl” 中所含阿拉伯数字的总个数是“3”,故“pqr”中的“r” 就等于“3”,由此可知“pqr”即是“pq3”这个数字串,且其中所含阿拉伯数字的总个数是“3”,同时3=p+q。同理,继续对“pq3” 按本程序操作一次后,则可将其转变成数字串“xy3(x,y分别为自然数;x系前一个数字串中所含由一个阿拉伯数字构成的偶数个数;y系前一个数字串中所含由一个阿拉伯数字构成的奇数个数;3系前一个数字串中所含阿拉伯数字的总个数,且3=x+y)”。在“pq3”中,因为3=p+q,且“3”系奇数,故可知“p”和“q”这两个自然数一个必是奇数,一个必是偶数,即“pq3”中所含阿拉伯数字的总个数是“3”,由一个阿拉伯数字构成的偶数个数是“1”,由一个阿拉伯数字构成的奇数个数是“2”。因而“xy3”中的“x”就等于“1”,“y”就等于“2”,由此可知“xy3”即是数字串“123”。而“123”就其中所含阿拉伯数字的总个数“3”以及其中三个数字之间的关系“3=1+2”而言,恰好属于“pq3”这种组成形式,同理,所以对“123”不论再按本程序操作多少次,其结果都还会是“123”,并且不可能再转变成其他形式的数字串。也就说数字串“123”是对任意一数字串“Q”按本程序反复操作下去的最终结果。至此,“西西弗斯串(数学黑洞)”——“123”现象得证。  

至于三个步骤相应改变后的程序所导致的“数学黑洞”——“213”、“312”、“321”、“132”和“231”现象的证明方法与本证明相似,这里就不再赘述。

==================================================================================================

  作者:nash_  欢迎转载,与人分享是进步的源泉!

  转载请保留原文地址:http://blog.csdn.net/nash_/article/details/8249661

===================================================================================================

数学黑洞(二)任何数都逃不出的西西弗斯黑洞相关推荐

  1. 数字黑洞(一):西西弗斯黑洞

    20175234 2018-2019-2 个人项目:数字黑洞(一):西西弗斯黑洞 数学黑洞 定义:对于数学黑洞,无论怎样设值,在规定的处理法则下,最终都将得到固定的一个值,再也跳不出去了,就像宇宙中的 ...

  2. Java——西西弗斯数

    西西弗斯数是一个简单的黑洞数,也是十分有趣 任意输入一个数字,尽量越长越好,统计其中奇数和偶数的个数,统计数字总长度,这三个数拼起来就得到一个新的数字,例如,"奇数个数"+&quo ...

  3. 西西弗斯数的转换|C++

    在做习题课答案的时候遇见的题目,虽然写起来很容易,但是好有趣啊. 题目: 我们取任一个数,如81872115378,其中偶数个数是4,奇数个数是7,是11位数,又组成一个新的数4711.该数有1个偶数 ...

  4. 用python实现西绪福斯黑洞(即123数字黑洞)的演示

    目录 一.123数字黑洞描述 二.问题解决 1.内容描述 2.实现思路 3.代码功能实现 (1)分解输入的数字字符串,生成数字列表 (2)由数字列表生成新的数字字符串 (3)主程序实现输入和输出 三. ...

  5. 小学计算机走进智慧城堡教案,新苏教版二年级下册数学《千以内数的初步认识》教案教学设计...

    新苏教版二年级下册数学<千以内数的初步认识>教案教学设计 第四单元  课题:千以内数的初步认识 第1课时 总第  课时 教学目标: 1.经历数数的过程,体验数的发展.通过操作实践活动,初步 ...

  6. 诺奖以上,真相未满:追捕黑洞二百年

    如果做一个"天体人气榜",那黑洞应该是当之无愧的冠军. 刚刚,黑洞又一次跃入了大众的视线.北京时间 10 月 6 日,诺贝尔委员会宣布2020年诺贝尔物理学奖被分成两部分,一部分授 ...

  7. Acwing - 算法基础课 - 笔记(数学知识 · 二)

    文章目录 数学知识(二) 欧拉函数 公式法 筛法 欧拉定理 快速幂 扩展欧几里得算法 中国剩余定理 数学知识(二) 这一小节主要讲解的内容是:欧拉函数,快速幂,扩展欧几里得算法,中国剩余定理. 这一节 ...

  8. 叉乘点乘混合运算公式_小学数学所有公式和顺口溜都在这里了,假期让孩子背熟!...

    数学公式和概念一直贯穿着整个数学学习过程,对小学生来说,掌握好这部分知识,在学习过程中才能做到游刃有余. 小学阶段是孩子们学习新知识的重要阶段,为了帮助孩子们更好的学习和复习,今天老师特意总结了1-6 ...

  9. 高一下册计算机教案,高一下册数学必修二教案

    [导语]高一新生要根据自己的条件,以及高中阶段学科知识交叉多.综合性强,以及考查的知识和思维触点广的特点,找寻一套行之有效的学习方法.今天无忧考网为各位同学整理了<高一下册数学必修二教案> ...

最新文章

  1. 【spring boot2】第2篇:配置文件YAML语法
  2. 微信小程序用wxs实现手机号码用****代替
  3. fresco xml配置属性不起作用
  4. 编写程序,定义一个方法,能够判断一个1~9999之间的数是否是回文数。
  5. C#开发笔记之11-如何用C#过滤连续相同的字符串?
  6. linux7 多路径配置,redhat7.3多路径配置
  7. matlab三相系统电阻折算,基于MATLAB三相异步电动机调压调速系统方案.doc
  8. Maven环境变量配置
  9. 恭喜本月拍牌中标了-上海!
  10. 科学计算机怎么解一元一次方程,解一元一次方程“八不要”
  11. cacheable注解原理_@Cacheable的实现原理
  12. macOS安装homebrew与更新gcc
  13. uniapp使用插件 小程序正常 app报错cid unmatched at view.umd.min.js:1
  14. 一个月瘦10斤的计划
  15. BarTender 打印机的控制详解
  16. 其他浏览器(firefox,chrome)可以上网 ie(Internet Explorer)无法上网 解决方法
  17. 解决linux下/etc/rc.local开机器不执行的原因
  18. 正面管教之PHP_“PHP父母帮助父母解决问题”活动
  19. 【iCore1S 双核心板_FPGA】例程十五:基于I2C的ARM与FPGA通信实验
  20. 文件时间修改器,修改文件创建时间、修改时间

热门文章

  1. linux 下的文本处理——除去重复行uniq命令
  2. Day524.其他数据库日志 -mysql
  3. 哥白尼计划(Copernicus initiative)
  4. P1903 数颜色 (带修莫队)
  5. 电信3G免费升级4G送12G流量
  6. 想调节—下父元素的透明度,但是又不影响子元素的透明度,怎么破?
  7. Android APP一段时间无操作显示屏保
  8. 电子制作——一个电调的诞生之路
  9. 微信小程序接入第三方接口
  10. 沟通的艺术:看人入里,看出人外 - part 1