數學黑洞(一)令人拍案叫絕的卡布列克常數

卡布列克是一位數學家,他在研究數字時發現:任意一個不是有完全相同數字的組成的四位數,如果對它們的每位數字重新排序,組成一個最大的數各一個最小的數,然後用最大數減去最小數,差不夠四位數時補零,類推下去,最後將變成一個固定的數:6174,這就是卡布列克常數。例如:4321-1234=3087 8730-378=8352 8532-2358=6174 7641-1467=6174。
驗證卡布列克運算,任意一個四位數,只要它們各個位上的數字是不全相同的,就有這樣的規律:

(1)將組成該四位數的四個數字由大到小排列,形成由這四個數字構成的最大的四位數;
(2)將組成該四位數的四個數字由小到大排列,形成由這四個數字構成的最小的四位數(如果四個數中含有0,則得到的數不足四位);
(3)求兩個數的差,得到一個新的四位數(高位零保留)。
重複以上過程(最多7步),最後得到的結果是6174,這個數被稱爲卡布列克常數。

所以6174也被叫做黑洞數,因爲這種現象類似黑洞(進去後就出不來了),也叫“6174問題”,上述變換稱爲卡普耶卡變換,簡稱 K 變換


下面我們用程序來驗證這個不可思議的事實:

public class HeiDong6174 {
	public static void main(String[] args){
		helper(1050,0);
	}

	private static void helper(int num, int count) {
		
		if(num == 6174){
			System.out.println("共執行了" + count + "步");
			return;
		}
			
		String s = String.valueOf(num);
		char[] cs = s.toCharArray();
		if(cs.length != 4){
			System.out.println("請輸入一個三位數或者四位數");
			return;
		}
		for(int i = 0; i < cs.length; i++){
			for(int j = i; j < cs.length; j++){
				if(cs[i] < cs[j]){
					char temp = cs[i];
					cs[i] = cs[j];
					cs[j] = temp;
				}
			}
		}
		char[] cs2 = new char[cs.length];
		for(int i = 0; i < cs.length; i++){
			cs2[i] = cs[cs.length-1-i];
		}
		int n1 = Integer.parseInt(new String(cs));
		int n2 = Integer.parseInt(new String(cs2));
		int new_num = n1 - n2;
		
		System.out.println(n1 + "-" + n2 + "=" + new_num);
		
		if(new_num / 1000 < 1)//如果不足四位數,高位補0,等價於低位補0
			new_num *= 10;
		helper(new_num,count+1);
	}
}
測試結果:



6174是卡布列克常數的代名詞,還有其他位數的情況:

三位數也有一數495,任何三位數經過這樣的運算都會對應到495。其它位數就沒有像三位數及四位數這樣單純的狀況,會對應到不只一種結果,或是進入數字循環(即數個數循環對應)
5位數的狀況:沒有黑洞,有3個循環

71973\to83952\to74943\to62964\to71973
82962\to75933\to63954\to61974\to82962
53955\to59994\to53955

6位數的狀況:有2個黑洞631764、549945,還有1個7個成員的循環

420876\to851742\to750843\to840852\to860832\to862632\to642654\to420876

7位數的狀況:沒有黑洞,只有1個8成員的循環

7509843\to9529641\to8719722\to8649432\to7519743\to8429652\to7619733\to8439522\to7509843

8位數的狀況:有2個黑洞63317664、97508421

9位數的狀況:有2個黑洞554999445、864197532

10位數的狀況:有3個黑洞6333176664、9753086421、9975084201


證明如下:轉自中國地質大學江城學院鄔金華副教授的文章編輯本義項


4位黑洞數的證明及相關問題剖析

自原蘇聯人卡普耶卡提出4位數反覆重排求差會得到黑洞數6174至今,這種看似簡單的數字遊戲隱含的數學道理已逐漸引起越來越多的人的興趣,並很快被推演到更多位的情形。網上有消息稱,該問題已被“印度學者”和臺灣中學生李光宇各自解決,大陸人王景之稍後也在網上公佈了他的研究結論,但是,在可以搜索到的材料中卻一直沒有見到有關的嚴格的數學證明,而且,臺灣李光宇和大陸王景之的結論也不完全一致。爲彌補這些缺憾,這裏先介紹幾種對經典4位黑洞數的證明方法和相關結論,隨後再陸續公佈對其它位數的研究結果。

一、操作過程中的差數

