親和數(相親數)

親和數

相親數一般指本詞條

親和數,又稱相親數友愛數友好數,指兩個正整數中,彼此的全部約數之和(本身除外)與另一方相等。畢達哥拉斯曾說:“朋友是你靈魂的倩影,要像220與284一樣親密。”

人和人之間講友情,有趣的是,數與數之間也有相類似的關係,數學家把一對存在特殊關係的數稱為“親和數”。常言道,知音難覓,尋找親和數更使數學家絞盡了腦汁。親和數是數論王國中的一朵小花,它有漫長的發現歷史和美麗動人的傳說。

基本介紹

  • 中文名:親和數
  • 外文名:amicable numbers
  • 別稱:朋友數、相親數
  • 表達式:a=3*2^(x-1)-1, b=3*2^x-1,c=9*2^(2x-1)-1
  • 提出者:畢達哥拉斯
  • 提出時間:公元前580年-500年
  • 套用學科:數學
  • 適用領域範圍:數學
  • 定義:兩個正整數全部約數和與另一相等
術語簡介,發現歷史,畢達哥拉斯,費爾馬,歐拉,麥達其,奇親和數,研究,其他,舉例,相關程式,

術語簡介

親和數是一種古老的數。
在遙遠的古代,人們發現某些自然數之間有特殊的關係:如果兩個數a和b,a的所有除本身以外的因數之和等於b,b的所有除本身以外的因數之和等於a,則稱a,b是一對親和數。

發現歷史

  • 320年左右,古希臘畢達哥拉斯發現的220與284,是人類認識的第一對相親數。
  • 約850年,阿拉伯數學家塔別脫·本·科拉就發現了相親數公式,後來稱為塔別脫·本·科拉法則。
  • 1636年,費馬發現了另一對相親數:17296和18416。
  • 1638年,笛卡兒也發現了一對相親數:9363584和9437056。
  • 歐拉也研究過相親數這個課題。1750年,他一口氣向公眾拋出了60對相親數:2620和2924,5020和5564,6232和6368,……,從而引起了轟動。
  • 1866年,年方16歲的義大利青年巴格尼尼發現1184與1210是僅僅比220與284稍為大一些的第二對相親數。
  • 目前,人們已找到了12,000,000多對相親數。但相親數是否有無窮多對,相親數的兩個數是否都是或同是奇數,或同是偶數,而沒有一奇一偶等,這些問題還有待繼續探索。
首先發現220與284就是一對親和數,在以後的1500年間,世界上有很多數學家致力於探尋親和數,面對茫茫數海,無疑是大海撈針,雖經一代又一代人的窮思苦想,有些人甚至為此耗盡畢生心血,卻始終沒有收穫。公元九世紀,伊拉克哲學、醫學、天文學和物理學家泰比特·依本庫拉曾提出過一個求親和數的法則,因為他的公式比較繁雜,難以實際操作,再加上難以辨別真假,故它並沒有給人們帶來驚喜,或者走出困境。數學家們仍然沒有找到第二對親和數。直到費爾馬(P.de Fermat,1601-1665)才發現了另一對親和數:17296和18416。
十六世紀,已經有人認為自然數裡就僅有這一對親和數。有一些無聊之士,甚至給親和數抹上迷信色彩或者增添神秘感,編出了許許多多神話故事。還宣傳這對親和數在魔術、法術、占星術和占卦上都有重要作用等等。

畢達哥拉斯

據說,畢達哥拉斯(Pythagoras, 希臘文Πυθαγόρας,約前580年—前500年)的一個門徒向他提出這樣一個問題:“我結交朋友時,存在著數的作用嗎?”畢達哥拉斯毫不猶豫地回答:“朋友是你的靈魂倩影,要像220和284一樣親密。”又說“什麼叫朋友?就像這兩個數,一個是你,另一個是我。”後來,畢氏學派宣傳說:人之間講友誼,數之間也有“相親相愛”。從此,把220和284叫做“親和數”或者叫“朋友數”或叫“相親數”。這就是關於“親和數”這個名稱來源的傳說。220和284是人類最早發現,又是最小的一對親和數。

費爾馬

