2021-02-08 (月) - 2021-02-14 (日) 進捗

開発

elo-simulator で必要になるスクリプト類 (順位戦の結果を取得して JSON にするやつ) を書いた。
GitHub Actions で定期実行をする仕組みを調べた。実行される時刻はそこまで正確ではない。

競プロ

進捗なし

チェス

chess.com tactics: 2215 -> 2289 (+74)
lichess rapid: 1661? -> 1751? (+90?)
lichess tactics: 2218 -> 2246 (+28)

棋譜の暗譜をサボりがち。

2021-02-13 (土)

開発

GitHub Actions workflow not triggering at scheduled time | Upptime GItHub Action の定期実行には特に保証がない。試しに '* * * * *' (毎分実行) というスケジュールにしても 1 回も動かなかった。
と思ったが寝て起きたら動いていた。毎時 15 分にセットしたのに 2:35 だったり 4:22 だったりバラバラ。

数学

Chudnovsky のアルゴリズム (円周率の計算) の証明を追っている。
arxiv.org
ざっと見たけど以下の良い性質を使っていそう:

  1. 二重周期関数の形はかなり限定される。Liouville の定理から、特異点などがなければ定数関数しかあり得ず、この事実を使って性質の良い恒等式を得ることができる。
  2. 類数が 1 であるような虚二次体について、それに付随する J という値は整数である。類数が 1 であるような虚二次体は有限個しかない。
  3. Picard-Fuchs の微分方程式 (Theorem 7.1) の解空間は 2 次元のベクトル空間である。これにより、他に解が見つかった場合は元々あった 2 個の解との間の恒等式ができる。

マチンの公式などと違い、類数 1 の虚二次体が有限個しかないため、亜種がつくりにくいはず。

2021-02-12 (金)

開発

定期的に棋戦の情報を JSON 形式にして公開するためには以下が必要。

  1. 定期的に現在行われている棋戦の情報をダウンロードし、JSON に変換する仕組み。おそらく GitHub Actions ワークフローで処理を定期実行する方法 | gotohayato.com でできる。
  2. 現在行われている棋戦の情報を取得する仕組み。これがないと、例えば順位戦の場合には 1 年に 1 度ソースコード内の期を書き換える必要がある。これは棋戦が多くなると難しくなるはず。
  3. 実行して得られた成果物を公開する仕組み。GitHub Actions による GitHub Pages への自動デプロイ - Qiita あたりを見れば良さそう。

…ということを考えたが、実験や実装には至っておらず…。

チェス

https://www.chess.com/puzzles/problem/776536

https://lichess.org/3TePbPUO/white

途中押していた気がするのだが、24. Rg3?? で頓死。

21. Re3: Rc3 だと手損せずに済んだ。
24. Rg3??: f2 が急所であることは認識していたが、24... Qd2 と入り込まれる手が見えていなかった。


https://lichess.org/KxdRhhpJ/black

途中まで苦しかったものの、勝ててよかった。
16... Nd4: 17. Nxe5 がある。やるなら 16... Qe7 などとしてから。
19... b5: 18 手目からその筋があった。ビショップが端に行ったら常にこの筋を頭に入れたい。


その他

英語の発音について概説する - Amosapientiam この辺個人的に雑な理解をしていたが、こういう話があったのか…。

2021-02-11 (木)

日中はずっと将棋 (朝日杯) を観ていた。

開発

順位戦の情報を取得して JSON にするスクリプトを書いた。elo-simulator/fetch-junni.py at 4a7f37e8130cc9d5f75e082a7ea4b3c702045133 · koba-e964/elo-simulator · GitHub
これを定期的に実行して、結果として得られる JSON をどこかに公開したいのだが、どうやったらできるだろうか?

チェス

https://www.chess.com/puzzles/problem/630350 2... Rxa3 が見えなかった。

2021-02-09 (火)

開発

ARCHITECTURE.md
OSS を管理する人はソフトウェアの構成を書くべきであるという話。
rust-analyzer の architecture.md が例としてあげられていた。こういうのを読むのはそこそこ楽しい。使っているクレイトの機能と用途が簡潔にまとめられており、勉強にもなる。

チェス

https://www.youtube.com/watch?v=ryIQByN3HiE&ab_channel=%E3%80%90%E3%83%81%E3%82%A7%E3%82%B9%E3%80%91%E7%B4%80%E4%BA%BA%E3%83%81%E3%83%A3%E3%83%B3%E3%83%8D%E3%83%AB 観たけどよくわからない。

https://lichess.org/4YdwX6AD/black こんな簡単に負けちゃ、ダメだろ

反射的に 9... Bd7 と合駒するのがダメ。ルックを閉じ込めるので指しにくいが 9... Kf8 が正しい。というより、その後 10. Bxd7+ Kxd7 11. Qb5+ Nc6 12. Ne5+ あたりまで一直線なのだから読むべき。


https://lichess.org/mCqrbYSB/black 勝ち試合ができて、よかったね



22 手目あたりから ... Nh5 が候補手に現れるが、謎。エンジンの読み筋を見ると 23...Nh5 24. Ra2 Re3 25. Rd1 Nxg3+ 26. Qxg3 Bf5 で d3 のポーンが落ちるという狙いだったのかな? 複雑すぎる。
23... Re3 はなんとなく気持ちがわかる気がする。
29... Bxd3 あたりでポーンが何個か取れる形になるので勝ちを意識したが、正しかったらしい。
34. Qxf7+ について、今回はビショップで守られていたから問題なかったが、指す直前にはこの筋は見えていなかったので反省。