python求任意数的黑洞数(python黑洞数程序新手)

发布时间:2022-11-08

本文目录一览:

  1. 数字黑洞:python-matplotlib来实现可视化
  2. 有一种数字游戏,可以产生“黑洞数”,操作步骤如下:第一步,任意写一个自然数(以下简称为原数);第二
  3. 数学黑洞 什么是黑洞数
  4. 有一种数字游戏,可以产生“黑洞数”,操作步骤如下:第一步,任意写出一个自然数(以下称为原数);第二
  5. 有一种数学游戏,可以产生"黑洞数"操作步骤如下:第一步,任意写出一个自然数(以下称为原数);

数字黑洞:python-matplotlib来实现可视化

说明

2020年诺贝尔生物理学奖获得者:

  • 英国科学家 罗杰·彭罗斯(Roger Penrose) ,因他发现 黑洞 的形成是广义相对论的一个预言;
  • 德国科学家 莱因哈德·根泽尔(Reinhard Genzel)
  • 美国女科学家 安德烈亚·盖兹(Andrea Ghez) ,因他们发现银河系中心的超大质量致密天体。

数字黑洞与python-matplotlib可视化

数字黑洞:

无论怎样数值,在规定的处理法则下,最终都将得到固定的一个值,再也跳不出去了,就像宇宙中的黑洞可以将任何物质,以及运行速度最快的光牢牢吸住,不使它们逃脱一样。

看似无聊,但是数学是宇宙中一切的基础。

一个有意思的数字 游戏 ,即:输入一个非0的自然数,

  • 若为奇数则*3-1;
  • 若是偶数则/2,并且得到的自然数继续进行这样的运算,到1则停止
  • (会导致最后五个数值都是: 1 回落)特点在于:
    • 不论输入什么自然数(0除外),最终的结果都是1,就像黑洞一样,无论什么数字都无法逃脱。

python-matplotlib可视化来看看效果:

matplotlib代码

基础代码1:

来自这篇文章

完整版matplotlib可视化代码2:

后10位数字黑洞数值的可视化代码3:

当然数字黑洞还有很多,上面只是其中一个方法,最终回落1,就像宇宙中的黑洞存在。

有一种数字游戏,可以产生“黑洞数”,操作步骤如下:第一步,任意写一个自然数(以下简称为原数);第二

第一步:任意写一个自然数2004, 第二步;∵2004的偶数数字是2、0、0、4,有四个数字, ∴新三位数的百位数字是4, ∵2004的奇数数字有0个, ∴新三位数的十位数字是0, ∵2004由四位数组成, ∴新三位数的个位数字是4, ∴新三位数是404; 第三步;∵404的偶数数字是4、0、4,有三个数字, ∴新三位数的百位数字是3, ∵404的奇数数字有0个, ∴新三位数的十位数字是0, ∵404由三位数组成, ∴新三位数的个位数字是3, ∴新三位数是303; 第四步;∵303的偶数数字是0,有一个数字, ∴新三位数的百位数字是1, ∵303的奇数数字有2个, ∴新三位数的十位数字是2, ∵303由三位数组成, ∴新三位数的个位数字是3, ∴新三位数是123; 第五步;∵123的偶数数字是2,有一个数字, ∴新三位数的百位数字是1, ∵123的奇数数字有2个, ∴新三位数的十位数字是2, ∵123由三位数组成, ∴新三位数的个位数字是3, ∴新三位数是123; ∴这个数是123. 故选C.

数学黑洞 什么是黑洞数

