5位数的数字黑洞是多少_趣味数学|可怕的数学黑洞

40fbffdd6463d5977c5bb4a4e06618bf.png 694b39a403ee1b14375620d14f750aba.png

“我们身边到处都是黑洞。”——霍金

什么是数学黑洞?

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

a31bdfc7b51010762ce64215be663f64.png

西绪福斯黑洞

西绪福斯黑洞也就是所谓的123数字黑洞。数学中的123就跟英语中的ABC一样平凡和简单。然而,按以下运算顺序,就可以观察到这个最简单的数字黑洞的值:例如:1234567890,偶:数出该数数字中的偶数个数,在本例中为2,4,6,8,0,总共有 5 个。奇:数出该数数字中的奇数个数,在本例中为1,3,5,7,9,总共有 5 个。总:数出该数数字的总个数,本例中为 10 个。新数:将答案按 “偶-奇-总” 的位序,排出得到新数为:5510。重复:将新数5510按以上算法重复运算,可得到新数:134。重复:将新数134按以上算法重复运算,可得到新数:123。结论:对数1234567890,按上述算法,最后必得出123的结果,我们可以用计算机写出程序,测试出对任意一个数经有限次重复后都会是123。换言之,任何数的最终结果都无法逃逸123黑洞。

卡普雷卡尔黑洞

2fcb1f93ea798df690283d9513b2c8c4.png

卡普雷卡尔黑洞也叫作重排求差黑洞。三位数黑洞495:只要你输入一个三位数,要求个,十,百位数字不相同,如不允许输入111,222等。那么你把这个三位数的三个数字按大小重新排列,得出最大数和最小数,两者相减得到一个新数,再按照上述方式重新排列,再相减,最后总会得到495这个数字。四位数黑洞6174:把一个四位数的四个数字由小至大排列,组成一个新数,又由大至小排列排列组成一个新数,这两个数相减,之后重复这个步骤,只要四位数的四个数字不重复,数字最终便会变成 6174。

97fafefa659abf990653619573165897.png

水仙花数黑洞

水仙花数黑洞也叫作153数字黑洞。任意找一个3的倍数的数,先把这个数的每一个数位上的数字都立方,再相加,得到一个新数,然后把这个新数的每一个数位上的数字再立方、求和,......,重复运算下去,就能得到一个固定的数——153,我们称它为数字“黑洞”。

总结

04bc9026da7546107efb1497d0eaeaa2.png

严格意义上来说,数学和物理的黑洞划分并没有什么太大的区别,只是在对于一些数学结果得物理意义的讨论中存在分歧,而二者与天文黑洞虽说同源,但在发展的过程和侧重点上却大相径庭,这在所涉及的课程中就可以看出来,比如物理中研究黑洞需要掌握广义相对论、微分几何、量子力学和统计力学,而天文中研究黑洞则需要流体力学、磁流体力学、天体物理中的辐射机制并且会敲代码。
同时,物理学家所认为的黑洞是一种时空,而天文学家则认为黑洞是一种星体;
物理学家研究黑洞是为了探寻时空的奥秘,天文学家则是研究天体演化的过程;
物理学家眼里的黑洞是一种美丽的几何,在天文学家眼里黑洞只不过是一个辐射比较强的点源;
物理学家的黑洞活在草稿纸和公式中,在天文学家手里黑洞变成了一串代码。

“夜幕是无尽,暗中多少个黑洞。看着似是爱,星空飘送。”

— END —

转载自深圳大学数学与统计学院

ea0355af796d4f03a40478771aa132a7.png

黑洞数是指一个数字,将其各个上的数字按照非递增顺序排列后得到一个新数字,再将其各个上的数字按照非递减顺序排列后得到另一个新数字,然后将两个新数字相减,得到一个新数字,重复以上步骤,最终会得到一个黑洞数。 编写函数计算任意位数黑洞数,可以按照以下步骤实现: 1. 定义一个函数,接收一个整数作为参数,表示黑洞数位数。 2. 生成一个随机的黑洞数,可以使用random模块中的randint函数生成。 3. 循环执行以下步骤,直到得到黑洞数: a. 将黑洞数的各个上的数字按照非递增顺序排列,得到一个新数字。 b. 将黑洞数的各个上的数字按照非递减顺序排列,得到另一个新数字。 c. 将两个新数字相减,得到一个新数字,作为下一次循环的黑洞数。 4. 返回得到的黑洞数。 下面是一个示例代码: import random def blackhole(n): # 生成一个随机的n位数 num = random.randint(10**(n-1), 10**n-1) while True: # 将数字转换为字符串,方便操作 num_str = str(num) # 将数字按照非递增顺序排列 num_desc = int(''.join(sorted(num_str, reverse=True))) # 将数字按照非递减顺序排列 num_asc = int(''.join(sorted(num_str))) # 计算两个新数字的差 diff = num_desc - num_asc # 如果差为,则得到黑洞数,退出循环 if diff == : break # 否则将差作为下一次循环的数字 num = diff return num # 测试函数 print(blackhole(3)) # 输出一个3位数黑洞数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值