能力值:
( LV9,RANK:450 )
|
-
-
2 楼
雷劈数的来历
有位外国数学家叫卡普利加,在一次旅行中,遇到猛烈的暴风雨,电闪雷鸣过后,他看到路边一块里程碑,被雷电劈成两半,一半上刻著30,另一半刻著25。这时,卡普利加的脑际中忽然发现了一个绝妙的数学关系——
把劈成两半的数加起来,再平方,正好是原来的数位。除此之外,还有没有别的数,也具有这样的性质呢?
熟悉速算的人很快就找到了另一个数:2025 按照第一个发现者的名字,这种怪数被命名为“卡普利加数”,又称“雷劈数”。
现在已有许多办法搜寻这种数,但最简便的办法是在9与11的倍数中寻找。例如上面提到的55,它是11的倍数,45是9的倍数。用这种办法,人们果然找到了一个极其有趣的7777,不难验算:6048+1729=7777
(腾讯QQ60481729为了避讳被注销了)
前苏联的一个小朋友卡嘉也发现了一个新的“雷劈数”,它是9801。98+1=99,从以上提到的4个“雷劈数”,我们不难发现同一情况:偶数+奇数=奇数,奇数的平方=奇数。3025,2025,9801和60481729都是奇数。那麽,有没有偶数雷劈数存在呢?
答案是肯定的。7年以前,泸州师范附小的一位同学,就发现了偶数“雷劈数”:100,因为10+0=10,,经过验证,100是最小的偶数雷劈数,也有可能它是唯一的偶数雷劈数。这位同学还发现了最小的奇数雷劈数:81,因为,8+1=9,可以推测:在数学王国裏,数值最小的雷劈数只有1个,数值较大的雷劈数会有无数个存在,其中的奥秘还有待人们去不断探索。
雷 劈 数 及 其 规 律
据说数学家卡普利加发现了一种具有特殊性质的数,被叫作“卡普利加数”或“ 雷劈数。它们是这样的数:如果在某一个位置上把它截成两个整数,这两个数的和的平方仍然等于这个数。设截断的位置在右起第n和第n+1位之间,截成的两个数为a与b,即 该雷劈数等于……………… (1)
第一个雷劈数是卡普利加在暴风雨中看到的、被雷电劈成两半的里程碑上的数字3025 ,它被截成30,25两个数,其和30+25=55的。这就是"雷劈数"的来历。
此后就有人热衷于寻找新的雷劈数。据说前苏联的一位小朋友找到一个劈成98和 01的雷劈数:9801。在已知的一些雷劈数中,它们被劈成的两数之和都是 9或11的倍数,或者其和减 1是 9的倍数,人们就是按这些经验去寻找新雷劈数。中国小学生刘益找到了最小的奇数雷劈数81与偶数雷劈数100。
雷劈数在自然数中的分布十分稀少,它们在大数中密度更小。因为它们的密度是按指数规律减少的。设<N 的雷劈数个数为 n 个,则有 log(n)/log(N)<0.175,见下表:
log(N) 2 3 4 5 6 7 8 9 10 11 12 13 14
n 1 2 5 7 9 11 18 21 26 32 57 59 65
log(n)/log(N) .000 .100 .175 .169 .159 .149 .157 .147 .141 .137 .146 .136 .129
这个雷劈数密度规律是由14位自然数内的全部雷劈数表实际统计而得,而长度在14位 以内全部共66个的雷劈数表是我们用计算机找出来的。从这张已知的雷劈数表可见,雷劈 数可以是奇数,也可以是偶数,但总是成对出现的,即对于一个相同的 b值,总有两个a1 、a2组成成对的雷劈数 a1*10^n+b 和 a2*10^n+b 。因为这个缘故,这张表中的雷 劈数没有完全按大小次序来排列。注意:对于任意的 n,2n位的数10^n*(10^n-2)+1 和 2n+1位的数10^2n 可叫作平凡雷劈数,但不成为一对,而是分别与 1和 0成对,即 b=1 时有 a1=1 ,a2= 10^n-2构成一对;对于 b=0,有a1=0,a2=10^n 构成一对。
由于雷劈数太稀少,又象素数那样没有确定的分布规律,要用人工发现一个雷劈数是 很困难的,特别是大的雷劈数,即使用计算机去逐个去查找,也要很多时间。因为一个 n 位数可以在 n-1个不同的位置劈开,所以要试验n次才能确定它是不是雷劈数。这样,要找 出所有长 n 位的雷劈数,就要试验(n-1)*(10^(n+1)-10^n)=(n- 1)*9*10^n =1.289*10^16次,若用速度为 80兆的 486微机来计算,每秒可试验 30000次左右,也要 13614年。所以必须分析雷劈数的性质,从中找出并利用其规律。
由式(1)可知,当 b 已知时,该雷劈数的 a 值可以从下列方程式解出来:
a^2 + (2b-10^n)*a + (b^2- b) = 0 …………………………… (2)
这是关于变数 a 的 2次方程式,它有两个根 a1、a2,这就是为什麼雷劈数总是成对 的缘故。但要使(2)的根a1、a2是有效的自然数,必须使其判别式等于平方数:
(2b-10^n)^2-4*1*(b^2-b)= 10^(2n)-4b*(10^n-1)= c^2 …… (3)
由此式解出 b:
b = (10^n-c)*(10^n+c)/ 4 /(10^n-1) ………………………… (4)
只要找出一个能使 (4)式的 b是整数的整数 c,并求出(3)式的两个根a1,a2
-(2b-10^n)±c 10^n ± c
a1,a2 = ———————— = —————— - b ………………………… (5)
2 2
即找到了一对雷劈数a1*10^n+b,a2*10^n+b。现在代替从 1检查到 10^14找到全部 雷劈数,只要从 1检查到10^7,找使 □式的 b是整数的 c 值,微机只要38分钟就完成了。
由□式我们可得每对雷劈数的和之积:(a1+b)*(a2+b)=(10^2n- c^2) / 4
再把□式的 c^2 = 10^2n-4*b*(10^n-1)代入可得:
(a1+b)*(a2+b)= 2b*(10^n - 1)
因为 10^n-1 是 9 的倍数,即每对雷劈数中,至少有一个是 9的倍数。当 n是偶数
时,10^n-1 还是11的倍数,即两对雷劈数中,至少有一个的是11的倍数。这就是前面提 到的找雷劈数的经验方法所依据的规律。 这个规律也可以由所列的雷劈数表来进行验证:
在这66个雷劈数中,其和可同时被 9和11整除的占15%,能被 9整除的占52%,能被11整 除的占32%。但是还有32%既不能被 9整除也不能被11整除。
以上这种雷劈数是在某个位置劈成两个数再相加,其和的平方仍等于这个数。如果不是相加,而是相减又会是怎麼样的呢?也就是说,劈成两个数后,它们的差的平方等于该自然数的数也应该有吧?编个程序找了一下,果然是有的,姑且把它叫作减雷劈数。减雷劈数比原来的雷劈数少一半,它们也是成对的出现的。现在把14位数以内的28个减雷劈数也录于后面,供大家验证。
附录1:14 位以内的雷劈数表
8 1, 10 0│ 494 1729│ 250500 250000│ 101558 217124│ 923594 037444
20 25│ 6048 1729│ 217930 248900│ 464194 217124│ 28 005264
30 25│ 9998 0001│ 284270 248900│ 43470 165025│ 989444 005264
98 01│ 10000 0000│ 213018 248521│ 626480 165025│ 999998 000001
100 00│ 4938 17284│ 289940 248521│ 35010 152100│ 1000000 000000
88 209│ 60494 17284│ 152344 237969│ 660790 152100│ 2428460 2499481
494 209│ 3008 14336│ 371718 237969│ 33058 148761│ 2572578 2499481
998 001│ 68320 14336│ 127194 229449│ 669420 148761│ 1975308 2469136
1000 000│ 238 04641│ 413908 229449│ 21948 126201│ 3086420 2469136
2450 2500│ 90480 04641│ 123448 227904│ 725650 126201│ 39390 0588225
2550 2500│ 99998 00001│ 420744 227904│ 20408 122449│ 8784160 0588225
744 1984│ 10000 000000│ 108878 221089│ 734694 122449│ 9999998 0000001
5288 1984│ 249500 250000│ 448944 221089│ 1518 037444│ 10000000 0000000
附录2: 14 位以内的减雷劈数表
10 0│ 6 084│ 10000 0000│ 3306 21489│ 10000000 0000000
12 1│ 1162 084│ 10002 0001│ 139672 21489│ 10000002 0000001
100 00│ 82 369│ 120 1216│ 1000000 000000│ 743802 3471076
102 01│ 1656 369│ 12312 1216│ 1000002 000001│ 16198350 3471076
1000 000│ 132 496│ 100000 00000│ 113322 449956│
1002 001│ 1860 496│ 100002 00001│ 1786590 449956│
大家再去查找60481729这个QQ。。。。。。怎么样?什么也查不到吧!
为什么极其普通的一个号TX一直不敢放出来呢?
首先得从这个号码的数字上分析原因。大家注意没?我把60481729这个QQ从中间分开,分成6048和1729两个数字。然后再相加。即6048+1729=7777,很不错的数字。还没完呢。继续。而7777×7777=60481729,晕!怎么又回来了??
这个数字正是传说中的雷劈数!(印度某个数学家发现的,之所以叫雷劈数是因为在雷雨天气路边的里程桩号“3025”被雷从中间劈成2半而正好被这个科学家走狗屎运发现的,因为30+25=55,55×55=3025。偶上小学时候在中国少年报上看的,现在在网上根本找不到雷劈数得名的原因)
而腾讯的老马脑子里还是带点迷性,当初放号的时候像这类非常不吉利的数字都给注销了,万一哪天被雷劈了他肯定会死不瞑目的。干事业还是得图个吉利,而当初申请8位QQ那段时间腾讯正处于困难时期,听说老马差点50万把QQ卖了,所以对于这些不吉利的东西还是予以避讳。
但是老马的智商还是有限的,雷劈数不仅仅只有这一个,比如25502500,24502500,52881984,99980001都是雷劈数!只是60481729这个雷劈数非常出名所以老马予以没收了。。。。。。
|
能力值:
( LV9,RANK:450 )
|
-
-
3 楼
代码写的比较烂,见笑了。呵呵 !
/*
Code By RegKiller
雷劈数的基本概念: 把 3025 从中间分开为 30 和 25 , 30+25 = 55 , 55*55 = 3025
雷劈数的规律:它们被劈成的两数之和都是 9 或 11 的倍数或其和减 1 是 9 的倍数
本例只寻找偶数位的整数是否是雷劈数.
奇数位整数的雷劈数例:100 , 10+0 = 10 , 10*10 = 100 寻找时需逐位组合判断.计算量过大
本程序在 VC++ 6.0(SP6) 环境下成功编译
*/
#include<iostream>
using namespace std ;
#define MaxRange 18446744073709551615
// 最大范围从 0 到 18446744073709551615
void vLPNumber(unsigned __int64);
// 求雷劈数函数
int iNumberMD(unsigned __int64);
// 求偶数位整数从中间截断的位置
int main()
{
vLPNumber(MaxRange);
return 0 ;
}
void vLPNumber(unsigned __int64 iMaxRange)
{
// 循环的次数小于等于最大范围数开方
for(unsigned __int64 i=1;iMaxRange>=i*i;i++)
{
unsigned __int64 iLPNumber=0,iLNumber=0,iRNumber=0,iNumberMD ;
//iLPNumber : 雷劈数 , iLNumber : 分开后的左半数 , iRNumber : 分开后的右半数
iLPNumber=i*i ;
iNumberMD=:: iNumberMD(iLPNumber);
// 这里函数名前加 :: 是为了解决 = 前变量与 = 号后函数同名的问题
// 如果求出了中间截断位置就开始判断是不是雷劈数
if(false!=iNumberMD)
{
iLNumber=iLPNumber/iNumberMD ;
iRNumber=iLPNumber%iNumberMD ;
if(i==iLNumber+iRNumber)
{
printf("LPN:%I64d LN:%I64d RN:%I64d Sum:%I64d ",iLPNumber,iLNumber,iRNumber,i);
// Sum=iLNumber+iRNumber=i , cout 和 cin 无法正确处理 __int64 类型
// 左半数 + 右半数之和是 9 的倍数
if(0==i%9)
{
cout<<"<Sum%9=0> " ;
}
//左半数 + 右半数之和是 11 的倍数
if(0==i%11)
{
cout<<"<Sum%11=0> " ;
}
//左半数 + 右半数之和再 - 1 后还是 9 的倍数
if(0==(i-1)%9)
{
cout<<"<(Sum-1)%9=0>" ;
}
cout<<endl ;
}
}
}
}
int iNumberMD(unsigned __int64 iLPNumber)
{
unsigned __int64 iResult=0 ;
// iResult : 偶数位整数从中间截断的位置
// 求整数的位数
while(iLPNumber!=0)
{
iLPNumber=iLPNumber/10 ;
iResult++;
}
// 判断是否是偶数位的整数
if(0==iResult%2)
{
unsigned __int64 temp=0 ;
temp=iResult ;
iResult=1 ;
while(temp/2)
{
iResult*=10 ;
temp-=2 ;
}
return iResult ;
// 是偶数位整数就返回截断整数的位置
}
else return false ;
// 奇数位整数不计算
}
呵呵这里还真有几个号比较特别,比如最后那个一排 8 的号 :lol :lol :lol
LPN:81 LN:8 RN:1 Sum:9 <Sum%9=0> LPN:2025 LN:20 RN:25 Sum:45 <Sum%9=0> LPN:3025 LN:30 RN:25 Sum:55 <Sum%11=0> <(Sum-1)%9=0> LPN:9801 LN:98 RN:1 Sum:99 <Sum%9=0> <Sum%11=0> LPN:494209 LN:494 RN:209 Sum:703 <(Sum-1)%9=0> LPN:998001 LN:998 RN:1 Sum:999 <Sum%9=0> LPN:24502500 LN:2450 RN:2500 Sum:4950 <Sum%9=0> <Sum%11=0> LPN:25502500 LN:2550 RN:2500 Sum:5050 <(Sum-1)%9=0> LPN:52881984 LN:5288 RN:1984 Sum:7272 <Sum%9=0> LPN:60481729 LN:6048 RN:1729 Sum:7777 <Sum%11=0> <(Sum-1)%9=0> LPN:99980001 LN:9998 RN:1 Sum:9999 <Sum%9=0> <Sum%11=0> LPN:6049417284 LN:60494 RN:17284 Sum:77778 <Sum%9=0> LPN:6832014336 LN:68320 RN:14336 Sum:82656 <Sum%9=0> LPN:9048004641 LN:90480 RN:4641 Sum:95121 <Sum%9=0> LPN:9999800001 LN:99998 RN:1 Sum:99999 <Sum%9=0> LPN:101558217124 LN:101558 RN:217124 Sum:318682 <(Sum-1)%9=0> LPN:108878221089 LN:108878 RN:221089 Sum:329967 <Sum%9=0> <Sum%11=0> LPN:123448227904 LN:123448 RN:227904 Sum:351352 <(Sum-1)%9=0> LPN:127194229449 LN:127194 RN:229449 Sum:356643 <Sum%9=0> LPN:152344237969 LN:152344 RN:237969 Sum:390313 <Sum%11=0> <(Sum-1)%9=0> LPN:213018248521 LN:213018 RN:248521 Sum:461539 <(Sum-1)%9=0> LPN:217930248900 LN:217930 RN:248900 Sum:466830 <Sum%9=0> LPN:249500250000 LN:249500 RN:250000 Sum:499500 <Sum%9=0> LPN:250500250000 LN:250500 RN:250000 Sum:500500 <Sum%11=0> <(Sum-1)%9=0> LPN:284270248900 LN:284270 RN:248900 Sum:533170 <Sum%11=0> <(Sum-1)%9=0> LPN:289940248521 LN:289940 RN:248521 Sum:538461 <Sum%9=0> <Sum%11=0> LPN:371718237969 LN:371718 RN:237969 Sum:609687 <Sum%9=0> LPN:413908229449 LN:413908 RN:229449 Sum:643357 <Sum%11=0> <(Sum-1)%9=0> LPN:420744227904 LN:420744 RN:227904 Sum:648648 <Sum%9=0> <Sum%11=0> LPN:448944221089 LN:448944 RN:221089 Sum:670033 <(Sum-1)%9=0> LPN:464194217124 LN:464194 RN:217124 Sum:681318 <Sum%9=0> <Sum%11=0> LPN:626480165025 LN:626480 RN:165025 Sum:791505 <Sum%9=0> <Sum%11=0> LPN:660790152100 LN:660790 RN:152100 Sum:812890 <(Sum-1)%9=0> LPN:669420148761 LN:669420 RN:148761 Sum:818181 <Sum%9=0> LPN:725650126201 LN:725650 RN:126201 Sum:851851 <Sum%11=0> <(Sum-1)%9=0> LPN:734694122449 LN:734694 RN:122449 Sum:857143 <(Sum-1)%9=0> LPN:923594037444 LN:923594 RN:37444 Sum:961038 <Sum%9=0> LPN:989444005264 LN:989444 RN:5264 Sum:994708 <Sum%11=0> <(Sum-1)%9=0> LPN:999998000001 LN:999998 RN:1 Sum:999999 <Sum%9=0> <Sum%11=0> LPN:19753082469136 LN:1975308 RN:2469136 Sum:4444444 <(Sum-1)%9=0> LPN:24284602499481 LN:2428460 RN:2499481 Sum:4927941 <Sum%9=0> LPN:25725782499481 LN:2572578 RN:2499481 Sum:5072059 <(Sum-1)%9=0> LPN:30864202469136 LN:3086420 RN:2469136 Sum:5555556 <Sum%9=0> LPN:87841600588225 LN:8784160 RN:588225 Sum:9372385 <Sum%11=0> <(Sum-1)%9=0> LPN:99999980000001 LN:9999998 RN:1 Sum:9999999 <Sum%9=0> LPN:1322314023140496 LN:13223140 RN:23140496 Sum:36363636 <Sum%9=0> LPN:1511956823764321 LN:15119568 RN:23764321 Sum:38883889 <Sum%11=0> <(Sum-1)%9=0> LPN:1968106024682281 LN:19681060 RN:24682281 Sum:44363341 <Sum%11=0> <(Sum-1)%9=0> LPN:1982524424700304 LN:19825244 RN:24700304 Sum:44525548 <(Sum-1)%9=0> LPN:2499500025000000 LN:24995000 RN:25000000 Sum:49995000 <Sum%9=0> <Sum%11=0> LPN:2500500025000000 LN:25005000 RN:25000000 Sum:50005000 <(Sum-1)%9=0> LPN:3077414824700304 LN:30774148 RN:24700304 Sum:55474452 <Sum%9=0> <Sum%11=0> LPN:3095437824682281 LN:30954378 RN:24682281 Sum:55636659 <Sum%9=0> LPN:3735179023764321 LN:37351790 RN:23764321 Sum:61116111 <Sum%9=0> LPN:4049586823140496 LN:40495868 RN:23140496 Sum:63636364 <Sum%11=0> <(Sum-1)%9=0> LPN:4776996021345856 LN:47769960 RN:21345856 Sum:69115816 <Sum%11=0> <(Sum-1)%9=0> LPN:5587185018875625 LN:55871850 RN:18875625 Sum:74747475 <Sum%9=0> <Sum%11=0> LPN:5662190018625625 LN:56621900 RN:18625625 Sum:75247525 <(Sum-1)%9=0> LPN:6436359815863329 LN:64363598 RN:15863329 Sum:80226927 <Sum%9=0> <Sum%11=0> LPN:6516844815558529 LN:65168448 RN:15558529 Sum:80726977 <(Sum-1)%9=0> LPN:6957134013838096 LN:69571340 RN:13838096 Sum:83409436 <Sum%11=0> <(Sum-1)%9=0> LPN:7457814011780496 LN:74578140 RN:11780496 Sum:86358636 <Sum%9=0> LPN:7901234409876544 LN:79012344 RN:9876544 Sum:88888888 <Sum%11=0> <(Sum-1)%9=0>
|
能力值:
( LV9,RANK:450 )
|
-
-
4 楼
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
|
能力值:
( LV4,RANK:50 )
|
-
-
6 楼
看到三楼之前认为很无聊,看到三楼之后,我感觉不错。
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
呵呵,学习了,3楼的程序不错哦。
|
能力值:
( LV12,RANK:370 )
|
-
-
8 楼
真的找不到。这样的数字。
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
01算不算
0+1=1
1×1=1
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
hehe 不错.
|
能力值:
( LV9,RANK:450 )
|
-
-
11 楼
01就是1。怎么劈?不然0000000和0都算了。
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
学习
说道神奇的数马上就想到了
142857
太神奇了
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
呵呵,TX居然也信这种事,学习了。
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
第一次听说雷劈数
|
能力值:
(RANK:330 )
|
-
-
15 楼
1+0=1
1*1=1
|
能力值:
( LV9,RANK:450 )
|
-
-
16 楼
你说的是10?
1*1!=10
|
能力值:
(RANK:330 )
|
-
-
17 楼
sorry 看错了
|
能力值:
( LV15,RANK:2473 )
|
-
-
18 楼
5+1+2=8
512=8*8*8
这种叫什么数?
|
能力值:
(RANK:1060 )
|
-
-
19 楼
猥琐数512512
|
能力值:
(RANK:330 )
|
-
-
20 楼
太强了,这不就是传说中的3P数么
|
能力值:
( LV2,RANK:10 )
|
-
-
21 楼
呵呵,学习了!!!!!!!!!!!!!!!!
|
能力值:
( LV2,RANK:10 )
|
-
-
22 楼
不好意思 60010003-60999999都查不到的 和是否会遭雷劈没啥关系
|
能力值:
( LV12,RANK:470 )
|
-
-
23 楼
膜拜1下。。。。。。。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
24 楼
第一次听说。
|
能力值:
( LV12,RANK:650 )
|
-
-
25 楼
[QUOTE=;]...[/QUOTE]
不要在那里耸人听闻
60481728也没有
而60481729显然不是什么雷劈数
|
|
|