在反覆重排求差的演算過程中,除首次演算時的被減數是某個任意4位數(但4個數字不全相同)以外,以後操作的被減數都是上一次差數的重排,就是說,以後的操作都是在差數基礎上進行的,而且黑洞數本身也是一個差數,只是較爲特殊罷了。爲了揭示一般差數的特點,這裏將重排求差時的最大數用大寫字母ABCD的形式寫出(最小數隨之而定),差數用小寫字母mnpk的形式寫出。按最大數中間二位數字是否相同,可將最大數和相應得到的差數分爲兩種類型。

類型1:最大數中間二位數字不同,即A≥B>C≥D,稱無核類型(0核類型),或普通類型。

將相減操作寫成豎式,可以得到被減數、減數和差數各構成數字之間的基本關係式:

m=A-D          m+k=10

n=B-C-1         n+p=8

p=C-B+9         m>n

k=D-A+10

很明顯,所有差數的共同特點是:首尾二數字之和必爲10,中間二數字之和必爲8,首位數大於二位數。這樣,能作爲差數出現的數並不多,這裏將它們從小到大全部羅列如下,共1+2+3+……+9=45個:

           1089  

           2085  2178  

           3087  3177  3267  

           4086  4176  4266  4356  

           5085  5175  5265  5355  5445

           6084  6174  6264  6354  6444  6534

           7083  7173  7263  7353  7443  7533  7623

           8082  8172  8262  8352  8442  8532  8622  8712 

           9081  9171  9261  9351  9441  9531  9621  9711  9801

類型2:最大數中間二位數字相同,即A≥B=C≥D(不能同時都取等號),稱有核類型。

    同樣寫成豎式,可得被減數、減數和差數各構成數字之間的基本關係式爲:

 m=A-D-1        m<9

 k=D-A+10       m+k=9

此時差數的首尾二數字之和必爲9,但首位數字不能爲9,中間二數字永遠是99。這類差數只有9個,它們是

0999  1998  2997  3996  4995  5994  6993  7992  8991  

綜合兩種類型,在4位數中,能作爲差數出現的數共有54個,他們就是研究4位黑洞數的根本出發點。

二、黑洞數6174的證明

按黑洞數的定義,如果將黑洞數本身也重排求差,那麼差數的構成數字就應該與黑洞數的構成數字相同,這樣,就可以有3種不同的方法證明黑洞數6174

證明1——順推

對上述54個差數逐一重排求差,如果差數的構成數字與被減數的構成數字相同(排列次序可以不同),那麼該差數就一定是黑洞數;如果不存在這樣的差數,就沒有單一的黑洞數。實際上,在54個差數中,大多數差數都可以找到與自己構成數字完全相同的“同伴”,如108990819801等等,它們都是交換了mknp位置的結果,它們重排求差時的最大數都是一樣的,故可將它們歸併爲一組,稱等效差數數組,簡稱等效數組。因爲有限定條件(m>nm<9),同一數組中包含的差數的個數可以是1個、2個、3個……,最多可有比位數少1個,這裏不妨將他們分別稱爲一元數組、二元數組、三元數組等等。這裏是4位數,最多可包含3個差數,故可歸併出一元數組、二元數組和三元數組,共29組。這樣,只需針對這29組差數重排求差就可以證明有無黑洞數了。結果,只有數組4176-6174重排求差得6174,其構成數字與最大數7641相同,所以6174就是黑洞數,而且是唯一的。

這裏介紹一個求差小竅門,可以很快得到對某數重排求差結果:某數如爲類型1的數,其中最大和最小兩數字之差即爲差數的首位數,剩下兩數之差再減1就是差數的二位數,差數的第3位和第4位只需使其與首二位數之和分別爲810就行了。如對41761089重排求差,看下圖:

                  最大減最小得差數的首位

4 1 7 6                                                     6  1  7  4

                  剩下二數之差再減1得差數的第二位                    和爲8

                                                                    和爲10

                  最大減最小得差數的首位

1 0 8 9                                                     9  6  2  1

                  剩下二數之差再減1得差數的第二位                    和爲8

                                                                    和爲10

如某數是類型2的數,可用某數中的最大數減最小數再減1作爲差數的首位數,差數的中間二數永遠是“99”,差數的末位數與首位數之和爲9。看下圖:

                 最大減最小再減1得差數的首位

7 4 4 3                                                     3  9  9  6

                                                                   和爲9

證明2——解方程

在前述類型1的基本關係式中,如果最大數ABCD是由黑洞數重排得到,那麼差數mnpk應該仍是黑洞數,它的4個構成數字就應該與ABCD分別相同,這樣的可能共有4=24種,但考慮到k≠D,n≠A,p≠C,還有12種,將它們分別代入到基本關係式中就可得到12個四元一次方程組,分別求解(看似麻煩,其實很簡單,因爲未知數係數都是1,且都是1位數),結果發現,只有mnpk順序等於BDAC時,方程組纔有合乎條件(A≥B>C≥D,且都是1位正整數)的解,解得A=7B=6C=4D=1,或m=6n=1p=7k=4