距離第一對親和數誕生2500多年以後,歷史的車輪轉到十七世紀,1636年,法國“業餘數學家之王”費爾馬找到第二對親和數17296和18416,重新點燃尋找親和數的火炬,在黑暗中找到光明。兩年之後,“解析幾何之父”——法國數學家笛卡爾(René Descartes)於1638年3月31日也宣布找到了第三對親和數9437056和9363584。費馬和笛卡爾在兩年的時間裡,打破了二千多年的沉寂,激起了數學界重新尋找親和數的波濤。
在十七世紀以後的歲月,許多數學家投身到尋找新的親和數的行列,他們企圖用靈感與枯燥的計算發現新大陸。可是,無情的事實使他們省悟到,已經陷入了一座數學迷宮,不可能出現法國人的輝煌了。
正當數學家們真的感到絕望的時候,平地又起了一聲驚雷。1747年,年僅39歲的瑞士數學家歐拉竟向全世界宣布:他找到了30對親和數,後來又擴展到60對,不僅列出了親和數的數表,而且還公布了全部運算過程。

歐拉

歐拉採用了新的方法,將親和數劃分為五種類型加以討論。歐拉超人的數學思維,解開了令人止步2500多年的難題,使數學家拍案叫絕。
時間又過了120年,到了1867年,義大利有一個愛動腦筋,勤於計算的16歲中學生帕格尼尼(巴格尼尼),竟然發現數學大師歐拉的疏漏——讓眼皮下的一對較小的親和數1184和1210溜掉了。這戲劇性的發現使數學家如痴如醉。

麥達其

在以後的半個世紀的時間裡,人們在前人的基礎上,不斷更新方法,陸陸續續又找到了許多對親和數。到了1923年,數學家麥達其和葉維勒匯總前人研究成果與自己的研究所得,發表了1095對親和數,其中最大的數有25位。同年,另一個荷蘭數學家裡勒找到了一對有152位數的親和數。
在找到的這些親和數中,人們發現,親和數發現的個數越來越少,數位越來越大。同時,數學家還發現,若一對親和數的數值越大,則這兩個數之比越接近於1,這是親和數所具有的規律嗎?人們企盼著最終的結論。
電子計算機誕生以後,結束了筆算尋找親和數的歷史。有人在計算機上對所有100萬以下的數逐一進行了檢驗,總共找到了42對親和數,發現10萬以下數中僅有13對親和數。但因計算機功能與數學方法的不夠,目前還沒有重大突破,但是,尋找親和數未來正等待著不畏艱辛的數學家和計算機專家,同時,發現新的親和數的捷報也正等待著不畏艱辛的數學家和計算機專家。

奇親和數

人們還發現每一對奇親和數中都有3,5,7作為素因數。1968年波爾.布拉得利(P.Bratley)和約翰.邁凱(J.Mckay)提出:所有奇親和數都是能夠被3整除的。1988年巴蒂亞托(S.Battiato)和博霍(W.Borho)利用電子計算機找到了不能被3整除的奇親和數,從而推翻了布拉得利的猜想。他找到了15對都不能被3整除的奇親和數,最小的一對是:a=s*140453*85857199和 b=s*56099*214955207其中s=5^4*7^3*11^3*13^2*17^2*19*61^2*97*107.將各個因數乘起來 a=353804384422460183965044607821130625和b=353808169683169683168273495496273894069375.
它們都是36位大數。作為一個未解決的問題,巴蒂亞托等希望有人能找到最小的。另一個問題是是否存在一對奇親和數中有一個數不能被3整除。
還有一個歐拉提出的問題,是否存在一對親和數,其中有一個奇數,另一個是偶數?因為現在發現的所有奇偶親和數要么都是偶數,要么都是奇數。200多年來尚未解決。

研究

主要有兩方面:
(1)尋找新的親和數。
(2)尋找親和數的表達公式。
關於後一項工作,早在9世紀,阿拉伯的學者泰比特(TabitibnQorra)就提出了一個構造親和數的公式:
設 a=3*2^(x-1)-1, b=3*2^x-1,c=9*2^(2x-1)-1,這裡x是大於1的自然數,如果a、b、c全是素數的話。那么2*x*ab與2*x*c。便是一對相親和數。
例如,取x=2,得a=5,b=11,c=71,則2*2*5*11=220和2*2*71=284是一對親和數。

其他

  • 在目前所有已知的情況下,相親數皆同為偶數或同為奇數。目前不知道一奇一偶的相親數是否存在,但若存在,則偶數必須為完全平方數或其兩倍,且奇數也必須是完全平方數。
  • 目前已知存在7對具有不同的最小素因數的相親數。
  • 在目前所有已知的情況下,相親數皆具有質公約數。目前不知道是否存在互素的相親數。若存在,兩者乘積必大於1067.
  • 1955年,艾狄胥·帕爾(PaulErdős)說明相親數相對於正整數的密度為0。

舉例

