IT

「虫食算」をプログラミングで解いてみよう


昔とある数学サイトに下記のような虫食算が公開されていた。

         A  
        AB  
       ABC  
      ABCD  
     ABCDE  
    ABCDEF  
   ABCDEFA  
+ ABCDEFAB  
--------------------  
  ALPHABET  


A、B、C、D、E、F、L、P、H、Tがそれぞれ異なる1桁の数字を表しており、
これを上記の筆算で計算して成り立つ10桁の組み合わせを求めよ、
というものである。
通常「虫食算」と言われると

 15  
+3■  
------  
 51  

というふうに、筆算内の一部が「虫食い」状態になっててわからないケースのものを想像するが、
この問題は筆算内の全ての数字が「虫食い」状態になっててわからないという(もはや「虫食い」ですらない)なかなか強烈な問題である。
「虫食算」という時点で分野的には「算数」になるのかもしれないが、
追求していくとなかなか奥が深くて難しい。(少なくとも「算数」しか知らなかった時代の俺ではこれは解けない…)
頑張れば解けるのかもしれないが、ふと、「これを解くプログラムをつくってみよう」と思い立ち、挑戦してみた。
ここでその記録を残す。


 


【障害記録】No.3:データ削除順序誤りによる夜間データ結果不正


自分が体験したシステム障害を紹介してトラウマを抉り返す自虐コーナー
※特定避けるため一部脚色・変更しているが、大体ほぼ実体験。

障害No障害分類No
(自分用)発生分類
アプリ/データ/ミドル/ハード案件名個人的ヤバイ度
(5段階評価)

3 B データ データ削除順序誤りによる夜間データ結果不正 ★★★★☆

 


 


【障害記録】No.2:多重明細の一つだけが不正表示


自分が体験したシステム障害を紹介してトラウマを抉り返す自虐コーナー
※特定避けるため一部脚色・変更しているが、大体ほぼ実体験。

障害No障害分類No
(自分用)発生分類
アプリ/データ/ミドル/ハード案件名個人的ヤバイ度
(5段階評価)

2 B アプリ 多重明細の一つだけが不正表示 ★☆☆☆☆

 


 


【障害記録】No.1:データ削除条件と画面表示(集計)条件不整合による計算不正


自分が体験したシステム障害を紹介してトラウマを抉り返す自虐コーナー
※特定避けるため一部脚色・変更しているが、大体ほぼ実体験。

障害No障害分類No
(自分用)発生分類
アプリ/データ/ミドル/ハード案件名個人的ヤバイ度
(5段階評価)

1 A アプリ データ削除条件と画面表示(集計)条件不整合による計算不正 ★★☆☆☆

 


 


ストレイテナーと確率10続々(トリビュート12曲12アーティスト全組み合わせをつくろう)


「ストレイテナーと確率10」の関連。
正確に言うと本項は「確率」についてはほとんど語らないが、
関連する話題としてタイトルを付けさせていただいた。

12の曲に12のアーティストが参加するという、ストレイテナートリビュートアルバム「PAUSE」。
このとき、どの曲をどのアーティストが担当するかという、
その組み合わせの総パターン数は12!=479001600である。
”この「4億7千9百万とんで1600」のパターンを全て用意できないか?”というのに
少し挑戦してみたくなったので、その挑戦の記録である。




ストレイテナーと確率10続(テナートリビュートの6問以上正解確率)


続き。
(前半はこちら)

ストレイテナー20周年企画トリビュートアルバム「PAUSE」における、
参加曲&アーティスト12の組み合わせのうち、正解の組み合わせ1つを当てる確率は、
理論値では1/12!=2.09×10-9であることがわかっている。
これは宝くじで1等を当てる確率の約1/50であり、むちゃくちゃ低確率である。
前回の記事では、これをシミュレーションしようとしてプログラムを作ったが、
低スペックマシン故に100億回試行するのに33時間かかるという
絶望的な処理予想時間をたたき出しため、
精度の高い実験は難しいことがわかっている。

しかしトリビュートアルバムの組み合わせクイズには、
6問以上正解者に対する個別プレゼントが用意されている。
直感的にも、「全問正解」に比べて確率が高いことは容易に予想ができる。
本項ではその「6問以上正解」の確率シミュレーションを実施する。
※書いてみて振り返ってみると、
 「ストレイテナー」と銘打ったタイトルの割に、
 中身は思った以上に数学(大した数学の話でもないが)・プログラムチックな話が多くなってしまった。
 なのでそっち系苦手な方はご注意ください。
 (あんまりテナーの話してません、という意味です。)




ストレイテナーと確率10(トリビュートアルバムの正解確率)


ストレイテナー20周年企画のトリビュートアルバム「PAUSE」には、
過去の12の楽曲に対しそれぞれ(テナー本人を含め)12のアーティストが参加する。
公式サイトではこれの組み合わせを当てる参加型クイズ企画が開催されている(2017年9月末まで)。
テナーファンのみなさんは過去の経験やアーティスト間の関係性等により皆予想をたてており、
実際そうした経験則や知識に基づく予想により、闇雲に選ぶよりは正解に近い組み合わせを導けるのは事実であろう。

しかしこれを「同様に確からしい」確率モデルとして評価した場合に、
正解である1つの組み合わせを導ける確率はいかほどのものか?を調査してみたくなった。
(やはり同様に仕事に飽きたので暇つぶしである。夜間はこういうことしてるほうが頭がさえるぜ。)
これは下記のツイートに基づきちょっとだけマジになって本格的に取り組んでみようと思い至ったことによる。



※ちなみに先に訂正しておくと、
 このツイートでは「全組み合わせ数=11!=39916800」と書いているが、
 よく見たらトリビュート曲数は12だったので、そもそも母数の捉え方に誤りがある。
 よって全組み合わせ数は12!=479001600(4億7千9百万とんで1600)が正解である(やべええええええ)

【「ストレイテナーと確率」シリーズリンク集】
ストレイテナーと確率
ストレイテナーと確率2
ストレイテナーと確率3
ストレイテナーと確率4
ストレイテナーと確率5
ストレイテナーと確率6
ストレイテナーと確率7
ストレイテナーと確率8
ストレイテナーと確率9




【UNIX】パーミッション別コマンド実行結果まとめ


Unix系OS パーミッションとそのときの各種コマンドの実行結果まとめ。
きっかけは、自分所有のディレクトリだとしても、実行権(x)がないとその配下に移動(cd;Change Directory)できないことを今更知ったことに起因する。