對類型2的數可用相同方法處理,但簡單分析就知無解。故6174是唯一的黑洞數。

證明3——逆推

這在下面的敘述中將被提到。

三、逆推

所謂逆推,就是指求差的逆運算,即由差數mnpk反推求差時的最大數ABCD

在類型1中,當mnpk已知時,將mnpk分別代入到基本關係式中,可得4個等式,好像還是解四元一次方程組的問題,但因爲已知的mnpk本身就有m+k=10,n+p=8的關係,故4個等式中只有2個是有效的,所以這時的四元一次方程組就成了不定方程;另一方面,ABCD還需滿足A≥B>C≥D,故方程組只有有限個解。類型2的情形與此類似,因爲已知的mk已經滿足m+k=9,故2個等式中只有1個是有效的,而ABBD也要滿足A≥B≥D(不同時取等號),所以方程組也只有有限個解。解這2類不定方程組,可分別得到它們的逆推求解公式。

1、類型1的逆推求解公式

4位數mnpk滿足條件m>n,m+k=10n+p=8時,可用以下公式逆推求ABCD

                 A = m+α        (α = 0,1,2……9-m)

                 B = n+1+β      (β =α,α+1,α+2,……α+m-n-1)

                 C = β            

                 D = α

α、β的取值法則是先使α從0開始一直取到9-m時爲止(A和D由此而定),在同一α條件下β可能可取多個值,即從α一直取到α+m-n-1時爲止。以黑洞數6174爲例,此時m=6,n=1,爲清楚起見,可將α、β的取值和相應得到的ABCD列成式子和數表:

       A = m+α = 6 +α =     6 6 6 6 6  7 7 7 7 7  8 8 8 8 8  9 9 9 9 9

       B = n+1+β =2 +β =    2 3 4 5 6  3 4 5 6 7  4 5 6 7 8  5 6 7 8 9

       C = β =             0 1 2 3 4  1 2 3 4 5  2 3 4 5 6  3 4 5 6 7

       D = α =             0 0 0 0 0  1 1 1 1 1  2 2 2 2 2  3 3 3 3 3

將它們寫成正規數的形式就是

6200  6310  6420  6530  6640  7311  7421  7531  7641  7751

8422  8532  8642  8752  8862  9533  9643  9753  9863  9973

共有20個解,將它們重排求差一次就可得到黑洞數,這裏稱它們爲1步數。順便指出,在類型1中逆推ABCD可有(10-m)(m-n)個解(最多可有25個解)。但這並不是說只有這20個數纔是1步數。實際上,凡是與這20個數中任何一個數的構成數字相同的一般4位數,都是1步數。以6200爲例,與之構成數字相同的60202060260002620062等等也都是1步數,因爲在重排求差時,它們的最大數都是6200。可見,每個最大數實際代表的都是一個等效數組。用排列組合法可以計算出這些等效數組一共包含了多少個一般的1步數。當構成數字均不相同時,4個數字可組成24個不同的4位數;當構成數字只有2個相同時,則可組成12個不同的4位數;如果構成數字兩兩相同,則可組成6個不同的4位數;如果構成數字有3個都相同,則可組成4個不同的4位數。據此計算, 1步數共有384個,顯然,它們是各不相同的。

如果用其它差數逆推可以發現只有由6174逆推時纔有與它構成數字相同的最大數7641,所以只有唯一的6174纔是黑洞數,這就是證明黑洞數的第三種方法,顯然此法比較麻煩。但逆推的最初用意並不在此。

2、類型2的逆推求解公式

    當4位數mnpk滿足條件m+k=9m<9n=p=9,時可用以下公式逆推求ABBD

           A= m+1+α     (α = 0,1,2,……8-m)

           B = β         (β =α,α+1,α+2,……α+m+1)

           D = α

α、β的取值法則與類型1相似,也是先使α從0開始一直取到8-m(A和D由此而定),在同一α條件下,β大多可取多個值,即從α一直取到α+m+1時爲止。以mnpk=1998爲例,此時m=1,寫成式子和數表就是:

      A= m+1+α = 2+α =  2 2 2  3 3 3  4 4 4  5 5 5  6 6 6  7 7 7  8 8 8  9 9 9

      B = β =            0 1 2  1 2 3  2 3 4  3 4 5  4 5 6  5 6 7  6 7 8  7 8 9

      D = α =            0 0 0  1 1 1  2 2 2  3 3 3  4 4 4  5 5 5  6 6 6  7 7 7

 將各數寫成正規數的形式就是

