べき乗剰余数列とべき剰余マトリックス

さて,いよいよ佳境に入るというところだが,その第一歩はべき乗剰余数列とべき剰余マトリックスの統合だ.これをどちら側でやればよいのか?それが問題だ.最終的には剰余数列をマトリックスに吸収するという流れに落ち着くものと思われるが,過渡的には剰余数列でテストしてみるということも考えられる.特にドロップ項(落伍項)と呼ばれるものの実態を究める必要がある.そのためにはむしろ剰余数列の延長上で考えた方が分かり易いのではないか?しばらくその方向で進むことにしよう.⇒マトリックスでドロップ項の話が出てこないのは,まだそこまで進んでいないためだ.たとえば,k=12でn=2, 6, 10ならドロップが発生するが,マトリックスでは完全に無視されている.マトリックスでは以下が出力される.

1    1    1    1    1    1    1    1    1    1    1    Σ=11 G=1 M=1 ψ=0

2    4    8    4    8    4    8    4    8    4    8    Σ=2 G=1 M=3 ψ=0

3    9    3    9    3    9    3    9    3    9    3    Σ=3 G=1 M=2 ψ=0
4    4    4    4    4    4    4    4    4    4    4    Σ=8 G=1 M=1 ψ=0
5    1    5    1    5    1    5    1    5    1    5    Σ=11 G=1 M=2 ψ=2

6    0    0    0    0    0    0    0    0    0    0    Σ=6 G=1 M=2 ψ=0

7    1    7    1    7    1    7    1    7    1    7    Σ=11 G=1 M=2 ψ=2
8    4    8    4    8    4    8    4    8    4    8    Σ=8 G=1 M=2 ψ=0
9    9    9    9    9    9    9    9    9    9    9    Σ=3 G=1 M=1 ψ=0

10    4    4    4    4    4    4    4    4    4    4    Σ=2 G=1 M=2 ψ=0

11    1    11    1    11    1    11    1    11    1    11    Σ=11 G=11 M=2 ψ=2
0    0    0    0    0    0    0    0    0    0    0    Σ=0 G=0 ψ=0
6    2    0    2    0    2    0    2    0    2    0    4=∑
1    1    1    1    1    1    1    1    1    1    11    =G
11    4    9    4    9    4    9    4    9    4    9    =M
0    0    0    0    2    0    2    0    0    0    2    =ψ

n=2の場合は{2, 4, 8, 4, 8, …}という数列になるが,異種文字数は3になっている.つまり,異種文字数=周期は必ずしも成立しない.ドロップ項の2を除外すれば,{4, 8}という周期が取り出される.n=6の場合は,6がドロップ項で巡回数列は{0}だ.n=10の場合には{4}が巡回数列になる.n=4や9では{4}や{9}のような自己ループに墜ちているが,ドロップとは言わない.これは初項が存続しているためだ.実際,このような場合には異種文字数=周期が成立している.従って,マトリックスにドロップという概念を移植することは必須であると言える.

k=12のマトリックスでは,n=5, 7, 11のように対象数が素数である場合にしかψが立っていないが,周期数列の周期=ψであると定義すれば,すべての場合にψ数を決定することができる.実際,ψ=剰余類群の位数と解釈されるが,剰余類群の位数とは剰余数列の周期に他ならない.剰余類群=マトリックスの行とみなすとすると,この集合の要素にはドロップ項が含まれるが,乗群とみなすためにはドロップ項を外す必要があるのではないか?ここでは暫定的にψ=周期とみなすという立場を取ることにする.従って,剰余数列=ドロップ項+周期という構成になる.まず,この周期を明示するところから始めなくてはならない.また,この周期を確立することができれば,懸案の剰余数列のすべての周期を確定するという課題が解決されることになるだろう.

Psiという関数と別にPsiFunctionという関数がある.これは何だろう?どちらもψ値を求めるものと思われるが… PsiFunctionは以下から呼び出されている.①Inverse_Click,②PrimeTestClick,③SeedTestClick,④ValueChanged.一方Psiの方は,現状ではまったく使われていない.PsiFunctionとPsiの大きな違いは,前者が引数でφを渡されている点だ.PsiFunctionではGetDivisorsを使ってφの約数を求め,これからψを推定しようとしている.後者はGetDivisorsは使っていないが,同等処理を内部で実施している.結局,Psiを整理したものがPsiFunctionと考えてよいだろう.やっていることはほぼ同じだ.Psiは旧式と考えられるので,廃棄してよいのではないだろうか?

ResidueFunc2ではkの範囲しかチェックしていない.これに関しては問題ないと思われるが,ドロップ項の検査で1~周期までの間しか見ていないというのは誤りだ.ドロップ項はつねに連続していると推定されるので,非ドロップ項を検出した時点で打ち切ってもよいのではないかとは思われるが,周期の範囲では取りこぼしが発生する.

ResidueFuncにはすでに修正が入っているので,ResidueFunc2はお役御免になったのではないか?⇒ゴミ箱に移しておこう.ResidueFuncではすべての場合に例外なく周期が取れるようになったので,マトリックスに組み込むことができるだろう.もちろん,マトリックスはマトリックスで独自検査をやってもよいのだが…

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA