APP下载

数学黑洞中多位数归敛的分析

2022-04-06王威王德贵

电脑报 2022年12期
关键词:多位数四位数位数

王威 王德贵

在往期的文章中我们了解了数学黑洞——“6174”和“495”,那么大家自然就会想到,其他多位数还有这样的黑洞吗?(2022年6期和8期相关文章)

今天我们用Python来从数学黑洞进一步分析和研究多位数归敛。

“6174”和“495”的数学黑洞问题,在研究时感到很奇妙,当了解了规律后,就想到除了三位数和四位数,其他的多位数也有这样的黑洞吗?当用五位数验证时,发现它有归敛,但不是一个数!

多位数的分析与前面三位数和四位数分析一样,也要解决以下三个问题。

一是输入任意一个多位数(不包含全部相同的数字),验证最后经过运算是不是能得到一个固定的值,或是得到一个固定的循环值;

二是在一定范围内,是不是所有数都能得到这个值;

三是要得到这个值最多需要多少步。

思路与四位数验证一样,首先要将多位数分解开单个数字,存储在新列表中,然后排序列表,输出最大和最小数,做差,然后再存储在新列表中,循环操作,看看最后是不是得到一个固定的值。

程序涉及的是中国电子学会编程等级考试四级内容。

即是输入一个数字不完全相同的多位数,进行验证,看看能得到什么样的规律,需要几个步骤。我们先以五位数为例说明。

(1)递推法

输入一个5位数,但5个数字不能完全相同,将其转换为列表,排序、连接、转换出最大值和最小值,做差,再转换为列表,如果不够5位,则添加“0”,进行下一轮循环(图1)。

验证“12345”的输出结果(图2)。

(2)递归法

递归与递推的不同之处,是调用了自身,达到循环的目的。过程和方法与递推类似(图3)。

两种方法验证的结果是完全一样的(图4)。

即是验证一定范围内所有数字不完全相同的5位数,看看能不能得到归敛组。

(1)递推法

通过递推法验证指定范围内的5位数是否有归敛组(图5)。

下面是在10000-10800范围内的验证结果。这是归敛组内没有排序(28行),大家可以看到,列表中数据相同,但顺序不同(图6)。

如果28行進行排序,则结果就是这个了(图7)。

(2)递归法

递归法程序不做详述,大家自己可以研究一下(图8)。

验证10000-10800和递推是一样的。因为递归深度是1024,所以验证范围取800(图9)。

输入其他位数的一定范围内时,都会得到归敛组吗?这里我只给程序,也不做详述。

(1)递推法(图10)

(2)递归法(图11)

对于N位数的归敛问题,大家可以自行验证,注意递归法的深度限制。

本文是我自己的研究过程和心得,有不妥之处,请各位老师和同学斧正!

猜你喜欢

多位数四位数位数
“0”的读法和要领
暑假训练营·两位数乘两位数和小数的初步认识
《两位数除以一位数笔算除法》教学设计
如何写好多位数
比大小有窍门
“另眼”待题
小花鹿写数
叶丽娅的年龄
二年级万以内数的遮法和写法单元自测题
分类处理