見出し画像

数の神秘 vol.2完全数についてもうちょっとだけ調べてみた。


昨日、記事を書きながら「完全数」について調べていましたが、今日ちょっと法則を見つけたので続編です。

既知の完全数を網羅してみようと試みる。

以下のサイトで現在見つかっている完全数の51個のうち48個が紹介されていたので、桁数と冒頭の数値をたよりにカシオの高度計算サイトで以下の式を使用して一つずつ導出してみました。

完全数P(n) ⊂ (2^n-1)-(2^((n-1)/2)-1)

で、導出したnとユークリッドの公式で表した完全数の一覧の一部がこちらです。

 1: n=    3 : P(    3)=2^1(2^2-1)   [1桁]
 2: n=    5 : P(    5)=2^2(2^3-1)  [2桁]
 3: n=    9 : P(    9)=2^4(2^5-1)  [3桁]
 4: n=   13 : P(   13)=2^6(2^7-1)  [4桁]
 5: n=   25 : P(   25)=2^12(2^13-1)  [8桁]
 6: n=   33 : P(   33)=2^16(2^17-1)  [10桁]
 7: n=   37 : P(   37)=2^18(2^19-1)  [12桁]
 8: n=   61 : P(   61)=2^30(2^31-1)  [19桁]
 9: n=  121 : P(  121)=2^60(2^61-1)  [37桁]
10: n=  177 : P(  177)=2^88(2^89-1)  [54桁]
11: n=  213 : P(  213)=2^106(2^107-1)  [65桁]
12: n=  253 : P(  253)=2^126(2^127-1)  [77桁]
13: n= 1041 : P( 1041)=2^520(2^521-1)  [314桁]
14: n= 1213 : P( 1213)=2^606(2^607-1)  [366桁]
15: n= 2557 : P( 2557)=2^1278(2^1279-1)  [770桁]
16: n= 4405 : P( 4405)=2^2202(2^2203-1)  [1327桁]
17: n= 4561 : P( 4561)=2^2280(2^2281-1)  [1373桁]
18: n= 6433 : P( 6433)=2^3216(2^3217-1)  [1937桁]
19: n= 8505 : P( 8505)=2^4252(2^4253-1)  [2561桁]
20: n= 8845 : P( 8845)=2^4422(2^4423-1)  [2663桁]

この辺りでいったん、例外と思われたnが36の倍数に3を引いた値になる完全数を探してみることにしました。
36の倍数に3を引いたnを「n=36r-3」で表すとします。
前回みつけたnは{33, 177, 213}でしたが、更に昨日、カシオの高度計算サイトで桁数オーバーの完全数を確認できないか試していた際に{1041}も追加で見つけました。
n=33=3×11   : r = 1
n=177=3×59 : r = 5
n=213=3×71 : r = 6
n=1041=3×347 : r = 29
ここで、なにか法則ないかと思い浮かんだn^nより、5と29に注目して2^2+1=5, 3^3+2=29なので
r=x^x+x-1{ x:1,2,3,4.. }はどうかなと。
すると1と5と29が該当したので、これはいけるのではと思い、
「r=4^4+4-1=259」より「n=36×259-3=9321」を試してみました。

P(9321)=7.95407321027794849374660257621279553288320737505009817479524712671212666428273506E+2805

結果の値の末尾が「E+2805」なので、2806桁となるはずです。
しかし、該当する既知の完全数はありませんでした。

余算のMOD演算を活用してみる。

ここでExcelにまとめた一覧にnを36で割った余りを出してみることにしました。
36r-3ということなので余りが33になるnを探す手法です。
Excel: =MOD(n, 36)
この計算を出してみると以下のようになりました

確認方法はMOD演算で余りが33になる数なので
とりあえず、すべての完全数に導出されるnを試してみることにしました。

 1: n=    3 : MOD36=  3 : r-1=   0 : P(    3)=2^1(2^2-1)   [1桁]
 2: n=    5 : MOD36=  5 : r-1=   0 : P(    5)=2^2(2^3-1)  [2桁]
 3: n=    9 : MOD36=  9 : r-1=   0 : P(    9)=2^4(2^5-1)  [3桁]
 4: n=   13 : MOD36= 13 : r-1=   0 : P(   13)=2^6(2^7-1)  [4桁]
 5: n=   25 : MOD36= 25 : r-1=   0 : P(   25)=2^12(2^13-1)  [8桁]
 6: n=   33 : MOD36= 33 : r-1=   0 : P(   33)=2^16(2^17-1)  [10桁]
 7: n=   37 : MOD36=  1 : r-1=   1 : P(   37)=2^18(2^19-1)  [12桁]
 8: n=   61 : MOD36= 25 : r-1=   1 : P(   61)=2^30(2^31-1)  [19桁]
 9: n=  121 : MOD36= 13 : r-1=   3 : P(  121)=2^60(2^61-1)  [37桁]