例如220和284,1184和1210,2620和2924,5020和5564,6232和6368。
親和數列舉:
ans =
220 284
ans =
1184 1210
ans =
2620 2924
ans =
5020 5564
ans =
6232 6368
ans =
10744 10856
ans =
12285 14595
ans =
17296 18416
ans =
63020 76084
ans =
66928 66992
ans =
67095 71145
ans =
69615 87633
ans =
79750 88730
ans =
100485 124155
ans =
122265 139815
ans =
122368 123152
ans =
141664 153176
ans =
142310 168730
ans =
171856 176336
ans =
176272 180848
ans =
185368 203432
ans =
196724 202444
ans =
280540 365084
ans =
308620 389924
ans =
319550 430402
ans =
356408 399592
ans =
437456 455344
ans =
469028 486178
ans =
503056 514736
ans =
522405 525915
ans =
600392 669688
ans =
609928 686072
ans =
624184 691256
ans =
635624 712216
ans =
643336 652664
ans =
667964 783556
ans =
726104 796696
ans =
802725 863835
ans =
879712 901424
ans =
898216 980984
ans =
947835 1125765
ans =
998104 1043096
ans =
1077890 1099390
ans =
1154450 1189150
ans =
1156870 1292570
ans =
1175265 1438983
ans =
1185376 1286744
ans =
1280565 1340235
ans =
1328470 1483850
ans =
1358595 1486845
ans =
1392368 1464592
ans =
1466150 1747930
ans =
1468324 1749212
ans =
1511930 1598470
ans =
1669910 2062570
ans =
1798875 1870245
ans =
2082464 2090656
ans =
2236570 2429030
ans =
2652728 2941672
ans =
2723792 2874064
ans =
2728726 3077354
ans =
2739704 2928136
ans =
2802416 2947216
ans =
2803580 3716164
ans =
3276856 3721544
ans =
3606850 3892670
ans =
3786904 4300136
ans =
3805264 4006736
ans =
4238984 4314616
ans =
4246130 4488910
ans =
4259750 4445050
ans =
4482765 5120595
ans =
4532710 6135962
ans =
4604776 5162744
ans =
5123090 5504110
ans =
5147032 5843048
ans =
5232010 5799542
ans =
5357625 5684679
ans =
5385310 5812130
ans =
5459176 5495264
ans =
5726072 6369928
ans =
5730615 6088905
ans =
5864660 7489324
ans =
6329416 6371384
ans =
6377175 6680025
ans =
6955216 7418864
ans =
6993610 7158710
ans =
7275532 7471508
ans =
7288930 8221598
ans =
7489112 7674088
ans =
7577350 8493050
ans =
7677248 7684672
ans =
7800544 7916696
ans =
7850512 8052488
ans =
8262136 8369864
ans =
8619765 9627915
ans =
8666860 10638356
ans =
8754130 10893230
ans =
8826070 10043690
ans =
9071685 9498555
ans =
9199496 9592504
ans =
9206925 10791795
ans =
9339704 9892936
ans =
9363584 9437056
ans =
9478910 11049730
ans =
9491625 10950615
ans =
9660950 10025290
ans =
9773505 11791935
ans =
10254970 10273670
ans =
10533296 10949704
ans =
10572550 10854650
ans =
10596368 11199112
ans =
10634085 14084763
ans =
10992735 12070305
ans =
11173460 13212076
ans =
11252648 12101272
ans =
11498355 12024045
ans =
11545616 12247504
ans =
11693290 12361622
ans =
11905504 13337336
ans =
12397552 13136528
ans =
12707704 14236136
最長鏈:
14316 - 19116 - 31704 - 47616 - 83328 - 177792 - 295488 - 629072 - 589786 - 294896 - 358336 - 418904 - 366556 - 274924 - 275444 - 243760 - 376736 - 318028 - 285778 - 152990 - 122410 - 97946 - 48976 - 45946 - 22976 - 22744 - 19916 - 17716 - 14316

相關程式

