将棋棋士の藤井聡太氏が現役中学生として初の五段昇段を決める

5人目の中学生将棋棋士として有名となった藤井聡太氏が2月1日付で五段昇段を決めた. 将棋棋士は四段昇段後からプロということになるが, 現役中学生がプロ棋士の五段に昇段したのは史上初である. なお, 最年少記録の塗り替えではない (早生まれの加藤一二三氏が最年少記録: 当時は規定を満たしても年度が替わるまで原則として昇段しなかった).

なお, 藤井聡太五段には最年少六段の記録を狙う機会がまだ残っている.
2018年中に条件を満たす機会が残っている棋戦と昇段条件は次のとおりである.

  • 第11期朝日杯将棋オープン戦 (2018年2月17日) で優勝すると六段以下の棋士に限り段位が1つ昇段 (執筆時点で準決勝進出)
  • 第66期王座戦 (2018年9月頃) タイトル挑戦者になると五段以下の棋士に限り段位が1つ昇段 (執筆時点で二次予選進出)
  • 第44期棋王戦 (2018年9月頃) タイトル挑戦者になると五段以下の棋士に限り段位が1つ昇段 (執筆時点では予選対局待ち)
  • 第31期竜王戦 (2018年12月頃) 今期で4組昇級を果たすと連続昇級により段位が1つ昇段 (執筆時点で昇級まであと3勝)
  • 第68期王将戦 (2018年12月頃) タイトル挑戦者になると五段以下の棋士に限り段位が1つ昇段 (執筆時点では予選対局待ち)

なお, 歴代の最年少昇段記録は次のとおりで合っているはず. (誤りがあればコメントで指摘願います)

将棋の最年少昇段記録
段位 記録保持者 昇段日 昇段時年齢 昇段理由
四段 藤井聡太 2016年10月1日 14歳2か月 第59回(2016年度前期)三段リーグ1位
五段 加藤一二三 1955年4月1日 15歳3か月 順位戦C級1組へ昇級 (第9期(1955年度)順位戦C級2組西組1位)
六段 加藤一二三 1956年4月1日 16歳3か月 順位戦B級2組へ昇級 (第10期(1956年度)順位戦C級1組2位)
七段 加藤一二三 1957年4月1日 17歳3か月 順位戦B級1組へ昇級 (第11期(1957年度)順位戦B級2組1位)
八段 加藤一二三 1958年4月1日 18歳3か月 順位戦A級へ昇級 (第12期(1958年度)順位戦B級1組2位)
九段 渡辺明 2005年11月30日 21歳7か月 竜王位2期

四角形の頂点の座標から四角形の面積を得る

三角形(頂点を A, B, C とし、その対辺の長さをそれぞれ a, b, c とする)の面積を求める方法には、次のものが知られている。

  • (底辺)×(高さ)÷2
  • (1/2)ab sinC
  • ヘロンの公式(Heron's formula): √(s(s-a)(s-b)(s-c)), ただし, s=(a+b+c)/2

では、これを四角形に拡張できないものかと考えていたが、すでにブレートシュナイダーの公式(Bretschneider's formula)が存在することが知られている(ブラーマグプタの公式(Brahmagupta's formula)では四角形が円に内接するという条件が必要であるためプログラムには適さない)。四角形(頂点を順にA, B, C, D とし, AB=p, BC=q, CD=r, DA=s)に対応するブレートシュナイダーの公式は次のとおりである。

√((T-p)(T-q)(T-r)(T-s)-pqrscos2((A+C)/2))), ただし, T=(p+q+r+s)/2

ただし、今回の場合は頂点の座標から p, q, r, s, ∠A, ∠C を導出する必要がある.よって, 与えられた頂点の座標を四角形の頂点の順番に並べ替えなければならない.

いろんな方法を模索している中で、次の記述を発見した。

  1. x座標が小さい順番に並べ、それぞれの点を P1, P2, P3, P4 とする.
    • P1y<P2yのとき
      • P3y>P3yとなるように
        P3, P4を入れ替える.
    • P1y>P2yのとき
      • P3y<P3yとなるように
        P3, P4を入れ替える.