10: n=  177 : MOD36= 33 : r-1=   4 : P(  177)=2^88(2^89-1)  [54桁]
11: n=  213 : MOD36= 33 : r-1=   5 : P(  213)=2^106(2^107-1)  [65桁]
12: n=  253 : MOD36=  1 : r-1=   7 : P(  253)=2^126(2^127-1)  [77桁]
13: n= 1041 : MOD36= 33 : r-1=  28 : P( 1041)=2^520(2^521-1)  [314桁]
14: n= 1213 : MOD36= 25 : r-1=  33 : P( 1213)=2^606(2^607-1)  [366桁]
15: n= 2557 : MOD36=  1 : r-1=  71 : P( 2557)=2^1278(2^1279-1)  [770桁]
16: n= 4405 : MOD36= 13 : r-1= 122 : P( 4405)=2^2202(2^2203-1)  [1327桁]
17: n= 4561 : MOD36= 25 : r-1= 126 : P( 4561)=2^2280(2^2281-1)  [1373桁]
18: n= 6433 : MOD36= 25 : r-1= 178 : P( 6433)=2^3216(2^3217-1)  [1937桁]
19: n= 8505 : MOD36=  9 : r-1= 236 : P( 8505)=2^4252(2^4253-1)  [2561桁]
20: n= 8845 : MOD36= 25 : r-1= 245 : P( 8845)=2^4422(2^4423-1)  [2663桁]

一覧で出してみると、{n: 33, 177, 213, 1041}の余りであるMOD36が33であることが確認できましたが、他のnにも特徴があることに気づきました。

r-1に対して余りが{ 1, 3, 5, 9, 13, 25, 33 }のいずれかであることです。
rに対しては余りが{ -35, -33, -31, -27, -23, -11, -3}であるとも言いかえることもできます。
不規則っぽい分布していますが、nの増加に対してしばらくは{ 1, 3, 5, 9, 13, 25, 33 }のいずれかであると思われます。
いや、{ 1, 3, 5, 9, 13, 25, 33 }は、数列のb番目とb+1番目の差分は{ 2, 2, 4, 4, 8, 8 }なので、b: { 0,1,2,3,4,5,6 } , M(b+1)-M(b): { 2^( ⌊ b/2 ⌋ + 1 ) }
※⌊ b/2 ⌋ は床関数でb/2の整数部分

Σで表せないかな。

余算ということで剰余定理で当てはめてみてはどうだろうか。と思ったけど、その前に周期性を持つ数列ということで、せっかくなので虚数を使った数式にできないか考えてみる。
不規則に見えるが法則のある整数の数列って数列どうしの和とか、虚数もしくはSIN,COSによる周期で「整数の領域で可視できるもの」が関係あるというイメージなので、ちょっと虚数に関係あるか試したいなと。

自分はあまり詳しくないので、AIのGeminiにきいてみた。

数列{xn: 2,2,4,4,8,8}を虚数を使った数式で表すことはできますか
edit
回答案を表示
volume_up

はい、数列 {xn: 2, 2, 4, 4, 8, 8} を虚数を使った数式で表す方法はいくつかあります。

1. オイラー公式を用いた方法

オイラー公式は、以下の式で表されます。

e^(iπ) = -1
ここで、

e は自然対数の底
i は虚数単位 (√-1)
π は円周率
この式を 2 倍すると、

2e^(iπ) = -2
となります。さらに、両辺を 2^n 乗すると、

2^(n+1)e^(inπ) = -2^n
となります。

ここで、xn = 2^(n+1) と置き換えると、

xn × e^(inπ) = -2^n
となります。

ということなのですが、あってますかこれ?

a=2: -2^a / e^(i*a*pi) = -4   カシオ高精度計算

b: { 0,1,2,3,4,5,6 }  M(b+1)-M(b): {-1, 2,-4,8,-16,32,-64}
残念ながら違うようです。
というか、ここではないかな。
nやPにオイラーの公式とかならありそう。
オイラーの公式とか、ロマンですね。