用計算機編出的計算親和數的JAVA 程式
import java.util.ArrayList; import java.lang.Math; import java.lang.Double;
public class love_num {
public static void main(String[] args)
{
int intMain = 2;
int intBig = 0;
try
{
intBig = Integer.parseInt(args[0].toString());
}
catch (Exception e)
{
System.out.println("error:" + e);
System.out.println("type command like \"java love_num 50\"");
return;
}
while (true)
{
ArrayList listYakuSu1 = findYakuSu(intMain);
int intSum1 = addYakuSu(listYakuSu1);
//String strDebug = "";
//String strDebug2 = "";
if ( intSum1 == intMain )
{
System.out.println("self num:" + intSum1);
//for (int i = 0; i < listYakuSu1.size(); i ++)
//{
// strDebug += listYakuSu1.get(i);
// strDebug += ",";
//}
//System.out.println("YakuSu:" + strDebug);
}
else
{
ArrayList listYakuSu2 = findYakuSu(intSum1);
int intSum2 = addYakuSu(listYakuSu2);
if ( intSum2 == intMain )
{
System.out.println("love num:" + intMain + "--" + intSum1);
//for (int i = 0; i < listYakuSu1.size(); i ++)
//{
// strDebug += listYakuSu1.get(i);
// strDebug += ",";
//}
//System.out.println("YakuSu:" + strDebug);
//for (int i = 0; i < listYakuSu2.size(); i ++)
//{
// strDebug2 += listYakuSu2.get(i);
// strDebug2 += ",";
//}
//System.out.println("YakuSu:" + strDebug2);
}
}
intMain ++;
if (intMain > intBig)
{
return;
}
}
}
public static int addYakuSu (ArrayList listYakuSu)
{
//System.out.println("addYakuSu start ");
int sum = 0;
int temp = 0;
for (int i = 0; i < listYakuSu.size() ; i ++ )
{
temp = Integer.parseInt(listYakuSu.get(i).toString());
sum += temp;
}
//System.out.println("addYakuSu end " + sum);
//System.out.println("");
return (sum);
}
public static ArrayList findYakuSu (int intNum)
{
//String strDebug = "";
//System.out.println("findYakuSu start " + intNum);
ArrayList listYakuSu = new ArrayList();
double dbNum = (double)intNum;
double dbRoot = Math.sqrt(dbNum);
Double d = new Double(dbRoot);
int intRoot = d.intValue() ;
//System.out.println("root:" + intRoot);
// if (intHalf * 2 == intNum)
// {
// }
// else
// {
// intHalf ++;
// }
listYakuSu.add ("1");
for (int i = 2; i <= intRoot ; i ++)
{
int intPart = intNum/i;
if (intPart * i == intNum)
{
if (intPart == i)
{
listYakuSu.add (Integer.toString(i));
//strDebug += Integer.toString(i);
//strDebug += ",";
}
else
{
listYakuSu.add (Integer.toString(i));
listYakuSu.add (Integer.toString(intPart));
//strDebug += Integer.toString(i);
//strDebug += ",";
//strDebug += Integer.toString(intPart);
//strDebug += ",";
}
}
}
//System.out.println("findYakuSu end:1," + strDebug);
//System.out.println("");
return (listYakuSu);
}
}
用計算機編出的計算親和數的MATLAB程式
for a=2:1:100000000
t=1;
n=2;
s=sqrt(a);
s=fix(s);
if a==s^2
t=t+s;
end
while n<s
m=mod(a,n);
if m==0
t=t+n+a/n;
end
n=n+1;
end
if t>a
b=t;
l=1;
d=2;
p=sqrt(b);
p=fix(p);
if b==p^2
l=l+p;
end
while d<p
m=mod(b,d);
if m==0
l=l+d+b/d;
end
d=d+1;
end
if l==a
[a,b]
end
end
end
求a~b之間親和數的Free Pascal IDE程式
var
s,q,r,t,a,b:longint;
begin
read(a,b);
for a:=a to b do
begin
inc(s);
t:=0;
for r:=1 to s-1 do
if s mod r=0 then
t:=t+r;
q:=t;
t:=0;
for r:=1 to q-1 do
if q mod r=0 then
t:=t+r;
if (t=s)and(s<>q) then
if s<q then
writeln(s,' ',q);
end;
end.
用計算機編出的c++程式
#include <iostream>using namespace std;int divsum(int);const unsigned int INITNUM = 30000;int main(){    int num_1,num_2;    for (int num_1 = 1; num_1 < INITNUM; ++num_1)    {        num_2 = divsum(num_1);        if (num_1 != num_2)        {            if (num_1 == divsum(num_2))            {                cout<<num_1<<" "<<num_2<<endl;            }        }    }}int divsum(int x){    int sum = 0;    for( int i = 1 ; i < x ; ++i )    {        if( x % i == 0 )        {            sum += i;        }    }    return sum;}//    by Zing其他[編輯]在目前所有已知的情況下,相親數皆同為偶數或同為奇數。目前不知道一奇一偶的相親數是否存在,但若存在,則偶數必須為完全平方數或其兩倍,且奇數也必須是完全平方數。目前已知存在7對具有不同的最小素因數的相親數。在目前所有已知的情況下,相親數皆具有質公約數。目前不知道是否存在互素的相親數。若存在,兩者乘積必大於1067.1955年,艾狄胥·帕爾(PaulErdős)說明相親數相對於正整數的密度為0。

相關詞條

熱門詞條

聯絡我們