皆さん!こんにちは!
IE50_testさんの
全国の多変数関数にお悩みの大学生を救う記事
に続き
2020年
日曜数学
アドベントカレンダー7日目の記事です!
ええ、そうです!私は、あのとき助けて頂いたキジです!
最近は、きびだんごを巡ってイヌとサルの喧嘩が終わらずに困ってます!
このたびは恩を返しにやって参りました!
kijinoongaeshi
えー、ぺこぱはさておき今回はある論理パズルと、ある符号の二本立てでお送りしたいと思います!
専門的な知識が無いと解けないということが無いように、後半で削除符号というものについての解説をしますが、まずはぜひ解説を読まずに挑戦してみて下さい!その際、類題の元ととなったパズルの解法を知らなくても全く問題ありません!
puzzle!!
表裏を気にせずにシャッフルされた52(=13×4)枚のトランプがある。まず、悪魔は囚人Aだけに1~54の数字を一つ告げる。
その数字を聞いて、囚人Aは黒のジョーカーを表か裏にしてトランプの上から何番目かに必ず挿入する。(もちろん一番上に置いてもよい。)
その後、囚人Bはそのトランプの状態を見て、赤のジョーカーを好きな位置に必ず挿入する。
囚人A,Bはトランプに対して、ジョーカーを挿入することと広げる(スプレッドする)
最後に、悪魔がカードを上から順番に(1枚目,2枚目,...,54枚目のように)引いていく。悪魔が告げた数字番目に赤のジョーカーを引けば、囚人達の勝利となる。
囚人達はこのゲームを始める前に戦略を練ることが出来る。この際トランプの初期状態は知らされない。さて、囚人達はどのような戦略を取ればいいか?
ここでトランプをスプレッドするとは、以下のように順番を崩さずにトランプを広げることを指します。(図中のハートのエースは問題文中でいう赤のジョーカー)
spreadnozu
この問題における囚人A、囚人Bそれぞれにおける入力と出力は以下のフローチャートの通りです。(入力で得られるのは正確にはスプレッドで得られるトランプの情報。)
inputoutput
しかし一見すると難しくなさそうな(?)このゲーム、悪魔の罠が潜んでいたようで
囚人A(なぁんだ
囚人A(黒のジョーカーが見つからなかったら最後(54番目)ってことにすればいいんだし!)
囚人A「ようし!そのゲーム乗った!!」
囚人B「いや...待て!何か嫌な予感がする...。」
悪魔「
悪魔「ちなみに君達がゲームに参加するか否かを迷っている間に残念だがトランプの絵柄(表の面)のインクが飛んでしまったようだ.」
悪魔「黒のジョーカーも例外じゃない.囚人A,君は表と裏しかないただのカードの束に対して,表と裏しかないただのカードを挿入することになる.」
囚人A「何だと...!?」
悪魔「俺もあくまで悪魔であって,鬼じゃない.赤のジョーカーだけは特殊なインクが使われているから絵柄は残っている.せいぜい頑張ってくれたまえ.アヒャヒャヒャヒャ!!」
囚人B「
悪魔「Nani!?」
・・・あくまで悪魔の悪魔なゲームに参加してしまった囚人達でしたが、ここで皆様にお伝えしたいことがございます。
なんと囚人達はインクが飛んでしまった状態のトランプでも勝利出来る戦略を立てたため、ゲームに勝てたそうです!
さて、どのような戦略だったのでしょうか!?
いきなり52枚の裏表しかない(インクが飛んだ)カードの束を扱うのは難しいので例としてカードの束が1枚で、悪魔が言う数字が1~3の場合を考えてみましょう。
omoteura
カードの束の初期状態は、1枚しかないのでオモテかウラかです。
どちらの状態であっても囚人Aは1枚のカードを挿入することで3通りの状態を作れます。この3通りの状態を整合的に1~3の数字に対応させる解釈の仕方を考えれば、囚人Bに悪魔が言った数字を伝えることが出来ます。これは上図で上から1,2,3と解釈するとよさそうです。つまり、
2枚のカードの束のウラオモテが揃っていないとき、
1枚目がウラであれば1、2枚目がウラだったら2と解釈することにし、
2枚のカードの束のウラオモテが揃っているとき、3と解釈することにすれば、
囚人Aは囚人Bに悪魔が言った数字を伝えられ、囚人Bは悪魔が言った数字を当てることが出来ます。
数字が分かった為、その数字番目に赤のジョーカーを挿入すれば勝利です!
joker_trump
元々のカードの束が1枚だったときは勝てました!では元々のカードの束が2枚、3枚、、、52枚だったら...どうでしょう?
ここから上記のパズルの解法につながる削除符号というものを紹介します。
実は、削除符号は次世代の情報記録媒体であるDNAデータストレージに使われる符号(仕組み)だったりします。
DNAデータストレージとは、その名の通りDNAを用いたデータ
削除符号はこの他にも面白い話題がある為、あえてパズルとのつながりには触れずに紹介します!しかし、いつの間にかパズルのヒントになっているように紹介します!
まず、そもそも符号とは?符号理論とは?という所から始めます。
大ざっぱに
符号理論
(誤り検出訂正)とは、コミュニケーションの際にメッセージが間違って伝わったとしても、ある程度なら正しく推測出来るような伝え方、もしくは間違って伝わったことが分かるような伝え方を考える理論です。この伝え方のことを符号化(encode)、推測の仕方のことを復号(decode)といいます。
この符号化と復号の組を符号と呼ぶこともありますが、今回はある程度間違って伝わっても正しく推測出来るような構造を持つメッセージの集合(空間)のことを符号と呼びます。
符号理論はCDや主記憶装置、QRコードなどメッセージのやり取りを行う様々な場面で実際に使われていて、最近では量子コンピュータに用いられる量子誤り訂正符号も研究されています。工学的なアプローチも数学的アプローチ(組み合わせ論、デザインなど)もある研究対象です。
ちなみに
オンライン整数列大辞典(OEIS)
の創設者
N.J.A Sloane
は符号理論の研究者です。
例として"ありがとう"、"ごめんなさい"、"さようなら"というメッセージを、ある程度間違って伝わっても正しく推測出来るように
と様々な国の言葉も付け加えて言うことにしましょう。(符号化)
そうするとこのうちの一つが、急に鳴った雷の音で一部聞こえなかったり、そもそも喉や口の調子が悪かったりで、
と伝わったとしても、
NICO Touches the Walls大勝利!!(
手をたたけ
)
(この3つのメッセージだけでも告白の返事は出来そうなので
ボッコちゃん
に実装するといいかもしれません。
半ば無理矢理な例でしたが、一般にメッセージが冗長に(やたら長く)なってしまうことが問題になります。そこで、発生しやすい間違った伝わり方(誤り)に特化した冗長性、構造を持ったメッセージの集合(符号)を考えることになります。ではそもそも誤りとはどのようなものが考えられるでしょうか?
以下が基本的な誤りの例です。このうちの削除誤り、が起きても訂正出来る集合を削除符号と呼びます。
削除(挿入)誤りの特徴は、何番目が削除(挿入)されたかは最後まで分からないことがあるという点です。そんな状況を体感出来る例が身近にあります。だるま落としです。
daruma
daruma3
たったいま
しかし、上から何番目のブロックだったかは分かりません。上から3番目の
このように何番目かのブロックにあたるものが無くなってしまったとき、空白は残らずに間が詰まるような場面でこのような状況になります。
(そうでない状況の例として、指定席の試験は欠席者が出たときに前から何番目に欠席が出たか分かります。これは消失誤りに対応します。)
筆者自身詳しくは分からないですが、4種類の塩基ATGC(アデニン、チミン、グアニン、シトシン)からなるDNAの塩基配列を扱う際に削除や挿入が起きるようです。CTCGAGAGTA
では削除誤りが起きても誤りが訂正出来て(削除符号であって)、数学的に扱いやすいものはどのようなものがあるのでしょう??
その一つが以下のある合同式によって定まるVT符号です。(VTとは、発見者であるVarshamovとTenengoltsの名からとられています。)
自然数は
この集合を符号長
長さ
hundou
各
また、この
(ちなみにVT符号の元の個数として、数列
符号長
(
(例が悪いのですが、一般には線形性は成り立ちません。だって
長さ
実際に
であり、これらの値を
ここで、VT符号の元(符号語と呼ぶ)それぞれに対して削除誤りが起こるとどうなるかを見てみます。
ここで削除後の系列に被りはありません!そのため、削除後の系列から一意的に元の符号語を推定することが出来ます!
また、削除後の系列をよーく見ると、
(
つまり、長さ
例えばビット列
あなたの符号語はどこから? 私は
という会話があれば
うわっ
さらに驚くべきことに、このVT符号の性質(どの符号語からくるかという基準で、長さが
つまりVT符号
例えば、
架空のアイドルグループ
今日の日付である12/8的にもいい感じの話題になりました!(強引)
最後にこの性質を数学的に定式化しておきます。
任意の自然数
かつ、相異なる符号語
が成り立つ。ただし、
このことをVT符号は単一削除誤りに対して完全であると言います。(符号長やパラメータに依存しない。)
論理パズルに繋がるように、このことを更に言いかえていきます。
和集合と部分集合(
どんなビット列
また削除球面
ビット列
ここで
以上から次の系が言えます。
任意の自然数
要するにビット列
(ちなみに
(それでも
さて難問論理パズルと削除符号の話はここまでで終わりです!
いかがでしたでしょうか?
実はVT符号の完全性を使うことで、あと1歩でパズルを解くことが出来ます!
解答編は12/22の日曜数学アドベントカレンダー
21日目の記事
にて公開いたしますのでお楽しみに!!
(結局のところ、VT符号の完全性の面白さを伝える為に論理パズルや、その他の例、小ネタを書いたまでありました。
伝えたいことを誤解なく伝えるために色々な冗長性(冗談性)を付け加える、まさにこのブログ記事が符号理論...(?)
明日はキグロさんの
ネジの山の形について
です!