あれ、ちょっと待って、間違えていた。
数列のb番目とb+1番目の差分、正しくは{ 2, 2, 4, 4, 12, 8 }


あと気づいた点は、
P( 2557)=2^1278(2^1279-1)
P( 6433)=2^3216(2^3217-1)
などの結果から
2557=1278+1279
6433=3216+3217
つまり、

「2^p − 1 が素数ならば、2^(p−1)(2^p − 1) は完全数である」というユークリッドの完全数の公式より

n=2p+1

という関係性が導出できた。

よって、

p=(n-1)/2

となり、

2^( (n-1)/2 - 1 )( 2^((n-1)/2) - 1 )は完全数である。

nとは自分自身が自分自身を除く正の真の約数の個数(約数の個数-1)であり、中央値があることを前提とする奇数ということを踏まえて何かできないかなと考えてみた。

約数の個数は「素因数分解して」「それぞれの指数に1を足して」「全部かける」ことで計算できる。

らしいので、n=37の8589869056で確認してみる。

約数の数が38個。真の約数だと37個になる。約数の総和も「17179738112」で、8589869056の2倍で完全数だ。ちゃんとあってる。
ただ確認できる桁数が少ないので、大きな桁を確認できそうなサイトないだろうか。

既知の完全数の一覧

先日の完全数の一覧では現在発見されている51個すべては網羅されていなかったので、探してみた。

あった。一個一個リンクをたどって出してみる。

GIMPS Discovers 45th and 46th Mersenne Primes,
2^43,112,609-1 is now the Largest Known Prime.
Titanic Primes Raced to Win $100,000 Research Award

GIMPS、45番目と46番目のメルセンヌ素数を発見、
2^43,112,609-1が既知の最大の素数となる。
タイタニック・プライムズ、10万ドルの研究賞獲得に向け競争

https://web.archive.org/web/20220204231601/https://www.mersenne.org/primes/?press=M43112609

アレ、完全数みつけたら$100,000もらえたの? スゴ!
あーでも、このときだけみたい。

あと、発見した順番が、数が大きい順とは限らないみたい。
46thと47thの方が数が小さいのに45thより後で見つかっている。
確認方法が違っているからなんだろう。

まず、桁数の多い完全数を計算して出してみる

51th: 2^82589932(2^82589933-1)

51番目の最新の完全数は、
1.108477798641484411E+49724094、桁数はE+49724094とあるので49,724,093桁
すべての完全数の一覧を作って、確認しながらnを算出。

桁数の差分からnを探索するための概算式:rounddown(n+log(2,10^(k1-k0-1)),0)

桁数から次のnの概算を出していたけど、メルセンヌ素数の累乗の数から算出できたことに作業の途中で気付いた。

真の約数の個数n = 36 × (r-1) + MOD36 の関係
数が大きい順で並び替え。
発見番号:n:MOD36:r:完全数(メルセンヌ素数で表記) [10進数の桁数]
 1th : n=    3 : MOD36=  3 : r-1=   0 : P(    3)=2^1(2^2-1)   [1桁]
 2th : n=    5 : MOD36=  5 : r-1=   0 : P(    5)=2^2(2^3-1)  [2桁]
 3th : n=    9 : MOD36=  9 : r-1=   0 : P(    9)=2^4(2^5-1)  [3桁]
 4th : n=   13 : MOD36= 13 : r-1=   0 : P(   13)=2^6(2^7-1)  [4桁]
 5th : n=   25 : MOD36= 25 : r-1=   0 : P(   25)=2^12(2^13-1)  [8桁]
 6th : n=   33 : MOD36= 33 : r-1=   0 : P(   33)=2^16(2^17-1)  [10桁]
 7th : n=   37 : MOD36=  1 : r-1=   1 : P(   37)=2^18(2^19-1)  [12桁]
 8th : n=   61 : MOD36= 25 : r-1=   1 : P(   61)=2^30(2^31-1)  [19桁]
 9th : n=  121 : MOD36= 13 : r-1=   3 : P(  121)=2^60(2^61-1)  [37桁]
