官术网_书友最值得收藏!

2.8 素集“烏蘭現(xiàn)象”

美國數(shù)學(xué)家烏蘭教授(S.Ulam)在一次參加科學(xué)報(bào)告會(huì)時(shí),為了消磨時(shí)間,在一張紙上把1,2,3,…,100按逆時(shí)針的方式排成一種方形螺旋線,并標(biāo)出了其中的全部素?cái)?shù)。

他突然發(fā)現(xiàn)這些素?cái)?shù)大都扎堆于一些斜線上。散會(huì)后,他在計(jì)算機(jī)上把1~65 000的整數(shù)排成逆時(shí)針方螺旋并打印出來。他發(fā)現(xiàn)這些素?cái)?shù)仍然具有擠成一條直線的特性,這種現(xiàn)象在數(shù)學(xué)上稱為“烏蘭現(xiàn)象”。

后來,數(shù)學(xué)家們從“烏蘭現(xiàn)象”中找到了素?cái)?shù)的許多有趣性質(zhì)。

2.8.1 方螺線中的素集線

設(shè)計(jì)程序,把整數(shù)序列1,2,3,4,…,n×n排列成n圈的方螺線數(shù)陣,1置放在中心位置,以后各整數(shù)依次按逆時(shí)針方螺線位置排列。

為清楚顯示,方螺線上的素?cái)?shù)用括號(hào)標(biāo)注。

1. 設(shè)計(jì)要點(diǎn)

對(duì)于指定方陣的階數(shù)n,設(shè)置i循環(huán)(i=1,2,3,…,n×n),在循環(huán)中應(yīng)用試商判別法判別整數(shù)i是否為素?cái)?shù),并用p數(shù)組元素標(biāo)注素?cái)?shù):p[i]=1,i為素?cái)?shù);否則p[i]=0。

數(shù)字方螺線是從正中間開始的。隨整數(shù)m的逐步增加,位置呈逆時(shí)針方螺線展開。給方螺線的各位置確定m的值是設(shè)計(jì)的關(guān)鍵所在。

為此,建立存儲(chǔ)整數(shù)m的坐標(biāo)值的2維數(shù)組a[x][y]。

對(duì)于輸入的整數(shù)n,計(jì)算d=n/2,d為n階方螺線的圈數(shù)。方螺線的正中位置存儲(chǔ)1,即a[d][d]=1,中心位置不屬于任何圈。

在第i(1~d)圈的四周分為右邊、上邊、左邊與下邊,相應(yīng)分4步分別在條件循環(huán)中實(shí)施賦值操作。

(1)右邊向上增長(zhǎng),x不變y遞增1,整數(shù)m遞增1,a[x][y]=m;直至y=d+i轉(zhuǎn)向。

     while(y<d+i){m++;y++;a[x][y]=m;}

(2)上邊向左增長(zhǎng),y不變x遞減1,整數(shù)m遞增1,a[x][y]=m;直至x=d-i轉(zhuǎn)向。

     while(x>d-i) {m++;x--;a[x][y]=m;}

(3)左邊向下增長(zhǎng),x不變y遞減1,整數(shù)m遞增1,a[x][y]=m;直至y=d-i轉(zhuǎn)向。

     while(y>d-i){m++;y--;a[x][y]=m;}

(4)下邊向右增長(zhǎng),y不變x遞增1,整數(shù)m遞增1,a[x][y]=m;直至x=d+i轉(zhuǎn)向。

     while(x<d+i){m++;x++;a[x][y]=m;}

每一圈4邊賦值完成后,通過x++;y=d-i;過渡至下一圈的起點(diǎn)。

在二重循環(huán)中輸出a數(shù)組元素,即打印出方螺線方陣。

顯示輸出時(shí),利用p數(shù)組識(shí)別素?cái)?shù),同時(shí)用括號(hào)把素?cái)?shù)括起來,以區(qū)別于其他整數(shù)。

2. 烏蘭現(xiàn)象程序設(shè)計(jì)
3. 程序運(yùn)行示例與說明
     構(gòu)建n階方陣,請(qǐng)確定n:13
     13階方螺線方陣:(見圖2-2)

圖2-2 素?cái)?shù)1+2線的烏蘭現(xiàn)象圖

可以清楚地看到圖2-2中素?cái)?shù)沿斜線(圖中只畫出其中兩條斜線)扎堆的烏蘭現(xiàn)象。

這些“素集線”上除了大多數(shù)為素?cái)?shù)1外,其他非素?cái)?shù)如39,15、33、93,85,65等大多為兩個(gè)素?cái)?shù)之積,即陳景潤研究哥德巴赫猜想所得1+2中的2,是比較“接近素?cái)?shù)”的整數(shù)。

同時(shí),從圖2-2中還可看到另一有趣的現(xiàn)象:奇數(shù)的平方數(shù)1,9,25,49,81等在下部半條斜線上,而偶數(shù)的平方數(shù)4,16,36,64,100等則在上部半條斜線上。

2.8.2 回旋層疊另版烏蘭

圖2-3 坐標(biāo)系移動(dòng)漫步示意圖

回旋層疊方陣是另一個(gè)生動(dòng)體現(xiàn)素?cái)?shù)沿斜線扎堆的有趣方陣,而且更為簡(jiǎn)單,可以說是另版烏蘭。

回旋層疊方陣在坐標(biāo)系第一象限(包括x軸與y軸)按以下規(guī)律展開:它從原點(diǎn)(0,0)運(yùn)動(dòng)到(0,1),然后按圖2-3中箭頭所示方向展開,即

原點(diǎn)(0,0)→(0,1)→(1,1)→(1,0)→(2,0)→(2,1)→(2,2)→(1,2)→(0,2)…