对于数学黑洞,无论怎样设值,在规定的处理法则下,最终都将得到固定的一个值,再也跳不出去了,就像宇宙中的黑洞可以将任何物质,以及运行速度最快的光牢牢吸住,不使它们逃脱一样。这就对密码的设值破解开辟了一个新的思路。 中文名
数学黑洞 外文名
Digital black hole 应用
密码破解 实例
西西弗斯串、卡普雷卡尔常数等 实例
123数学黑洞 123数学黑洞,即西西弗斯串。[1][2][3][4] 西西弗斯串可以用几个函数表达它,我们称它为西西弗斯级数,表达式如下: F 是一级原函数,k级通项式为它的迭代循环 它的vba程序代码详细底部目录 数学黑洞 设定一个任意数字串,数出这个数中的偶数个数,奇数个数,及这个数中所包含的所有位数的总数, 例如:1234567890,

  • 偶:数出该数数字中的偶数个数,在本例中为2,4,6,8,0,总共有 5 个。
  • 奇:数出该数数字中的奇数个数,在本例中为1,3,5,7,9,总共有 5 个。
  • 总:数出该数数字的总个数,本例中为 10 个。
  • 新数:将答案按 “偶-奇-总” 的位序,排出得到新数为:5510。
  • 重复:将新数5510按以上算法重复运算,可得到新数:134。
  • 重复:将新数134按以上算法重复运算,可得到新数:123。
  • 结论:对数1234567890,按上述算法,最后必得出123的结果,我们可以用计算机写出程序,测试出对任意一个数经有限次重复后都会是123。换言之,任何数的最终结果都无法逃逸123黑洞。 为什么有数学黑洞“西西弗斯串”呢?
  1. 当是一个一位数时,如是奇数,则k=0,n=1,m=1,组成新数011,有k=1,n=2,m=3,得到新数123; 如是偶数,则k=1,n=0,m=1,组成新数101,又有k=1,n=2,m=3,得到123。
  2. 当是一个两位数时,如是一奇一偶,则k=1,n=1,m=2,组成新数112,则k=1,n=2,m=3,得到123; 如是两个奇数,则k=0,n=2,m=2,组成022,则k=3,n=0,m=3,得303,则k=1,n=2,m=3,也得123; 如是两个偶数,则k=2,n=0,m=2,得202,则k=3,n=0,m=3,由前面亦得123。
  3. 当是一个三位数时,如三位数是三个偶数字组成,则k=3,n=0,m=3,得303,则k=1,n=2,m=3,得123; 如是三个奇数,则k=0,n=3,m=3,得033,则k=1,n=2,m=3,得123; 如是两偶一奇,则k=2,n=1,m=3,得213,则k=1,n=2,m=3,得123; 如是一偶两奇,则k=1,n=2,m=3,立即可得123;
  4. 当是一个M(M>3)位数时,则这个数由M个数字组成,其中N个奇数数字,K个偶数数字,M=N+K。 由KNM联接生产一个新数,这个新数的位数要比原数小。重复以上步骤,一定可得一个三位新数knm。 以上仅是对这一现象产生的原因,简要地进行分析,若采取具体的数学证明,演绎推理步骤还相当繁琐和不易。直到2010年5月18日,关于“123数学黑洞(西西弗斯串)”现象才由中国回族学者秋屏先生于作出严格的数学证明,并推广到六个类似的数学黑洞(“123”、“213”、“312”、“321”、“132”和“231”),这是他的论文:《“西西弗斯串(数学黑洞)”现象与其证明》(正文网址在该词条最下面的“参考资料”中,可点击阅读)。自此,这一令人百思不解的数学之谜已被彻底破解。此前,美国宾夕法尼亚大学数学教授米歇尔·埃克先生仅仅对这一现象作过描述介绍,却未能给出令人满意的解答和证明。[4] 可用Pascal语言完成:
Var n, j, e, z, z1, j1, t: longint;
Begin
readln(n);
t := 0;
repeat
e := 0; j := 0; z := 0;
while n > 0 do begin
if n mod 10 mod 2 = 0
then e := e + 1
else j := j + 1;
z := z + 1;
n := n div 10;
end;
if j > 10
then j1 := 10
else j1 := 100;
if z > 10
then z1 := 10
else z1 := 100;
n := e * j1 * z1 + j * z1 + z;
writeln(n);
t := t + 1;
until n = 123;
writeln('t = ', t);
readln;
End.

Python代码实现:

def num_calculate(str_number):
    even, ood = [], []
    for i in str_number:
        if int(i) % 2 == 0:
            even.append(i)
        else:
            ood.append(i)
    str_list = "".join([str(len(even)), str(len(ood)), str(len(even)+len(ood))])
    return str_list
def BlackHole(str_number):
    i = 0
    number = num_calculate(str_number)
    while 1:
        i += 1
        print('第{}次:{}'.format(i, number))
        number = num_calculate(number)
        if int(number) == 123:
            print('第{}次:{}'.format(i, number))
            break
if __name__ == '__main__':
    BlackHole(input("随意输入一个数字: "))

6174数学黑洞