10th : n=  177 : MOD36= 33 : r-1=   4 : P(  177)=2^88(2^89-1)  [54桁]
11th : n=  213 : MOD36= 33 : r-1=   5 : P(  213)=2^106(2^107-1)  [65桁]
12th : n=  253 : MOD36=  1 : r-1=   7 : P(  253)=2^126(2^127-1)  [77桁]
13th : n= 1041 : MOD36= 33 : r-1=  28 : P( 1041)=2^520(2^521-1)  [314桁]
14th : n= 1213 : MOD36= 25 : r-1=  33 : P( 1213)=2^606(2^607-1)  [366桁]
15th : n= 2557 : MOD36=  1 : r-1=  71 : P( 2557)=2^1278(2^1279-1)  [770桁]
16th : n= 4405 : MOD36= 13 : r-1= 122 : P( 4405)=2^2202(2^2203-1)  [1327桁]
17th : n= 4561 : MOD36= 25 : r-1= 126 : P( 4561)=2^2280(2^2281-1)  [1373桁]
18th : n= 6433 : MOD36= 25 : r-1= 178 : P( 6433)=2^3216(2^3217-1)  [1937桁]
19th : n= 8505 : MOD36=  9 : r-1= 236 : P( 8505)=2^4252(2^4253-1)  [2561桁]
20th : n= 8845 : MOD36= 25 : r-1= 245 : P( 8845)=2^4422(2^4423-1)  [2663桁]
21th : n=19377 : MOD36=  9 : r-1= 538 : P(19377)=2^9688(2^9689-1)  [5834桁]
22th : n=19881 : MOD36=  9 : r-1= 552 : P(19881)=2^9940(2^9941-1)  [5985桁]
23th : n=22425 : MOD36= 33 : r-1= 622 : P(22425)=2^11212(2^11213-1)  [6751桁]
24th : n=39873 : MOD36= 21 : r-1=1107 : P(39873)=2^19936(2^19937-1)  [12003桁]
25th : n=43401 : MOD36= 21 : r-1=1205 : P(43401)=2^21700(2^21701-1)  [13066桁]
26th : n=46417 : MOD36= 13 : r-1=1289 : P(46417)=2^23208(2^23209-1)  [13973桁]
27th : n=88993 : MOD36=  1 : r-1=2472 : P(88993)=2^44496(2^44497-1)  [26790桁]
28th : n=172485 : MOD36=  9 : r-1=4791 : P(172485)=2^86242(2^86243-1)  [51924桁]
29th : n=221005 : MOD36=  1 : r-1=6139 : P(221005)=2^110502(2^110503-1)  [66530桁]
30th : n=264097 : MOD36=  1 : r-1=7336 : P(264097)=2^132048(2^132049-1)  [79502桁]
31th : n=432181 : MOD36=  1 : r-1=12005 : P(432181)=2^216090(2^216091-1)  [130100桁]
32th : n=1513677 : MOD36= 21 : r-1=42046 : P(1513677)=2^756838(2^756839-1)  [455663桁]
33th : n=1718865 : MOD36=  9 : r-1=47746 : P(1718865)=2^859432(2^859433-1)  [517430桁]
34th : n=2515573 : MOD36=  1 : r-1=69877 : P(2515573)=2^1257786(2^1257787-1)  [757263桁]
35th : n=2796537 : MOD36= 21 : r-1=77681 : P(2796537)=2^1398268(2^1398269-1)  [841842桁]
36th : n=5952441 : MOD36= 21 : r-1=165345 : P(5952441)=2^2976220(2^2976221-1)  [1791864桁]
37th : n=6042753 : MOD36=  9 : r-1=167854 : P(6042753)=2^3021376(2^3021377-1)  [1819050桁]
38th : n=13945185 : MOD36=  9 : r-1=387366 : P(13945185)=2^6972592(2^6972593-1)  [4197919桁]
39th : n=26933833 : MOD36=  1 : r-1=748162 : P(26933833)=2^13466916(2^13466917-1)  [8107892桁]
40th : n=41992021 : MOD36=  1 : r-1=1166445 : P(41992021)=2^20996010(2^20996011-1)  [12640858桁]
41th : n=48073165 : MOD36= 25 : r-1=1335365 : P(48073165)=2^24036582(2^24036583-1)  [14471465桁]
42th : n=51929901 : MOD36=  9 : r-1=1442497 : P(51929901)=2^25964950(2^25964951-1)  [15632458桁]
43th : n=60804913 : MOD36= 13 : r-1=1689025 : P(60804913)=2^30402456(2^30402457-1)  [18304103桁]
44th : n=65165313 : MOD36= 21 : r-1=1810147 : P(65165313)=2^32582656(2^32582657-1)  [19616714桁]
46th : n=74313333 : MOD36=  9 : r-1=2064259 : P(74313333)=2^37156666(2^37156667-1)  [22370541桁]
47th : n=85287601 : MOD36=  1 : r-1=2369100 : P(85287601)=2^42643800(2^42643801-1)  [25674125桁]
45th : n=86225217 : MOD36= 33 : r-1=2395144 : P(86225217)=2^43112608(2^43112609-1)  [25956375桁]
48th : n=115770321 : MOD36=  9 : r-1=3215842 : P(115770321)=2^57885160(2^57885161-1)  [34850339桁]
49th : n=148414561 : MOD36= 25 : r-1=4122626 : P(148414561)=2^74207280(2^74207281-1)  [44677233桁]
50th : n=154465833 : MOD36= 21 : r-1=4290717 : P(154465833)=2^77232916(2^77232917-1)  [46498848桁]
51th : n=165179865 : MOD36= 21 : r-1=4588329 : P(165179865)=2^82589932(2^82589933-1)  [49724093桁]

