マニュアルを現状に合わせて修正しておこう

まず,マニュアルを現状に合わせて修正しておこう.横数列の循環単位はφ(γ),縦数列はγであるとする.Λは横数列の「短周期」に関係し,ゼロ行の周期は縦数列の「横縞幅」に関係する.γの因数分解と横縞幅を出力パネルにダンプするようにしておこう.Λもダンプしてみたい.

少し分かってきた.横数列が0になる場合の固定桁数が縦数列の周回数つまりΩ数だ.このような観点からすると(縦横の対称性から),横数列が0となる場合の最大桁数をΛとするのが適当であるように思われる.固定桁の後に周期数列が続く場合というのは存在するだろうか?

DispResidueCycleで固定桁数不一致が発生する.offset=1 <> drop=0 α=1 γ=14 Λ=1.⇒前回修正でγ=1のときoffset=1で復帰するようにしているが,α=1と共有の出口なので誤動作している.α=1のときはoffset=0としなくてはならない.なぜか?α=1の場合,Rはつねに1でこの値は反復されるから周期数列{1}になる.これに対し,γ=1の場合は,つねに割り切れて,R=0となり,これを反復するので{0}となるが,この0は0*で固定部に含まれるので,固定桁1が正しい.

DispResidueCycleでΛ周期不一致が発生する.i=2 γ=1 Λ=1 cycle=0 drop=1 stop=False.i=2となっているが,α=1,つまり,α=1, γ=1のケースだ.1÷1=1…0 だから,{*0}であり,これはγ=1のケースに入るべきものだ.⇒LambdaFunctionを修正してエラーは発生しなくなったが,Λ値不定のはずが,1と表示されている.これはΛ_Nというテキストボックスだ.MakeRecurringDecimalの中で記入している.α=1のケースでは,phi_N.Text = “1”とΛ_N.Text = “1”を実行している.これはどちらも余分な操作のように思われる.⇒これで大体筋が通ったのではないかと思う.

ゼロ行数=固定桁数ではないかという予想が出ているのだが,果たしてどうか?2023/06/25には,「固定桁がゼロでないことと異種文字数と桁数が一致しないことは同値だ」とある.また,固定桁数は位相のずれに関係する.ラムダ関数では固定桁数と周期を返すようになっている.

固定桁と周期がどちらもゼロでないという事例が出てきた.α=15 γ=18 Λ=1.出してみよう.縦周期Ωは6だ.このサンプルの場合は,異種文字数不一致はゼロ行だけでなく,9行というのもある.α=3,15で起きている.9でも{9, 9, 9, …}という並びになるが,最初から9なので異種文字数不一致にはなっていない.

Tak Maki氏の用語を使って,同じ数の連続を idempotent と呼ぶとすれば,このサンプルでは4種のidempotentが発生している.1,9,10,0だ.これらもグレーに塗りつぶすということも考えられなくはないが,いまのところはゼロ行だけで十分だろう.却ってややこしくなる.課題は2つある.

  1. ゼロ行をどうやって検出するか?ラムダ関数はoffsetを計算しているので,ここで検査できるのではないか?
  2. ラムダ関数はαとγを引数とする二項関数だが,γだけを引数とする単項関数に変換する必要がある.
  3. 現行ラムダ関数を温存し,αのすべての値についてこの関数を呼び出して,ΛとΩの最大値を探すしかないのではないか?

ResidueFuncでもzeroとoneのチェックはやっていたような気がする.⇒DispResidueCycleでカウントしている.DispResidueCycleには,ResidueFuncProで計算した剰余の入った配列Rが渡されている.

Rαの表示を単純にα%γ=Rとするのではなく,α\γ=q…r とすればよいのではないか?つまり,(q, r)ないし q – r という対で位置を示すというアイディアだ.これならば Rを指定するのと実質同じであるし,stripeもごく短いもので済む.この方式なら,縦数列のすべての実相が解明されていない段階でも対応できるはずだ.また,逆にこのように表示することで見えてくるものもあるのではないだろうか?ただし,修正量はかなり大きなものになり,ほとんどのロジックが書き直しになるおそれもある.それでもやる価値はあるような気がする.しかし,その前にまず,ゼロ行がどこまで通用するかを確認しておく必要があるだろう.

作業に着手する前に,現行のコードの中でΛの文字を割り当てているところをすべて小文字のλに書き換えておくことにしよう.大文字のλはM(γ)全体で通用する値とし,λは#とλの中間の値という位置付けだ.このλはordとほぼ一致するのではないだろうか?⇒いや,それよりはずっと緩いものになるはずだ.ordの場合はγが素数であるか,ないしαとγが互いに素であることが要求されるが,Λの場合は,そうでないケースも含まれる,もっと一般的な場合に成立する関係だ.

ΛとΩはγに属するので,ResidueFuncで計算するしかないのではないか?ResidueFuncProは内部でPowerResidueFuncを呼び出している.この関数はべき剰余数列と循環小数の両側をカバーするものになっている.となると,ΛやΩをそこまで拡張するという話になるのだろうか?⇒おそらく,そこまで飛躍した話にはなrないのではないかと思われるが,一応そのことは念頭に置いて取り掛かる必要がある.

コメントを残す

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

CAPTCHA