nkhrlab~

140字超の記事

8-9-12 Ruleはいつ使える? 1-checker modelによるバックギャモンの勝率

概要

ダブリングキューブを使用する現代のバックギャモンにおいてゲーム勝率の見積もりはプレイヤーの得点の期待値を,あるいはマッチ勝率を最大化するために重要である.レースでのキューブアクションはしばしばピップカウントによって決定される.本記事では,レースを単純化した1-checker modelを用いて,各プレイヤーのピップカウントによるゲーム勝率の変化を示し,レースにおけるキューブアクションのヒューリスティクスとして重要な8-9-12 Ruleの有効性について考察する.

8-9-12 Rule

バックギャモンにおける8-9-12 Rule*1とは,レースにおいて,ピップカウントに基づいて以下のようにキューブアクションを決定するヒューリスティクスである.もちろん,ポイントマッチの場合はスコアによってキューブアクションが変わることも多く,その有効性には限りがあるが,レースにおける基本的なキューブアクションの基準として広く知られている.

  • レースで自分が8%以上リード*2していれば,ダブルをすべきである.
  • レースで自分が9%以上リードしていれば,リダブルをすべきである.
  • レースで自分が12%以上リードしていれば,相手はパスすべきである.

8-9-12 Ruleが使えるレース序盤

実際に8-9-12 Ruleを用いてキューブアクションを決定する例を示そう.次の図における白のキューブアクションを考える.

f:id:nkhrlab:20200719021336p:plain
ピップカウントは白: 92, 黒: 102 (+10.8%).EPCは白: 99.5, 黒: 109.6 (+10.2%).

白はピップカウントで10.8%リードしているので,8-9-12 Ruleによればここでダブルをすべきである.また,相手はテイクをすべきである.このキューブアクションはeXtreme Gammon 2による解析結果と一致する.

*1:Tom Keith. Cube Handling In Noncontact Positions. https://bkgm.com/articles/CubeHandlingInRaces/, 2004

*2:例えばピップカウントの値が自分は80,相手は88である場合に,相手のピップカウントは自分のピップカウントより (88 - 80) / 80 = 10%多いことになる.このとき,「自分は10%リードしている」ということにする.

続きを読む

「基礎プログラミングおよび演習」のための問題集

概要

本記事は電気通信大学1年次後学期で開講されている「基礎プログラミングおよび演習」のために用意した問題集である.ここに用意されている問題がおおかた解ければ,単位を取ることもそう難しくないことだろう.以下に2019年度の講義資料が公開されている.joho.g-edu.uec.ac.jp

注意事項

  • 本記事の問題は外部サイトなどを参照しながら解くことも考慮に入れて,例年の試験より難しめに作成した問題も含まれている.
  • 2019年度の「基礎プログラミングおよび演習」期末試験では,試験中のコードの実行,外部サイトの参照は禁じられている.本記事では「実行せよ」「メソッドを作成せよ」などの指示があるが,実際の試験にはこれらの形式の問題は出題されないことに注意せよ.
  • 本記事によって読者の被った落単などの損害については,一切の責任を負いかねる.
続きを読む

女装男子には長男が多い?

本記事の目的

次のツイートは,女装男子の続柄 (長男かそうでないか) についてアンケートをとったものである.本記事では,この結果を真実として,女装男子に長男が多いといえるか仮説検定をおこなう.


アンケートの結果のまとめ

アンケートの結果から女装男子であると回答した分のみ抽出してまとめると,次のようになる.ここで,Twitterのアンケート機能の仕様上,正確な度数は表示されず,割合は1%単位でしか知ることができないため,投票総数と割合から度数を概算している.また,この影響により度数に端数が出ているが,ここでは補正は行わない.

(ツイートに表示されている) 割合 度数
女装男子の合計 64% 867.84
- 長男合計 54% 732.24
- - 長男 (第一子) 43% 583.08
- - 長男 (姉がいる) 11% 149.16
- 次男以降 10% 135.60
女装男子じゃない人 36% 488.16
総計 100% 1356
続きを読む

ドミノを用いたパズルの自動生成

概要

ドミノはトランプと同じくそれひとつでいろいろなゲームを楽しむことができる玩具のひとつである.本記事では,ドミノを用いたパズルの自動生成の手法とサンプルコードを紹介する.

準備

1セットのドミノは28枚の牌からなる*1.それぞれの牌は2つの領域それぞれに0~6のスートのうちいずれかが描かれており,すべての牌のスートの組み合わせが異なっている.

f:id:nkhrlab:20190608020749j:plain
1セットのドミノ牌

日本ではドミノの遊び方が広く知られているとはいいがたく*2,遊び相手を見つけるにも苦労する状況である.そこで,トランプのソリティアのように,ドミノを使って一人でも遊べるパズルを紹介しよう.次にパズルの例題を掲載する.

f:id:nkhrlab:20190608021242p:plain
例題

*1:最も流通しているダブル6のセットの場合.より多人数で遊ぶなどの目的でスートを増やしたものも販売されているが,本記事では取り扱わない.

*2:私もこの前まで知らなかった.

続きを読む

HarekazeCTF 2019 想定解法 (nkhrlab 作問分)

本記事では,HarekazeCTF 2019で出題された問題のうち,私が作問した2問について解法の解説を行う. harekaze.com

本記事には次の2問の解説を含む.

  • [Crypto 100] Twenty-five (Solved: 56 Teams)
  • [Crypto 200] One Quadrillion (Solved: 7 Teams)
続きを読む

ウェブアプリケーション脆弱性関連情報の届出をした

概要

あるウェブアプリケーションXSS脆弱性を発見したので,情報セキュリティ早期警戒パートナーシップガイドラインに則りウェブアプリケーション脆弱性関連情報として情報処理推進機構 (IPA) に届け出たところ,届出が受理された.

将来の脆弱性関連情報の届け出に際して本記事が少しでも参考になると期待して,届出の内容と受理までの経過を以下にまとめる.

なお,当該脆弱性の悪用を防ぐため,届出の内容の一部を改変して掲載する.

届出の内容

以下の内容を 2019/03/09 に届け出た.

届出の内容は主に脆弱性の発見の経緯とそれにより想定される被害の2点に要約される.今回発見した脆弱性は典型的なXSS脆弱性であったため,想定される被害としてXSS脆弱性一般に通用する内容を記入して届け出た.

続きを読む

LaTeXでマークシート式試験

マークシート式試験の組版

大学入試センター試験に代表されるマークシート式試験の組版では,同じ大問中で連続した解答欄 (例えば,マークが10箇所であれば解答欄「ア」~「コ」) を使うことが多い.これをLaTeXで実現する場合,1つの大問を通して利用するカウンタと解答欄の記号を対応付けるテーブルを用いる方法が考えられる.

また,数学の問題では,2桁以上の解答に複数の解答欄を使用するので,桁数を指定して自動的に解答欄を割り当てたい.さらに,前の解答欄を参照する場合に相互参照ができると問題の入れ替え時などに解答欄がずれなくなり利便性が向上する.

LaTeXテンプレート

以上の要件を盛り込んだマークシート式試験向けテンプレート「marksheet.sty」を作成した.このテンプレートを使用すると,下の画像のような組版が容易に実現できる.
f:id:nkhrlab:20190217123759j:plain

続きを読む