行進(jìn)路線上的每一個(gè)點(diǎn)有一個(gè)整數(shù)m,坐標(biāo)原點(diǎn)的m=0,以后每一步m遞增1。

試構(gòu)建n階回旋層疊方陣,用括號(hào)標(biāo)注方陣整數(shù)m中的素?cái)?shù)。

1. n階回旋層疊方陣設(shè)計(jì)要點(diǎn)

對(duì)于指定方陣的階數(shù)n,同樣應(yīng)用試商判別整數(shù)i(1~d=(n+1)×(n+1))是否為素?cái)?shù),并用p數(shù)組元素標(biāo)注素?cái)?shù):p[i]=1,i為素?cái)?shù);否則p[i]=0,i為非素?cái)?shù)。

為敘述方便,把方陣分成n層,并稱x=k或y=k的這一“層”為第k(1~n)層,該層的“折點(diǎn)”坐標(biāo)為(k,k)。折點(diǎn)把每一層分為水平段與垂直段。

同時(shí),第k(1~n)層的兩段的先后次序與k的奇偶有關(guān)。

奇數(shù)層:先水平段從左至右遞增到“折點(diǎn)”,再垂直段從上至下遞增到x軸(y=0)。

偶數(shù)層:先垂直段從下至上遞增到“折點(diǎn)”,再水平段從右至左遞增到y(tǒng)軸(x=0)。

設(shè)置i(1~n)循環(huán),對(duì)第i層的兩段中各點(diǎn)分別賦值。

(1)若i%2>0,即在奇數(shù)層。

首先,通過y++過渡到奇數(shù)層。

奇數(shù)層是先水平向右;過折點(diǎn)后再垂直向下。

在水平段,y坐標(biāo)為i不變,x坐標(biāo)與m遞增1;直至x=i即到折點(diǎn)為止。

     while(x<i){x++;m++;a[x][y]=m;}

在垂直段,x坐標(biāo)為i不變,y坐標(biāo)遞減1,m遞增1;直至y=0即到x軸為止。

     while(y>0){y--;m++;a[x][y]=m;}

(2)若i%2=0,即在偶數(shù)層。

首先,通過x++過渡到偶數(shù)層。

偶數(shù)層是先垂直向上;過折點(diǎn)后再水平向左。

在垂直段,x坐標(biāo)為i不變,y坐標(biāo)與m遞增1;直至y=i即到折點(diǎn)為止。

     while(y<i){y++;m++;a[x][y]=m;}

在水平段,y坐標(biāo)為i不變,x坐標(biāo)遞減1,m遞增1;直至x=0即到y(tǒng)軸為止。

     while(x>0){x--;m++;a[x][y]=m;}

同樣,在二重循環(huán)中輸出a數(shù)組元素,即打印出回旋層疊方陣。

顯示輸出時(shí),利用p數(shù)組識(shí)別素?cái)?shù),用括號(hào)把素?cái)?shù)括起來,以區(qū)別于其他整數(shù)。

2. 程序設(shè)計(jì)
3. 程序運(yùn)行示例與說明

請(qǐng)輸入方陣階數(shù)n(n<100):12

輸出的回旋層疊方陣的1+2線圖如圖2-4所示。

圖2-4 回旋層疊方陣的1+2線圖

從以上輸出可以清楚地看到另版“烏蘭現(xiàn)象”:圖2-4中素?cái)?shù)沿斜線扎堆(圖中只畫出其中兩條),這些“素集線”,除了一部分為素?cái)?shù)1之外,其他非素?cái)?shù)如57、91,77,25、35等大多為兩個(gè)素?cái)?shù)之積,即比較“接近素?cái)?shù)”的2。

從圖2-4中還可看到另一個(gè)有趣的現(xiàn)象:所有偶數(shù)也聚集于它們的斜線之上,真可謂“涇渭分明”。

同時(shí),奇數(shù)的平方數(shù)1,9,25,49,81等均相間于縱向坐標(biāo)軸上,而偶數(shù)的平方數(shù)4,16,36,64等則相間于橫向坐標(biāo)軸上。

4. 富素斜線探索

考察圖2-4中的3—5—13—19…這一素集斜線,開頭10個(gè)點(diǎn)中8個(gè)是素?cái)?shù)。另兩個(gè)不是素?cái)?shù)的兩個(gè)點(diǎn)為57=3×19,91=7×13,也是比較“接近素?cái)?shù)”的2。

同時(shí),這一素集線的斜率為正,即斜線呈現(xiàn)遞增態(tài)勢(shì),比方螺線分別向兩頭遞增更為形象直觀。

把這一素集線上的數(shù)表示成第m行的函數(shù)f(m),歸納得到:

f(m)=m2+m+1(當(dāng)m為奇數(shù)時(shí))

f(m)=m2+m-1(當(dāng)m為偶數(shù)時(shí))

應(yīng)用以上公式,可以非常方便地探求這一素集線上的1+2分布,有興趣的讀者可自行設(shè)計(jì)程序探索,此處從略。

主站蜘蛛池模板: 尉氏县| 博白县| 海宁市| 南和县| 郓城县| 革吉县| 利津县| 道真| 股票| 中西区| 大城县| 济南市| 鄂托克前旗| 三台县| 濮阳市| 安化县| 米泉市| 北安市| 满城县| 平泉县| 云霄县| 嘉定区| 内江市| 道真| 昌黎县| 西安市| 逊克县| 青铜峡市| 上林县| 莎车县| 牡丹江市| 衡阳市| 清新县| 康马县| 来安县| 黄陵县| 兴宁市| 霍林郭勒市| 绍兴市| 调兵山市| 南宫市|