一見してよさそうに見えるが, ∠P3が平角よりも大きくなる場合はうまくいかない. それどころか,
P2P3を入れ替えてもなお四角形となる場合があることに気づいてしまった.
なので, 座標だけを与えられても凹四角形の場合はうまくいかないことが判明した...

よって、頂点の座標から四角形の面積を計算する場合は、次のような設計を考えなければならない.

  • 入力者は頂点の座標を四角形の頂点の順序となるように入力する.
  • 面積を算出する側は与えられた頂点座標から四角形が描けることを確認してから角度と辺の長さを計算しブレートシュナイダーの公式を適用する.

ということで、現在、面積を算出する側は与えられた頂点座標から四角形が描けることを確認する手段を思索中である.
おそらく, 内角の和が 2π になることは四角形であることの必要十分条件であることをいえばいいはずなのだが...

もうちょっと考えてみた

ENDYMION BSP 初クリア

DanceDanceRevolution A の最終ボス曲と目される ENDYMION.

ENCORE EXTRA STAGE に進むためには BASIC 以上の難易度を選択して AA+ 以上の評価 (950000 点以上)を獲得してクリアしなければならないが,
そもそもクリアまでに至っていなかったところである.

私の運動能力では, スコアを狙って遊べる難易度の上限がレベル 10 以下,
何とかクリアできるレベルが 12 以下といったところである.
13 以下はクリアもおぼつかない場合がほとんどであるが, Valkyrie Dimension BASIC (レベル 13) は
SINGLE, DOUBLE ともクリアはできた.

ENDYMION SINGLE の挑戦 5 回目にして初クリア. リザルトは下記キャプチャのとおり.
AA+ 以上の評価にはまだまだ遠い...

ENDYMION BSP リザルト画面
ENDYMION SINGLE BASIC 初クリア時のリザルト画面

羽生善治氏が竜王位を奪取し全永世称号獲得達成

今日はたまたま仕事が休みだったので, 竜王戦のネット中継を鑑賞していた. ちょうど挑戦者の羽生善治棋聖 (他に保持していた王位、王座は今年度中に失冠) が竜王戦七番勝負を三勝一敗で迎えていたところであった. 竜王戦の対局は持ち時間が八時間で二日制の対局であり, 今日が二日目であった.

手元に将棋ソフトを用意してネット中継を聞きつつ盤面を検討しながら鑑賞していた (時代は変わったものだ...) ところ, 昼食休憩前には大勢は決していたようだ.

最後は分かりやすく詰みの場面まで進んだ後, 渡辺明竜王の投了をもって羽生善治棋聖の竜王位奪取が確定し, 通算七期の竜王位獲得により永世竜王の称号が贈られることとなった.

羽生善治氏がプロデビューしたのは昭和60年 (1985年). 以来, ずっと第一線を走り続けてきたその力には畏敬の念を抱くばかりである.

永世称号の獲得条件一覧

第48回衆議院議員総選挙 ...と, 最高裁判所裁判官国民審査

衆議院議員総選挙についてはきちんと投票を行い権利をしっかりと行使した.

最高裁判所裁判官国民審査も当然権利を行使してきたわけであるが... この最高裁裁判官の国民審査は情報を収集するのが非常に面倒くさい.

最高裁判所でどのように審理を進めているのかは正直なところよくわからない. もちろん, きちんと公開されていることは承知しているが,
各事件に対して判断が適切だったか否かについてはその事件の背景についてきちんと知っておかないといけないわけである. 普段, そこまで気にして情報収集できているかと言われると自信がない. それでも, 自分なりに考え, 信任すべきか罷免すべきか意見を出したつもりである.

結果はどうあれ, 自分が投じた票が一国民の意見として尊重されればよいと思っている.

パソコンが壊れた