できた。
なんか発見した順番が、数が大きい順とは限らないみたい。
数が大きい順に並び変えて確認してみる。

MOD36に新たに21が現れた。
{ 1, 3, 5, 9, 13, 21, 25, 33 }
んー、3だけ浮いている。
17や29が現れていないけど、4x+1と3が余りになるみたいに見える。

完全数P(n)の真の約数の数をnとしたとき※整数の中央値を必要とするためnは奇数とする。
P(n) ⊂ (2^n-1)-(2^((n-1)/2)-1)

M を n mod 36 の 集合
としたとき
51thまでの完全数において
M : {1, 3, 5, 9, 13, 21, 25, 33}

予想として
 M = { [k=08]( 4k + 1 ), 3 }

ここで素数について気になったので調べてみた。

完全数をユークリッドの完全数の数式である (2^(m-1))*(2^m-1)
この(2^m-1)はメルセンヌ素数といい、2をm乗して1を引いた自然数のうち素数であるものを言うらしいが、既知の完全数において、(2^m-1)のmにおいても素数のようだ。

mを余算で余りを出したときに、一定の数値が現れない原因を探ると、単純な話だった。
自然数Nをax+bと表したとき、N mod a = b となる。
もし、aとbに公約数Cが存在すれば、N mod CA = CB のように表せられる。
すなわち、N=CAx+CB なので、N=C(Ax+B) となる。
このため、公約数Cが存在する場合のNは、素数ではない。

ax+bにおいて割る数aもしくはxと、bに公約数が存在したら素数ではないので素数である(2^m-1)やmに対しての余算の結果の余りに、公約数の倍数となる値は存在しない。

このことが原因で51thまでの完全数において
n=2m-1
M = n mod 36 = (2m-1) mod 36 (←2^2 * 3^2)
M : {1, 3, 5, 9, 13, 21, 25, 33}
という分布になったようだ。


P(n) ⊂ (2^n-1)-(2^((n-1)/2)-1) = 2^n-2^((n-1)/2)
ユークリッドの完全数の公式
P(m) ⊂ (2^(m-1))*(2^m-1)
この(2^m-1)はメルセンヌ素数

51thまでの完全数においてmは素数

素数を示す関数を調べてみた。


素数の公式の1つ f(n)=rounddown(mod(n!, (n+1))/n,0)*(n-1)+2

m = f(n)としてnは51thまでの完全数ではどのようなnになるのだろうか。今回はここまで。

例えば、関数g(n)をg(n)≡2(n!) mod (n+1)かつ0≦g(n)≦nを満たすような数としてf(n)=2+g(n)とおけば、これが求める性質を満たす関数になることが分かります。(ウィルソンの定理から出てきます。)しかも、この関数は適当にnの値をとれば全ての素数が関数の値として出てくることが分かります。

すなわち、f(n)≠2であるようなf(n)の値のみに注目すれば、素数の単調増加列が得られます。

https://www.comm.tcu.ac.jp/~math/hnakai/elementary_math/topics/generatingprimes.html

いいなと思ったら応援しよう!

和魂LOVE
よろしければサポートお願いします! いただいたサポートはクリエイターとしての活動費に使わせていただきます!