数字黑洞水仙花数6174卡普耶卡变换,卡布列卡常数归敛

今天在头条上刷到一篇文章,挺有趣,不想点连接的话我直接把文章考过来了,不知道算不算侵权
头条文章链接

全文:
解析神秘数学黑洞"6174"

或许你早就听过这个故事:有一个神秘的数学黑洞,叫做“6174”。只要你任选4个不完全相同的数字(像1111就不行),让“最大排列”减“最小排列”(例如4321-1234),不断重复这个动作,最后一定会得到相同的结果:6174。

之所以说“6174”是“数学黑洞”,是因为无论你怎么换那4个数字,只要不是完全重复,最后都逃脱不了“6174”的魔掌。而这个“最大减最小”的动作,最多不会超过7次!这又加深了“6174”的神秘性。若以6321为例:

奇妙的数字黑洞——6174

计算结果终会相同

6321-1236=5085 一次

8550-0558=7992 二次

9972-2799=7173 三次

7731-1377=6354 四次

6543-3456=3087 五次

8730-0378=8352 六次

8532-2358=6174 七次

为什么不继续下去了呢?因为7641-1467又会等于6174,会无限循环(若相减结果低于1000,则千位数补0继续算)。至于为什么会这样?简单的说,由n个数所组成的数字有限,连续做“最大减最小”变换(或称卡普耶卡变换,Kaprekar)最后势必形成回圈。而这个数字“6174”也被称为“卡普耶卡常数”(或翻卡布列克常数)。

在追寻“6174”的卡普耶卡变换中,你有可能第一次就碰到黑洞(当距组是3,2,1,和中组是6,2的时候),也可能要连做7次变换才走得到终点。只要你继续保持追寻真相的冲动,无论走远路还是抄近路,一直坚持做下去,终究会得到相同的答案;而这同时也是人生的奥秘。

而数字黑洞不止“6174”,目前已经发现的数学黑洞大致可分为以下几种类型:

1、123黑洞(即西西弗斯串)

取任意一个数字,数出它的偶数个数、奇数个数及总的位数。例如1234567890,其偶数个数总共5个,奇数个数也为5个,数字总数为10个。按“偶―奇―总”的位序排列,得到新数为:5510。重复上述步骤,得到t34;再重复,得到123。

我们可以用计算机编程测试,任意一个数按上述算法经有限次重复后都会得到123。换言之,任何数的最终结果都无法逃逸123黑洞。

奇妙的数字黑洞——6174
6174黑洞
2、卡普雷卡尔黑洞

3、自恋性数字黑洞

当一个n位数的所有数位上数字的n次方和等于这个数本身,这个数就叫自恋数。显然1,2,3,…,9是自恋数。三位数中的自恋数有四个:153,370,371和407(这四个数被称为“水仙花数”)。同理还有四位的“玫瑰花数”(1634,8208;9474)、五位的“五角星数”(54748,92727,93084)。当数字个数大于五位时,这类数字就统称为“自幂数”。

自恋性数字也是黑洞的一种。例如,取任意一个可被3整除的正整数,分别将其各位数字的立方求出,将这些立方值相加组成一个新数,然后不断重复这个过程,最终结果即为153。

关于这些数学黑洞,对于我们似乎看着异常有趣,但对于数学家他们却异常重要,希望有朝一日,当你们成为数学家时能够进一步探索这些数学黑洞的奥秘!

然后呢,我是一名程序员,就写了一段代码来验证上面的黑洞到底是不是真的,废话不多说,上代码

public class Heidong6174{
	public static void main(String[] args) {
		Random random = new Random();
		while(true) {
			int x = random.nextInt(1000)+1000;;
			System.out.println("--------"+x+"-------");
			for (int i = 0; i < 9; i++) {
				x = method(x);
				System.out.println("第" + (i+1) + "步:" + x);
			}
		}
	}
	public static Integer method(Integer a){
		String str = Integer.toString(a);
		if(str.length() == 3) {
			str = "0"+str;
		}
		else if(str.length() == 2) {
			str = "00"+str;
		}
		else if(str.length() == 1) {
			str = "000"+str;
		}
		ArrayList<Character> list = new ArrayList<>();
		list.add(str.charAt(0)) ;
		list.add(str.charAt(1));
		list.add(str.charAt(2));
		list.add(str.charAt(3));
		
		Collections.sort(list);
		String gt = "" + list.get(0) + list.get(1) + list.get(2) + list.get(3);
		System.out.println(gt);
		Collections.reverse(list);
		String lt = "" + list.get(0) + list.get(1) + list.get(2) + list.get(3);
		System.out.println(lt);
		int big = Integer.parseInt(lt);
		int low = Integer.parseInt(gt);
		System.out.println(""+ big + "-" + low + "=" + (big-low));
		return big - low;
	}

}

黑洞1和3代码就没写,不是写不出来,懒

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页