(即卡普雷卡尔(Kaprekar)常数) 比123黑洞更为引人关注的是6174黑洞值,它的算法如下: 取任意一个4位数(4个数字均为同一个数的,以及三个数字相同,另外一个数与这个数相差1,如1112,6566等除外),将该数的4个数字重新组合,形成可能的最大数和可能的最小数,再将两者之间的差求出来;对此差值重复同样过程,最后你总是至达卡普雷卡尔黑洞6174,到达这个黑洞最多需要14个步骤。 例如:

  • 大数:取这4个数字能构成的最大数,本例为:4321;
  • 小数:取这4个数字能构成的最小数,本例为:1234;
  • 差:求出大数与小数之差,本例为:4321-1234=3087;
  • 重复:对新数3087按以上算法求得新数为:8730-0378=8352;
  • 重复:对新数8352按以上算法求得新数为:8532-2358=6174;
  • 结论:对任何只要不是4位数字全相同的4位数,按上述算法,不超过9次计算,最终结果都无法逃出6174黑洞; 比起123黑洞来,6174黑洞对首个设定的数值有所限制,但是,从实战的意义上来考虑,6174黑洞在信息战中的运用更具有应用意义。 设4位数为 XYZM,则X-Y=1;Y-Z=2;Z-M=3;时,永远出现6174,因为123黑洞是原始黑洞,所以……

自幂数

除了0和1自然数中各位数字的立方之和与其本身相等的只有153、370、371和407(此四个数称为“水仙花数”)。例如为使153成为黑洞,我们开始时取任意一个可被3整除的正整数。分别将其各位数字的立方求出,将这些立方相加组成一个新数然后重复这个程序。 除了“水仙花数”外,同理还有四位的“玫瑰花数”(有:1634、8208、9474)、五位的“五角星数”(有54748、92727、93084),当数字个数大于五位时,这类数字就叫做“自幂数”。

冰雹猜想(角谷猜想)

冰雹猜想来历

1976年的一天,《华盛顿邮报》于头版头条报道了一条数学新闻。文中记叙了这样一个故事: 70年代中期,美国各所名牌大学校园内,人们都像发疯一般,夜以继日,废寝忘食地玩弄一种数学游戏。这个游戏十分简单:任意写出一个自然数N(N≠0),并且按照以下的规律进行变换:

  • 如果是个奇数,则下一步变成3N+1。
  • 如果是个偶数,则下一步变成N/2。 不单单是学生,甚至连教师、研究员、教授与学究都纷纷加入。为什么这种游戏的魅力经久不衰?因为人们发现,无论N是怎样一个非零自然数,最终都无法逃脱回到谷底1。准确地说,是无法逃出落入底部的4-2-1循环,永远也逃不出这样的宿命。 这就是著名的“冰雹猜想”,又名角谷猜想。

强悍的27

冰雹的最大魅力在于不可预知性。英国剑桥大学教授John Conway找到了一个自然数27。虽然27是一个貌不惊人的自然数,但是如果按照上述方法进行运算,则它的上浮下沉异常剧烈:首先,27要经过77步骤的变换到达顶峰值9232,然后又经过32步骤到达谷底值1。全部的变换过程(称作“雹程”)需要111步,其顶峰值9232,达到了原有数字27的342倍多,如果以瀑布般的直线下落(2的N次方)来比较,则具有同样雹程的数字N要达到2的111次方。其对比何其惊人! 但是在1到100的范围内,像27这样的剧烈波动是没有的(54等27的2的次方倍数的数除外)。

验证规律

经过游戏的验证规律,人们发现仅仅在兼具4k和3m+1(k,m为自然数)处的数字才能产生冰雹猜想中“树”的分叉。所以在冰雹树中,16处是第一处分叉,然后是64……以后每隔一节,产生出一支新的支流。 自从Conway发现了神奇的27之后,有专家指出,27这个数字必定只能由54变来,54又必然从108变来,所以,27之上,肯定可以出现不亚于2n的强大支流——33×2n(n=1,2,3……),然而,27到4-2-1数列和本流2到4-2-1数列要遥远的多。按照机械唯物论的观点,从27开始逆流而上的数列群才能叫做本源,尽管如此,按照“直线下泻”的观点,一般依然把1-2-4-8……2n的这一支看作是“干流”。 又称为角谷猜想,因为是一个名叫角谷的日本人把它传到中国。

数列验证法

