更新モードとテストモードを切り替える

初期画面の表示でMakeRecursionUnit から一行出力されているが,不要なのではないか?⇒更新出力で表示されているので,明らかに不要だ.modflagを新設しValueChangedProの入口で立てるようにした.

Residue Test では「原始根を検出」という表示が出る.Seed Test でも一二行の表示が出るが,前回項目の直後に出力されるため,混同のおそれがある.画面更新の後に改行を入れるようにした方がよい.PrimeTestでは更新出力は出ない.この方がよいと思う.そのテストの結果のみを表示するようにした方がよい.InvertTest も同様の方式だが,MakeRecursionUnitの行が出るだけだ.Matrix Test では更新情報を出しているが,これも抑制した方がよい.つまり,更新モードとテストモードを明示的に切り替えるべきだ.⇒対処した.

固定部と#,gcd(φ(γ),#)の更新が遅れてバタつきが気になる.テキストボックスのクリアは不要なのではないか?⇒ValueChangedの冒頭でClearParameterを実行している.その理由は更新損ねて古いデータが残るような事態を避けるためだが,そろそろ外してもよいのではないだろうか?⇒対処した.快適な表示になった.

★原始根を持つことと離散対数が決まること,Λ値が確定することは同値だろうか?たとえば,α=39,γ=27 の場合,cycle={12*, 9*, 0*}でΛ=不定になるが,R=12や9の離散対数(べき指数)は決定できる.尽数列は現れないから,原始根は持たない.

★ある数αの循環単位Uがβ進数で生成するΞがレピュニット数になる条件はgcd(α, β)=1である.つまり,αとβが互いに素であれば,αの循環単位Uはレピュニット数Ξを生成する.この命題の真偽は?

Prime Test で Test Completeの表示の後に,MakeRecursionUnitの表示が出る.Test Complete はPrimeTestClickで出している.その後,PrimeTest_Clickに戻ったところでvalue_βを書き換えているので,ValueChangedが起動されている.順序が逆転している.PrimeTest_Clickで完了メッセージを出すようにした.

Matrix Test でテストの終わりにステータス情報が2回出る.α=2, γ=31とα=39, γ=31だ.後の方は通常のルーチンだが,最初のは余分な感じがする.どこで出しているのだろう?⇒MatrixTestではテスト終了時にγとαを書き戻している.passflagは落ちているので更新イベントが実行される.現行ではγしか書き換えていないはずだから,αの書き換えは不要なのではないか?⇒これで一度だけになった.⇒いや,αもテスト中に書き換えている.passflagをリセットする位置を一つ下げるということも考えられるが,だとしたら,むしろテスト中はpassflagをオンのままにして,完了時に明示的に更新するようにした方がよい.つまり,完了メッセージを出してからリセットという手順がよいと思う.

これはつまり,OutputStatusの冒頭でUpdateParameterを実行するということを意味する.しかし,これだけではUpdateParameterが起動されない.OutputStatusはValueChangedProから呼び出されているので,イベントを捨てているのだから,テスト完了時点で明示的にOutputStatusを実行する必要がある.⇒OutputStatusではなく,UpdateParameterの起動だ.また,OutputStatusはUpdateStatusにリネームした.大体予定通りの動作になったと思う.

タスクバーのアイコンの状態がおかしい.タスクバーにピン留めすると,古いアイコンが出てきてしまう.⇒アプリケーションとパッケージでそれぞれアイコンを指定できるようになっている.パッケージでも歯車アイコンを使うようにしたが,戻ってしまう.元のリピートアイコンのファイルをフォルダから削除しても効果がない.最終的にリブートしてまともな動作になった.原因は不明だ.

テストの内容については見直しは必要だが,大まかな枠組みだけは整理できた.マトリックスに異種文字数を出すところから着手しよう.⇒いや,異種文字数を出すのではなく,「周期」を図形的に可視化すればよいのではないか?塗りつぶしかないし枠で囲むような形式で周期単位を明示することはそれほど難しくない.行末に数字を見せるより,ずっと直感的なのではないだろうか?異種文字数を仮に出すとしたら,その数字を本体数字と誤読する可能性もある.

(色別にすればよいのかもしれないが)そうなると,マトリックス画面でもコマンドを実行できるようにする必要が出てくる.ポップアップメニューで選択できるようにするというのは一案だが…場合によっては,パネルにボタンを設置することも可能だ.Build Matrixのボックスにチェックボックスを2つ追加してみた.

image

現行では,マトリックスの生成では単純にマトリックスを構成しているだけで,周期などの計算は一切行っていない.マトリックス構築時にこの計算をやってもよいが,チェックが入った時点で初めて計算するというのでもよいのではないか?この計算は行ないし列ごとに行わなくてはならないので,できれば表示されている範囲の計算で間に合わせることにしたいのだが,可能だろうか?横数列の場合はほぼそれで問題ないのではないかと思う.横数列では同じ数がでてくればそれは周期に当たるからだ.周期が見つからなかったとしても,それは長い周期の一部なのだから,特に問題はない.縦数列の周期というのはいまのところ,まだ具体的には実装されたことがない.縦数列の場合には回文というのが出てくるが,これに関しては一応の解析は行っている.

マトリックスは64x64以上のものは作れないが,テーブル自体は原則γ^2のテーブルを生成している.ただし,MAXSQUARESIZE=32767を超えることはできない.従って,γがこれ以上大きい場合にはマトリックスを開くことはできないと考えられる.とりあえずは,これでよいことにしておこう.ベースになるテーブルが存在していれば,マトリックスが小さい場合でも対応は可能だろう.おそらく,Test Matrix ではそれに近いことをやっているはずだ.

コメントを残す

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

CAPTCHA