2000  2110  2220  3111  3221  3331  4222  4332  4442  5333  5443  5553

6444  6554  6664  7555  7665  7775  8666  8776  8886  9997  9887  9997

共有24個解。一般地,此類型共有(9-m)(m+2)個解(最多可有30個解)。同樣,這24個數都是最大數形式,它們中的每個數實際都代表了一個等效數組。

四、步數

從任意一個4位數開始反覆作重排求差操作,最後可得黑洞數,其間操作的次數就是步數。這裏將經過1次、2次、3次……操作可得黑洞數的數分別稱爲1步數、2步數、3步數等等。上面用黑洞數6174逆推得到的20個等效數組或384個一般4位數,只經過1次操作就得到黑洞數,故爲1步數,它們距黑洞數最近,僅一步之遙。實踐中已經發現,距黑洞數最遠的是7步數(下面將給予證明),它們要經過7次操作才能到達黑洞數。黑洞數本身不經過操作就是黑洞數,操作任意次得到的仍然是黑洞數,故黑洞數本身可以是任意步數的數。

其它步數的數都可用逆推法求得。如果將1步數作爲差數mnpk逆推,所得最大數就應該是2步數了。但是,並非所有1步數都能作爲差數,它必須滿足m+k=10n+p=8m>n或者m+k=9m<9的條件,因而需要在1步數中去尋找。當然也不必將所有3841步數都羅列出來,只需觀察20個最大數,看看有哪些數直接滿足條件,或者打散重排後能滿足條件就行了。結果發現,853283524176能滿足條件(黑洞數6174除外),分別用它們逆推,就可得2步數。用同樣的方法,在2步數中找出能符合差數條件的數逆推,就可得3步數……如此逆推下去將可得所有步數的數,這就是提出逆推法的根本用意。最後發現,逆推了7次後,所有53個可能的差數(除黑洞數6174外)已被用盡,在最後所得的7步數中,已經沒有符合差數條件的數了,這就證明不可能有8步數,最多7步。下面將各步數中合乎條件的mnpk列出來以供參考:

1步數中合乎逆推條件的數是:4176、8532、8352,用它們可逆推2步數。

2步數中合乎逆推條件的數是:208830874266626470837353753380829171

                           926196219711,用它們可逆推3步數。

3步數中合乎逆推條件的數是:108919983996435663546534699389919081

                           9801,用它們可逆推4步數。

4步數中合乎逆推條件的數是:099931775265535554456444717374438262

                           8622,用它們可逆推5步數。

5步數中合乎逆推條件的數是:217829973267499559947263762379928172

                           8712,用它們可逆推6步數。

6步數中合乎逆推條件的數是:40865085517560848442935194419531, 

                           用它們可逆推7步數。

逆推過程不僅可得到所有步數的數,而且還將各步數間的步進關係也精確揭示了出來。任何一個4位數都是在重排求差過程中按部就班、有條不紊地步進到黑洞數的。本文後面附有所有步數的最大數表和差數步進圖可以查閱,讀者可在這些圖表中找到另外一些有趣規律。

前已述及,任何一個最大數實際代表的都是一組數,並可通過它計算出它所代表的一般4位數的個數,而且,這樣得到的4位數是互不相同的。下面就給出各步數的最大數和它們代表的一般4位數的個數:

1步數的最大數20個,一般數384

2步數的最大數34個,一般數576

3步數的最大數140個,一般數2382

4步數的最大數129個,一般數1272

5步數的最大數113個,一般數1530

6步數的最大數153個,一般數1662

7步數的最大數116個,一般數2184

1-7步數的一般數的個數加起來得9990,這正好是所有不同4位數的總個數(除4個數字相同者以外,共10個),就是說,所有4個數字不全相同的4位數,正好就構成了這1-7步數的所有4位數,或者反過來,1-7步數中所含4位數的總個數正好等於所有4個數字不全相同的4位數的總個數,它們都可通過1-7步重排求差得到黑洞數6174。這就證明了任何4位數均可重排求差得到黑洞數。

五、結論

通過最大數、最小數和它們的差數間的基本關係式可以證明,4位數在重排求差過程中,存在唯一一個黑洞數6174,從該黑洞數出發,可逐次逆推得到所有步數的數,這些數代表的一般4位數的總個數有、且只有9990個,它們正好是4個數字不全相同的4位數的總個數,就是說,4個數字不全相同的任何一個4位數總可通過重排求差操作按照嚴格的步進規律向着黑洞數收斂。




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

  作者:nash_  歡迎轉載,與人分享是進步的源泉!

  轉載請保留原文地址http://blog.csdn.net/nash_/article/details/8210686

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章