此方法是根据冰雹猜想的验证规则而建立的一种验证方法,是以无限的数列来对付无限的自然数。不管是等差的还是变差的,都是可以直接带进去计算的:

  • 首项差是偶数,那么数列上的所有自然数都是偶数,全体数列除于2,如果首项是奇数公差是偶数,那么数列上全体自然数都是奇数,全体乘上3再加1。
  • 如果公差是奇数,首项也是奇数,那么第奇数项必定都是奇数则乘上3再加1,第偶数项必定都是偶数,则除于2。
  • 如果公差是奇数,首项是偶数,那么第奇数项必定都是偶数,则除于2,第偶数项必定都是奇数,则乘上3再加1。 按照这样的计算规则计算下去,会遇到许多新的问题,考验验证者的智商。比如偶数的通项公式是2n,因为都是偶数所以除于2,得到n,这就是自然数。 按照忽略偶数不记录的验证方法进行验证,第一个被验证的奇数有可能是能被3整除的奇数,也有可能是不能被3整除的奇数。但是所到达所归结的第二个奇数,以及第三个奇数(假设存在),整个过程所到达所遇到所归结所访问到的每一个奇数,必定都不能再被3整除了。如果都从从能被3整除的奇数开始验证,路径上所遇到所归结的所到达所访问到的每一个奇数都必定不能再被3整除了,最终都能归结于1,那么必定遍历所有的奇数(遍历是离散数学的概念)。如果都从不能被3整除的奇数开始验证,那么路径上所遇到所到达所归结的所访问到的每一个奇数必定都不可能再被3整除了,最终都归结于1(等于说是漏下能被3整除的奇数没有被验证)。所以在顺向的冰雹猜想验证过程中,可以把能被3整除的奇数都命名为最起始点的奇数,1是终止点的奇数,而在逆向的冰雹猜想验证过程中则是相反的,1是最起始点的奇数,而能被3整除的奇数则是终止点的奇数。事实上在验证的过程中,不能被3整除的奇数,都在存在数量无穷多的上一步的奇数,占1/3的比例是能被3整除的奇数,占2/3的比例是不能被3整除的奇数,这一现象都跟自然数的情况出奇地巧合了。这一规律,无论是单个奇数的验证方法,还是数列验证法必须遵守。在能被3整除的奇数之前的,只有能被3整除的偶数,没有任何奇数。最起始点的奇数在15 x-7 或者是在7x-5的时候就不是能不能被15整除或者被7整除这么简单了。 存在X1,使得X13+1之后只能被1个2整除,之后就是奇数,这一类奇数占奇数总量的1/2; 存在X2,使得X23+1之后只能被2个2整除,之后就是奇数,这一类奇数占奇数总量的1/4; 存在X3,使得X33+1之后只能被3个2整除,之后就是奇数,这一类奇数占奇数总量的1/8; 以此类推............从逆推定理出发,可以很方便地找到,X1,X2,X3,X4,X5.........的通项公式 7X-3的平衡点是: 当N=2个未知数的时候 3(4+7)=7^2-4^2 假设当 N+1= K的时候也是相等的 就是 3*(4^(K-1)+74^(K-2)+7^24^(K-3)+...........+7^(K-3)*4^2+7^(K-2)*4+7^(K-1))=7^K-4^K 然后再讨论:当 K=K+1的时候能不能相等 ,这个问题我算过了, 是成立的。 导致奇数在验证过程中爬升的本质就是以3换2,而下降的原因就在于只剩最后一个2了时候,...........

卡普雷

简介

取任何一个4位数(4个数字均为同一个数字的例外),将组成该数的4个数字重新组合成可能的最大数和可能的最小数,再将两者的差求出来;对此差值重复同样的过程(例如:开始时取数8028,最大的重新组合数为8820,最小的为0288,二者的差8532。重复上述过程得出8532-2358=6174),最后总是达到卡普雷卡尔黑洞:6174。称之“黑洞”是指再继续运算,都重复这个数,“逃”不出去。把以上计算过程称为卡普雷卡尔运算,这个现象称归敛,其结果6174称归敛结果。 一,任意N位数都会类似4位数那样归敛(1、2位数无意义) . 3位数归敛到495; 4位数归敛到6174; 7位数归敛到唯一一个数组(8个7位数组成的循环数组______称归敛组);其它每个位数的数归敛结果分别有若干个,归敛数和归敛组兼而有之(如14位数____共有9×10的13次方个数____的归敛结果有6个归敛数,21个归敛组). 一旦进入归敛结果,继续卡普雷卡尔运算就在归敛结果反复循环,再也“逃”不出去。 归敛组中各数可以按递进顺序交换位置 (如a → b → c 或 b → c → a 或c → a → b) 归敛结果可以不经过卡普雷卡尔运算就能从得出. 某个既定位数的数,它的归敛结果的个数是有限的,也是确定的. 二,较多位数的数(命它为N)的归敛结果是由较少位数的数(命它为n,N﹥n)的归敛结果,嵌加进去一些特定的数或数组而派生形成. 4、6、8、9、11、13的归敛结果中的8个称基础数根.它们是派生所有任意N位数的归敛结果的基础.

