「べき剰余算の九九表」を出力する

①久留島喜内の道具箱,②べき剰余マトリックスという2つのプロジェクトを1本に統合するという方向に進もうと考えている.①は内部的には(A)循環小数の循環節周期,(B)べき乗剰余数列の周期性の2つのプロジェクトが合体したものだ.特に(B)べき剰余周期数列は②の横数列に対応するので,ほとんど同一視できるように思われる.従って,全体を内容に従って区分すると,(a)循環小数の周期,(b)べき乗剰余横数列,(c)べき乗剰余横数列の3つになると考えられる.

(a)とそれ以外を区分するもっとも大きな理由は(a)では進数表記が問題になるのに対し,(b)(c)にはそれが出てこないという点がある.結局,これらを結びつけているのは,ψ数なのではないだろうか?トーシェント関数φが関係していることは言うまでもないが…従って,このプロジェクトの主たる目的はこのψ数(剰余類群の位相)の特性を明らかにすることになるのではないだろうか?

いましばらくは2つの独立のアプリとして,マトリックスを使ってもう少し遊んだ方がよいような気もする.マトリックスのどこがどうべき乗剰余周期列に対応しているのかを見極めた方がよい.⇒grid.icoをアイコンに指定して,リリース版を起こし,タスクバーにピン留していつでも開けるようにした.このVBアプリでGridViewのテーブルを扱えるようにしてみよう.⇒大体動くようになったが,k=1000で例外が発生する.

image

列のFillWeightとは何だろう?⇒列の幅と見てよいのではないか?その合計が65535,つまり整数の範囲を超えられないということのようだ.⇒FillWeightには値が設定できるので,1を格納してやると65535まで列を拡張できる.ただし,Columns(j).FillWeight = 1のように初期化しただけでは効果がないので,ColumnAddedのイベントハンドラでセットするようにして問題は解決した.ただし,描画までに時間がかかり過ぎるので,実用範囲はかなり限られている.また,仮に65535までは描画できたとしても,我々が興味がある3, 5, 17の次に大きい完全回文数=2^16+1=65537には届かない.

行ヘッダに数字を表示したいのだが,うまくゆかない.この値は.Rows(i).HeaderCell.Value = (i + 1).ToStringで設定できるはずなのだが,効果がない.RowPostPaintイベントのハンドラで描画するようにしてみたが,やはり出てこない.ただし,行ヘッダの部分にカーソルを置くとホバリング状態で表示される「ヒント」のようにその数字が出てくるようになったので,まぁよしとすることにする.⇒いや,これはRowPostPaintイベントで描画しなくても同じだ.

257x256のテーブルを描画するのに7分以上掛かっている.この辺りが実用限界と思われるので,kがそれ以上の場合はパスすることにしておこう.⇒一応動くようになったが,出ている数字がおかしい.k=10のサンプルだが,最右列に10以上の数が現れている.

image

おかしい.再現しなくなってしまった.⇒大きいkでテーブルを作った後にk=10に戻すと再現する.i 行 j 列のとき,0< i ≦ k-1,0< j ≦ k で j の方が 1 大きいところが,反対になっているのではないか?

コメントを残す

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

CAPTCHA