突然, PC のデスクトップの画面が大きく乱れて再起動がかかってしまい,
何も映らなくなってしまった. しばらく時間をおいて電源を再投入するが, 立ち上げの途中で画面が著しく乱れてしまい手の施しようがなかった.

仕方がない. PC を買い替えることにしよう...

そして1週間後...

boost with Autotools

C++言語では boost ライブラリが有志で作成されており, 一部が C++ 言語の仕様に取り入れられているほどである.

しかしながら, あくまで C++ 言語で使用することを想定しているため, GNU Build System (Autotools) で configure スクリプトを作成するには工夫が必要であった.

以下, 筆者が行った作業を列挙してみる.

  1. Autoconf ArchiveThe macros から ax_boost_base の他, 必要なマクロ (ax_boost_xxx をダウンロードし, 開発パッケージの適当な場所 (以下, ./m4 ディレクトリと仮定) に保存する.
  2. configure.acAX_BOOST_BASE と, 必要に応じたマクロ (例えば, boost::iostreams を使うのならば AX_BOOST_IOSTREAMS を記載する. なお, AX_BOOST_BASE は他の AX_BOOST_xxx よりも前に記述する必要がある.
  3. Makefile.amACLOCAL_AMFLAGS = -I ./m4, AM_CPPFLAGS = @BOOST_CPPFLAGS@, AM_LDFLAGS = @BOOST_LDFLAGS@ 及び program_LDADD = @BOOST_xxx_LIB@ を記載する. (xxx は BOOST ライブラリ名)

これで, aclocal && autoheader && autoconf && automake && ./configure とすれば configure スクリプトが出来上がり, make でコンパイルできるようになる. さらに, make dist-xx で, 上記マクロを含んだアーカイブも作成できる.

Msys2 で扱う Mingw の BOOST パッケージでは, 明示的に configure スクリプトにライブラリの場所を提示しなければならないようだ. つまり, コンパイルをするときに ./configure --with-boost-libdir=/mingw64/lib などといったオプションをつける必要がある. これを忘れると, なぜかコンパイラがライブラリの場所を探せなくて下記のようなエラーが表示されてしまう.

  • checking for boostlib >= 1.20.0... yes
  • checking whether the Boost::IOStreams library is available... yes
  • configure: error: Could not find a version of the library!

固定資産税の納税通知書が到着

家を買ったなら, もれなくついて回るのが固定資産税の納税義務. 今回, 家を購入して初めての年越しを迎えたので, 固定資産税の納税通知書も初めて受け取ることになる. 住宅購入のときに相談していた不動産店が話していたものとそれほど相違ない額面であった. とりあえず納めるものは納めて, 約束どおり, 弟にはこの分を負担してもらおう.

Mozilla Thunderbird の再設定で躓く

自宅で用いている電子メールクライアントは Mozilla Thunderbird である. 電子メールクライアントであると同時にフィードリーダーであるので、ブログの巡回用として重宝している.

最近になって, Mozilla Thunderbird の調子が悪いので乗り換えを検討してみたが, 電子メールクライアントとフィードリーダを兼ねるツールはそれほどフリーでは出回っていないので, 設定をやり直すことで対処することとなった.

ウェブサイトでは暗号化が必須となりつつあるが, 電子メールクライアントの送受信でも暗号化通信への切り替えが少しずつ進んでいる. 利用中のプロバイダのメールサーバーもフリーウェブスペースが提供するメールサーバーも TLS 対応であり, メールフィルタである POPFileSSL に対応するようになったことから, その設定に改めた.

メールの受信ができたことは確認したので今度は送信の方だが... アカウントを作成しても[送信済みフォルダ]などのフォルダが自動作成されない. 案の定, メールを送付しても送信メールのコピーが保存されないと表示され, 送信はできるものの, 自動コピーが保存されない. それでは困ってしまうので行ったことは... そのような特別なフォルダを作成したことである. 作成後, アカウント設定にて, 当該フォルダを明示的に指定した. これで, 今までどおりの使用感が復活した.