分类

  1. 嵌加的数分三类。
    • 第一类是数对型,有两对:
      1. 9,0
      2. 3,6
    • 第二类是数组型,有一组:
      7,2
      5,4
      1,8
      
    • 第三类是数字型,有两个:
      1. 5 9 4
      2. 8 6 4 2 9 7 5 3 1
  2. 嵌入数的一部分嵌入前段中大于或等于嵌入数的最末一个数字的后邻位置。另一部分嵌入后段相应位置_____使与嵌入前段的数形成层状组数结构。
    • 594只能嵌入n=3+3k 这类数。如9、12、15、18…….位。
  3. (9,0)(3,6)两对数可以单独嵌入或与数组型、数字型组合嵌入。
    • 数组
      7,2
      5,4
      1,8
      
    • 必须“配套”嵌入并按顺序:
      • (7,2)→(5,4)→(1,8)
      • 或 (5,4)→(1,8)→(7,2)
      • 或 (1,8) →(7,2) →(5,4)
  4. 可以嵌如一次、二次或若干次 (则形成更多位数的归敛结果)。 任意N位数的归敛结果都 “隐藏”在这N位数中,卡普雷卡尔运算只是找出它们而不是新造成它们。

【“6174数学黑洞”现象的参考资料】

  1. 美国《新科学家》,1992,12,19
  2. 中国《参考消息》,1993,3,14-17
  3. 王景之:⑴ 也谈数学“黑洞”——关于卡普雷卡尔常数。⑵ 我演算得到的一部分归敛结果。
  4. 天山草:能够进行任意多位数卡普雷卡尔(卡布列克) 运算的程序。

操作演示

上文对6174黑洞运算过程进行了演示,以下用C演示了对任一四位数(不全相同,如2222)计算过程,并总计了一共操作的步骤。编译连接后,输入输出结果如右图所示:

#include stdio.h
void insertSort(int r[], int len) {
    int i, k, tmp;
    for(i = 1; i < len; i++) {
        k = i - 1;
        tmp = r[i];
        while(k >= 0 && r[k] > tmp) {
            r[k+1] = r[k];
            k--;
        }
        r[k+1] = tmp;
    }
}
void main() {
    int N, count, end, s;
    int r[4];
    int max, min;
    printf("请输入一个任意的四位正整数(全相同的除外,如1111):");
    scanf("%d", &N);
    count = 0; end = 0;
    s = N;
    while (end != 6174) {
        r[0] = s % 10;
        r[1] = s / 10 % 10;
        r[2] = s / 100 % 10;
        r[3] = s / 1000;
        insertSort(r, 4);
        max = 1000 * r[3] + 100 * r[2] + 10 * r[1] + r[0];
        min = 1000 * r[0] + 100 * r[1] + 10 * r[2] + r[3];
        end = max - min;
        count++;
        printf("第%d步:%d-%d=%d\n", count, max, min, end);
        s = end;
    }
    printf("%d一共经过了%d步得到了6174\n", N, count);
}

有一种数字游戏,可以产生“黑洞数”,操作步骤如下:第一步,任意写出一个自然数(以下称为原数);第二

2004 偶数4个 奇数0个 四位数 404 偶数3个 奇数0个 三位数 303 偶数1个 奇数2个 三位数 123 偶数1个 奇数2个 三位数 123 123 请你以2004为例尝试一下,2004,一步之后变为(404)再变为(303)再变为(123),得到的黑洞数是(123)

有一种数学游戏,可以产生"黑洞数"操作步骤如下:第一步,任意写出一个自然数(以下称为原数);

2013,一步之后变为314,再变为123,再变为213,......黑洞数是213. 对于三位数的黑洞数来说,个位一定是3(因为是三位数),十位和百位是1或者2或者3,但是我们可以看到303、123等显然不是黑洞数,只有213可以。