2021年3月31日水曜日

オイラー関数

  久々に、群論の本をパラパラめくってみた。学生時代には、よくわからなかったところも、最近の本は証明の説明が丁寧なのでわかりやすい。

 nを素因数分解してn=p^e・q^f・r^gとすれば

 φ(n)=p^e-1・(p-1)・q^f-1・(q-1)・r^g-1・(r-1)

      1からnまでの数のうち、nと互いに素になる数の個数

       |(Z/nZ)|=φ(n):既約剰余類の元の個数


2021年3月29日月曜日

Rustが気になり少し入門してみた

 https://codeprep.jp/tracks/

Rustをオンラインで学習できるCodePrepというサイトがあったので利用してみた。実際に穴埋めして、学習していく内容なので、短時間で要点が把握できる。関数型を取り入れているので、プログラミングははかどりそう。ただ、新たにライフタイムとか所有権を理解する必要がある。エラーをなくすためには避けて通れないところのよう。

2021年3月27日土曜日

C#でdisplayswitchを操作

 C#でdisplayswitchを操作しようとしてもなぜかうまくいかない。64bitかどうかで、使用するツールの使い分けが必要ということがわかる。

 スリープからの復帰で、セカンドディスプレイがうまく復帰しなくなっていたので、イベントを感知して、自動で下記の動作をするようなアプリを作ってみたら、うまくいった。

 psi= new System.Diagnostics.ProcessStartInfo();
 if (!Environment.Is64BitProcess)
         psi.FileName ="C:\\Windows\\sysnative\\displayswitch.exe";
 else
         psi.FileName ="C:\\Windows\\system32\\displayswitch.exe";
  psi.Arguments = "/extend";
  psi.UseShellExecute = false;
  System.Diagnostics.Process p = System.Diagnostics.Process.Start(psi);

としたら、Ok。

セカンドディスプレイがスリープから復帰したときつかない現象

  Windows Updateが原因?かどうかわからないけど、ある日突然、セカンドディスプレイがつかなくなる。スリープからの復帰のとき、つかなくなる。

 ハイブリッドスリープをオフにする、Biosの設定の見直し(高速起動関連をオフ)、高速スタートアップの見直し等いろいろ試したがうまくいかず、結局 Win+Pキーで拡張を選択すると復帰することに気付く。バッチファイルで、「displayswitch.exe /extend」を作って使ってみたら、うまく復帰してくれた。左右の位置が、これまでと逆になってしまったので、それを修正して、いろいろやっているうちに、バッチファイルを使わずともうまく復帰してくれるようになった。対処療法的だけど、結果オーライということに。

2021年3月26日金曜日

powershellで、ファイルの時刻をファイル名に合わせて変更

  たくさんのファイルをファイル名の番号順に並べたいと思っても、作成時刻や更新時刻順に並んでしまうことがある。そこで、ファイル名の先頭2文字(01,02.。。)の数字を取得して、これをもとにファイルの作成時刻、更新時刻を変換してみた。

  powershellのコマンドをいろいろ調べながら作ってみた。パイプやForeachが使え便利である。

2021年3月11日木曜日

インターフェースと抽象クラス

 以下のC#のインターフェースと抽象クラスを組み合わせて、うまく使う例が参考になった。

https://qiita.com/igayamaguchi/items/e1d35db0a14a84bda452

共通処理は、抽象クラスのなかに実装して、それぞれ異なる部分は、実装せずに継承先で実装するというところが便利。これだとプログラムが大きくなってきて、似たような実装が必要になったときに効率アップできる。

2021年3月2日火曜日

回路の計算ドリル

 ELMでつくってみた。小数の扱いが意外と大変だった。ELMは、フロントエンド作成のための機能がひととおりそろっている。また、関数型のためデータの流れの整理はしやすく、機能の追加はしやすい。

https://gh6141.github.io/gitdrill/src/Chokuretu.html

https://gh6141.github.io/gitdrill/src/Heiretu.html

 タブレットで動作させるためには、テキストボックスを選択するたびに、数値でなく文字の入力画面がでてくるため、その都度、数値入力に切り替えるため操作性が悪かった。そこで、入力カーソルは、自動で移動するようにしてみた。