5
大学数学基礎解説
文献あり

論理パズルの解説と、ハミング符号。

1890
0

こんにちは!ヘカテーと申します!院生をやっています!
楕円曲線の群構造の概要が学べる前日のRyuさんによる記事、 楕円曲線論への誘い~ロマ数トレラン受講記録~ に引き続き、2020年 日曜数学 アドベントカレンダー21日目の記事です!

年の瀬は早いものでクリスマス(アドカレ最終日)まで残り4日になる12/22今日この頃ですが、"毎月22日はショートケーキの日"と国内のケーキ屋さんで呼ばれていることを皆様ご存じですか?

layered_cake layered_cake

その理由はカレンダーにありまして、22日の一週間前が15日であるため、カレンダー上でちょうど22日の真上に15日(イチゴ)が乗っている形になるからだそうです!面白い!

この理屈でいくと一週間後は29日(肉の日)なので、イチゴと肉にはさまれるスポンジケーキみたいな絵面になりますね!混ぜるな危険!
でも12月ならショートケーキとターキーのセットということで許される気がします!クリスマスは正義!

えー、一切今回の話と関係ない前座でしたが、今回は 前回の記事 で提示した論理パズルの解答とその 参考元 のチェス盤のパズルの解答に共通する性質、完全性について書きます!前回の記事を特に読んでいなくても概要は掴めると思います!

前回の論理パズル

まず、前回の論理パズルの概要がこちら。

カード

裏表の区別しかない52枚の同じカードの束を、悪魔が裏表バラバラにシャッフルする。その後、悪魔は囚人Aだけに154までの整数を1つ伝える。
それを聞いた囚人Aは、その52枚のカードの束に、同じカード1枚を裏か表かにして挿入する。その際、52枚のカードの束を順番を崩さずに広げて何枚目が裏なのか表なのかを確認してよい。
その後、囚人Bは同様にその53枚のカードの束の何枚目が裏なのか表なのかだけを確認し、囚人Aに伝えられた整数を当てる。
このゲームを成功させるために、囚人Aと囚人Bはこのゲームのルールを知った上で事前にどのような戦略をとればいいか?

(問題変わってるじゃないか!というツッコミはご容赦あそばせ。)
つまり、囚人Aと囚人Bの入力と操作の一部と出力は以下の通り。

input input
数式で表すとこんな感じ。(区間[1,54]1から54までの整数の集合を表します。)
input2 input2
a~=aとなるような囚人Aの操作と囚人Bの操作を具体的に問うているのがこの論理パズルになります。

論理パズル(カード)の解説

この論理パズルの解答を、前回定義したVT符号とその性質を用いて解説していきます。
VT符号の定義とその性質を以下に再掲します。自然数は1以上の整数のことだとします。

VT符号

n:自然数, a:整数に対して、集合VTa(n)を以下で定める。
VTa(n):={(x1,x2,,xn){0,1}n1x1+2x2++nxna(modn+1)}
この集合を符号長n,パラメータaVT符号と呼ぶ。
VT符号の元を符号語と呼ぶ。

整数aは実際は1からn+1までの整数のうちの一つ(a[1,n+1])で代表させても構いません。
aa(modn+1)であればVTa(n)=VTa(n)であり、
aa(modn+1)であればVTa(n)VTa(n)である為です。

VT符号の単一削除誤りに対する完全性

任意の自然数nと任意の整数aに対して、
{0,1}n1=xVTa(n)dS(x)
かつ、相異なる符号語x,xVTa(n)に対して、
dS(x)dS(x)=
が成り立つ。ただし、dS(x)はビット列xから一文字削除して得られる系列全体の集合(=削除球面(deletion sphere))を表す。

VT符号とその完全性の例

VT0(4)={(x1,x2,x3,x4){0,1}41x1+2x2+3x3+4x40(mod5)} ={0000,0110,1001,1111}
(0000(0,0,0,0)の略記です。)

{0,1}3=xVT0(4)dS(x)=dS(0000)dS(0110)dS(1001)dS(1111)={000}{110,010,011}{001,101,100}{111}=(3)

上記の完全性の例は前回の「お前、どこ産?」の例と同じものです。

さらに自然数nと整数aを固定したとき、定理1の様子を図示するとこんな感じ。

perfect1 perfect1

灰色の三角形(の底辺)が削除球面dS(x)を表しています。符号語xによって要素数が異なるので底辺の長さを変えています。上図のように符号語中心の(単一)削除球面が、符号語の長さより1短いビット列全体を直和分割するとき、その(二元)符号を単一削除に対して完全と言います。(符号語の長さは一定とします。)一定の長さのビット列全体を削除球面で充填(sphere packing)、埋め尽くしているイメージです。

また、VT符号の完全性はパラメータaによらず、aを別のパラメータaに取り替えても成り立ちます。
すなわち整数a[1,n]の取り方の分だけ、VTa(n)の元を中心とした長さn1のビット列全体の埋め尽くし方が取れるということになります。

perfect2 perfect2
(一般にVTa(n)VTa(n)の符号語数(要素数)は同じとは限りません。)
これらの図を見ると前回紹介した定理1の系は納得出来る主張になっていると思います。

任意の自然数nと任意の整数aと任意のビット列y{0,1}n1に対して、yに一文字挿入して得られる符号語xVTa(n)は一意的に決まり、必ず存在する。

定理1の系がこの論理パズルを解く鍵になります。この定理1の系を用いて、52枚のカードの束1枚のカード(の束)、
154の整数一つを当てる13の整数一つを当てる、とした場合の論理パズルの解法を見ていきましょう。

カードの束が1枚だったときの解説

この場合の解法は以下の図の通りです。当てる整数は13です。
figure1 figure1
カードの束が1枚しかないので初期状態は表か裏かですが、どちらであっても囚人Aは1枚カードを挿入することで3通りの状態が作れ、上図の数字の割り振り方で囚人Bに13の整数を一つ伝えることが出来ます。

この解法を定理1の系の視点から捉え直します。a13までの整数の一つとしてVT符号VTa(2)を考えると
VT1(2)={10},dS(10)={0,1}
VT2(2)={01},dS(01)={0,1}
VT3(2)={00,11}, dS(00)={0}, dS(11)={1}
となり、a=1,2,3のそれぞれの場合で完全性(削除球面でビット列全体を重なり無く埋め尽くす性質)が成り立っています。
今までは整数aを固定して、どんなy{0,1}も一文字挿入してVTa(2)の符号語xに一意的に辿り着けるという見方をしてきました。(下の図で各色が分割を与えているという見方)
しかし、これはy{0,1}を固定して、どんな整数a[1,3]に対しても、y{0,1}から一文字挿入してVTa(2)の符号語xに一意的に辿り着けるという見方も出来ます。(下の図で各ビット0,1から3本の矢印が出ているという見方)
figure2 figure2
0をカードの表、1をカードの裏とすれば先ほどの図と完全に対応していますね!(VT符号達で長さ2の方のビット列全体を直和分割している点も面白いです!)
結局のところ、定理1の系は整数aもビット列yも任意であるため、実際はどちらを先に固定して考えてもいいわけです!
従って、n=53としてこの仕組み(完全性)を使えば、カードの束が52枚からスタートしたとしても必ず囚人Aは囚人Bに好きな整数a[1,53]を伝えられるわけです!(どうカードを挿入すればいいかは後述。)
囚人Bはカードの表裏を0,1に割り当て、長さ53のビット列と自然数列(1,2,...,53)との標準内積を54で割った余りを計算することで整数aを読み解くことが出来ます!(余り054と解釈すればよい。)
これで悪魔に勝てます!VT符号の完全性すごい!
friend friend

さて、囚人Aのカードの挿入の仕方ですが、定理1の系から与えられた52枚のカードの束(上から表を0、裏を1と読むことで長さ52のビット列と同一視)に対して、どんな整数a[1,54]が伝えられたとしても1枚カードを挿入することで、VT符号VTa(53)の元にすることが必ず出来ます。すなわち、(1,2,...,53)との標準内積が54余りaとなるように長さ53のビット列を必ず作れます。従って、時間をかけてカードを挿入しては余りがaになるかを全通り調べればいいのですが、計算に時間がかかると日が暮れてしまうかもしれません。そこで念のために、以下のアルゴリズムを書き残して解説を終えたいと思います。ちなみにこのアルゴリズムはLevenshteinによって、VT符号が削除・挿入誤り訂正に使えるということと共に、発見されたものです。(実はVT符号は発見当初、削除・挿入とは別の誤りを訂正出来る符号の扱いだった。)

① 与えられた長さ52のビット列と(1,2,...,52)との標準内積の値を54で割った余りをとる。

② ①の値を与えられた整数a[1,54]から引き、54で割った余り(053)に直す。(要するにmod54をとる。)

③ 与えられた長さ52のビット列に含まれる1の個数を数える。(裏になっているカードの枚数を数える。)

④ ②の値が③の個数以下である場合、カードは表にして挿入する。挿入位置は挿入する場所より上にある1の個数(裏の枚数)が、②の値と一致する場所と決める。(複数の候補がある場合、どこに挿入しても同じ結果になる。)

⑤ ②の値が③の個数より大きい場合、カードは裏にして挿入する。挿入位置は挿入する場所より下にある0の個数(表の枚数)が、(②の値)(③の個数)1なる値と一致する場所と決める。(複数の候補がある場合、どこに挿入しても同じ結果になる。)

大変申し訳ありませんが、このアルゴリズムの正しさとVT符号の単一削除誤りに対する完全性の証明は今回は省略いたします!

以上で論理パズル(カード)の解説は終了です!

前回の論理パズルの元になったパズル

前回扱った論理パズルには 参考元 があり、前回のパズルを削除・挿入誤りver.だとするなら、参考元のパズルは反転誤りver.です。(二つの誤りについては 前回の記事 をご参照下さい。)

すなわち、なんと参考元のパズルの方にも反転誤りに対する、ある種の完全性が使われています!そして対応する符号はハミング符号という符号(構造を持った集合)に少し修正を加えた符号になっています。
(個人的に論理パズルは解き方そのものも興味が湧きますが、やはりそのパズルを成り立たせる構造に俄然興味が湧いてしまいます!一般化したいのです!わくわく!)

この節でその視点から参考元のパズルを解説します。

chess chess

チェス盤

8×8のチェス盤のマスに、悪魔がランダムに同じポーンを好きなだけ(0~64個)置く。その後、悪魔は囚人Aだけに164までの整数を1つ伝える。
それを聞いた囚人Aは、そのチェス盤に対して、ポーンを一つ取り除くか、空いているマスにポーンを一つ置くのどちらか一方を必ず行う。
その後、囚人Bはチェス盤の何マス目にポーンが置いてあるかだけを確認し、囚人Aに伝えられた整数を当てる。
このゲームを成功させるために、囚人Aと囚人Bはこのゲームのルールを知った上で事前にどのような戦略をとればいいか?

このパズルの入力、操作の一部、出力を表したフローチャートはこちら
input3 input3
数式ver.
input4 input4

ここで整数の部分集合である{0,1}を二元体F2(**1+1=0**が成り立つ集合)に置き換えれば、1ビット反転は、ビット列xF2nに(i番目だけ1で他が0の)単位ベクトルeiF2nを、各成分1+1=0の規則のもとで足すという代数的な演算で表されます。(nは自然数, i[1,n])
以降、{0,1}F2に置き換えて考えます。0は偶数、1は奇数を表す記号に変わったと思って下さい。(体としてF2Z/2Zであることから、この解釈を用いています。)

ハミング符号について

このパズルを解くのに用いるハミング符号(広義)の定義はこちら。
(前回と同様、符号の構造からパズルの解答に迫ります。)

ハミング符号(広義)

m:自然数, n:=2m1, 0:=(0,0,,0)m,
H:F2mの相異なる非零ベクトル(n個)全てを列として並べたサイズm×nの行列
に対して、集合CnF2nを以下で定める。
Cn:={xF2nHxT=0}
この集合をm次のハミング符号と呼ぶ。
混乱の恐れがない限り、ハミング符号の元も符号語と呼ぶ。

要するに行列Hを左から掛ける線形写像H()T:F2nF2mの核(kernel)です。この写像H()Tを改めてfと置けばC=f1(0)と表せます。また、ハミング符号のように線形空間である符号のことを線形符号と呼びます。
ハミング符号は一文字の反転誤りが訂正出来ます。(実は代数的に構成される(反転)誤り訂正符号の中で最も古いものの一つです。)具体例を見ます。

ハミング符号(狭義)

m:=3, n:=231=7, 0:=(0,0,0),
H:=(000111101100111010101)
(H17の二進表記を列ベクトルとして順番に並べた行列だと見なすと分かりやすいと思います。例えば7列目はちょうど(1,1,1)ですね!)
とすると、C7は以下のF2上の連立方程式の解の集合であり、
HxT=0{x4+x5+x6+x7=0x2+x3+x6+x7=0x1+x3+x5+x7=0
解はx3,x5,x6,x7を決めれば一つに決まる為、C7F27は以下の16元集合。
C7={(0,0,0,0,0,0,0),(1,1,0,1,0,0,1),(0,1,0,1,0,1,0),(1,0,0,0,0,1,1), (1,0,0,1,1,0,0),(0,1,0,0,1,0,1),(1,1,0,0,1,1,0),(0,0,0,1,1,1,1), (1,1,1,0,0,0,0),(0,0,1,1,0,0,1),(1,0,1,1,0,1,0),(0,1,1,0,0,1,1), (0,1,1,1,1,0,0),(1,0,1,0,1,0,1),(0,0,1,0,1,1,0),(1,1,1,1,1,1,1)}
ハミング符号といえばこの集合を指すと定義する場合もあります。(狭義の定義)

three three

1ビット反転誤り訂正の仕方

例3のC7を引き続き例にとって考えます。ハミング符号C71ビットの反転誤りを訂正出来るという紹介です。
このとき起こりうる1ビットの反転は1ビット目から7ビット目での反転です。これは単位ベクトルeiF27(i[1,7])が符号語に足されることだと見なせます。
従って、もし符号語xC71ビット反転が起きたとすると、その状態はx+eiという形で表されるはずです。i[1,7]が分かれば、x+eiiビット目を反転させることで元の符号語xが分かります。そこで、このベクトルに行列Hを掛けると、符号語xHxT=0を満たすことと行列の積の分配則から、
H(x+ei)T=HxT+HeiT=HeiT
が成り立ちます。すなわち、符号語xによらない値になります。また、eiは単位ベクトルなのでHeiT=hi(hiHi列目の列ベクトル)が成り立ちます。このhi行列Hの列ベクトルの並び方から二進表記でiを表すため、iを読み取ることが出来ます。すなわち、元の符号語xが分かります。
例としてC7の元(1,1,0,1,0,0,1)3番目に1ビット反転が起こり、(1,1,1,1,0,0,1)を受け取ったとします。これに行列Hを左から掛けることで何番目に誤りが起きたかを診断しましょう。C7における行列Hを再掲します。
H:=(000111101100111010101)
この行列を左から掛けると
H(1,1,1,1,0,0,1)T=(0,1,1)T
となり、二進表記で0113ですね!3番目に誤りが起きたことが分かったので元の符号語が(1,1,0,1,0,0,1)だったと分かります。
ちなみに1ビット反転が起きていなければ行列Hを掛けると0が返ってくる為、1ビット反転が起きなかった場合は何も訂正しなくてよいと判断出来ます。ちなみにこの誤り訂正方法は2ビット以上の反転が起きうる場合だと使えません。

例4で、符号語xC7から何もしないか、1ビット反転して得られる系列全体の集合B(x)(反転球)を考えると、B(x)の要素数は1+7=8です。
(中心が入るので球面(sphere)ではなく球(Ball)と呼ぶ方が適切ですが、球面と呼ばれることも多いです。また、一般に反転球や削除球面の概念は適当な距離を用いて定義されます。)
さらに符号語x,xC7,整数i,j[1,7]に対して、x+ei=x+ejx=x
が成り立ちます。(i=jならば明らかで、ijの場合は行列Hを両辺に掛けることで仮定が偽であることが分かるためです。)
このことから符号語x中心の反転球B(x)たちに共通部分は無く、xC7B(x)の要素数は8×16=128であることが分かります。
F27の要素数も128であることから、
xC7B(x)=F27
であり、反転球たちが長さ7のビット列全体を直和分割していることが分かります。F27という空間が反転球B(x)で充填(sphere packing)されているわけです。
こういった性質を持つ符号を完全符号と言います。この性質のことを(単一反転に対する)完全性と呼びます。
一般に以下の性質が成り立つことが分かります。

ハミング符号の単一反転誤りに対する完全性

任意の自然数mに対して、
F2n=xCnB(x)
かつ、相異なる符号語x,xCnに対して、
B(x)B(x)=
が成り立つ。ただし、n:=2m1とする。

削除球面とは違い反転球の要素数は一定である為、一般には別の形で(単一)反転誤りに対する完全性が定義されますが、定理2もハミング符号の完全性を表しています。

任意の自然数mと任意のビット列yF2nC7に対して、yを一ビット反転して得られる符号語xCnは一意的に決まり、必ず存在する。ただし、n:=2m1とする。

削除のときと同じような定理とその系が導けました!

しかし、このままだと問題点が2つあります。

  • 定理1の系にあったパラメータaが無い(aは悪魔が伝える数字に対応)ため、パズルの解法につながらない。
  • 符号の長さはn:=2m1に固定されているため、26=64マスのチェス盤に対応しない。

この問題を解決するために、ハミング符号を修正し、このパズルに対応する完全性を考える必要があります。

では、どのような修正をしたらよいでしょうか?

論理パズル(チェス盤)の解説と、ハミング符号の修正

その答えはシンプルで、ハミング符号の符号語の先頭に0をつけた系列の集合とハミング符号の符号語の先頭に1をつけた系列の集合の和集合をとるだけでOKです。

実際には先頭である必要は無いので一般的には以下のように定式化出来ます。

伸長ハミング符号

m:自然数, n:=2m, 0:=(0,0,,0)m,
H:F2mの相異なるベクトル(n個)全てを列として並べたサイズm×nの行列
に対して、集合LCnF2nを以下で定める。
LCn:={xF2nHxT=0}
この集合をm次の伸長ハミング符号と呼ぶ。
混乱の恐れがない限り、伸長ハミング符号の元も符号語と呼ぶ。

(この集合は通常の誤り訂正の能力を失っているので符号と呼ぶべきかは怪しく、伸長ハミング符号はこのブログだけの用語です。)
ハミング符号と異なる点はHの列ベクトルに零ベクトルを許していることです。例3のH07の二進表記を列ベクトルとして順番に並べた行列に対応します。
完全性の方もこの符号に合わせたものになります。

伸長ハミング符号の単一反転誤りに対する完全性

任意の自然数mに対して、
F2n=xLCnS(x)
かつ、相異なる符号語x,xLCnに対して、
S(x)S(x)=
が成り立つ。ただし、n:=2mとし、S(x)はビット列xから1ビット反転して得られる系列全体の集合を表す。

完全性の気持ちとしては、特定の誤りを考えたとき、起こりうる(受信しうる)系列全体が元の空間と一致してる!です。ハミング符号の完全性における反転球B(x)が反転球面S(x)に置き換わっているため、伸長ハミング符号における完全性は、送信したい符号語xは受信者にそのまま届くことは絶対に無く、必ず1ビットの反転が起きるという仮定の下で意味を持つ概念です。(#どんな状況)この仮定の下であれば、伸長ハミング符号は1ビット反転誤り訂正が行えます。

伸長したことにより符号語の長さをn:=2mにすることが出来たため、64マスのチェス盤に対応させることが出来ました。

残りはパラメータaですね!完全性を満たす集合をa[1,2m]の分だけ見つけましょう!これは準同型定理からいけそうです!
削除のときと同じく小さな具体例を見ることで一般の場合につなげます!

チェス盤が4マスで、14の整数の一つを当てる場合を考えます。
0F2をポーンが置かれていないマス、1F2をポーンが置いてあるマスに対応させます。さらにチェス盤のマスに番号をふり、チェス盤の状態をF24の元と同一視します。

m=2,n=4

行列Hとして03の二進表記を列ベクトルとして順番に並べた行列と見なしたものをとると
H:=(00110101)
であり、行列Hを左から掛ける線形写像H()T:F24F22を改めてfと置けば
LC4=f1((0,0)T)
=(HxT=(0,0)Tの解集合)
={(0,0,0,0),(0,1,1,1),(1,0,0,0),(1,1,1,1)}
は線形空間であり、準同型定理からF24/LC4F22です。
F24/LC4の元としてLC4の他には
f1((0,1)T)
={(0,1,0,0),(0,0,1,1),(1,1,0,0),(1,0,1,1)},
f1((1,0)T)
={(0,0,1,0),(0,1,0,1),(1,0,1,0),(1,1,0,1)},
f1((1,1)T)
={(0,0,0,1),(0,1,1,0),(1,0,0,1),(1,1,1,0)}
があります。F24/LC4F22よりF24/LC4の元は以上の4つです。伸長ハミング符号LC4以外の上記の3つの集合(元)もLC4と同様に、単一反転誤りに対する完全性が成り立ちます。その状況は見方を変えると、どんな長さ4のビット列yF24からでも適当に1ビット反転させることで、好きなf1(aT)の元にすることが出来るということになります。(aF22)
それは各f1(aT)に単位ベクトルei(i[1,4])が含まれていることからも分かります。
イメージとしては以下の図になります。色を固定して頂点を動かしたり、頂点を固定して色を動かしたりすると面白いです。
colorful colorful
削除の完全性の図と違って、元同士ではなくて集合間の矢印にしています。今回も完全性を与える集合f1(aT)達の方もF24を直和分割している点が不思議で面白いです。(従って、チェス盤の初期状態は必ずただ一つのf1(aT)に含まれます。チェス盤の初期状態がどのf1(aT)に含まれるかは、Hを左から掛ければ分かります。)
囚人達でこの図を共通認識すれば、囚人Bは受け取ったチェス盤に行列Hを掛けることで、どんなaF22、もといa[1,4]でも読み解くことが出来ますね。(二元体上のベクトルを二進表記と見なして整数と同一視。(0,0)4と思えばよい。)

定理1の系と対になるように例5でみた内容を定理の形に残します。

定理1の系の対応物

任意の自然数mと任意のビット列aF2mと任意のビット列yF22mに対して、y1ビット反転して得られる元xf1(aT)は一意的に決まり、必ず存在する。ただし、写像fは、LCnの定義に用いる行列Hを左から掛ける写像H()T:F22mF2mを表す。

チェス盤のパズルの具体的な解き方は既に解説が書かれた記事があるため、チェス盤のパズルの完全性の視点からの解説は以上にしたいと思います!
(少し触れると、特に例5においてHxTを計算するということは{x3+x4x2+x4
の各値、もとい、
x1(00)+x2(01)+x3(10)+x4(11)
の値を計算しているということですが、これらの値が 参考元 のサイト様における、2進フィルター、もとい、ポーンが置いてある各場所にあたる2進数の排他的論理和(XOR)にあたります。)

ちなみにチェス盤のパズルは非負整数nに対して、2nマスのチェス盤でないと必勝法がありません。その解説は英語になってしまいますが、純粋な数学コンテンツだけで登録者数が300万人を超えているYoutuber 3Blue1Brownさんの こちらの動画(The impossible chessboard puzzle) をご覧下さい。
最後に、このチェス盤のパズルは、2007年秋に Tournament of the town という数学オリンピックに準ずる大会において出題されたマジックの問題(Senior A-level 5番)が元になっているそうです!悪魔が言う数字観客が言う数字、囚人Aマジシャンの助手、囚人Bマジシャンとすれば確かに、マジシャンの助手が一つだけポーンの有る無しを変更したものをマジシャンが一目見て(計算すれば)数字を当てることが出来ますね!(文献[7]参照)

おわりに

2回にわたって、反転と削除それぞれに対する完全性を用いた論理パズルを紹介いたしました。

一文字反転させることと一文字削除することに耐性をもつ仕組みに共通(対応)する性質があることはとても不思議に思います!

ちなみに蛇足になってしまいますが、ある削除誤りに関する完全性に対する研究が、有限コクセター群などの道具を用いて現在もなお進行中です。

例えば01もしくは10という連続する二文字でビットが異なるものが削除される誤りに関して完全性を満たすものが見つかっています。
54枚のカードの論理パズルの言葉で言うと、
囚人Aは、表裏もしくは裏表と連なった二枚のカードを束に必ず挿入するというルールでも、囚人Bに154までの整数を一つ伝えることが必ず出来るということです。

このとき囚人Aが、どこに挿入すれば整数を伝えられるかというアルゴリズムの構成が自分の研究だったりします。(このパズルと意外な繋がりがあって自分でもびっくりしています。)

また、およそ2ヶ月前(2020/10/27)のプロシーディング(学会発表用の論文)で面白い結果が出ました。54枚のカードの論理パズルの言葉で言うと、

  • 好きな位置に裏か表でカードを挿入し、もう一枚は一番下に裏か表かでカードを挿入する。
  • 一番上に裏表好きな組み合わせでカードを二枚連ねて挿入する(置く)か、または、好きな位置に裏表揃えて、カードを二枚連ねるまたは一枚だけ間隔を空くように挿入する。
  • 好きな位置に裏か表でカードを挿入し、もう一枚は一番下に、最初に入れたカードと裏表が揃うように挿入するか、または、好きな位置に裏か表でカードを挿入し、もう一枚は一番上に、最初に入れたカードと裏表が異なるように挿入する。

といったルールたちの中からどれを選んでゲームを始めても、必ず囚人Bに1108までの整数を一つを伝えることが出来る。

という完全性が発見されました。選べるルールの個数はnを大きくすれば増えていくため、実質無限個の完全性パズルが手に入ったことになります。

もはや面白いというより恐ろしいです

明日は Mathlog からの マスログ で、matyuuさんによる 偏角の原理を使って五次方程式を解く です!!五次方程式は(数値的に)解ける!

参考文献

[2]
今井秀樹, 符号理論, 電子情報通信学会, pp.93-95
[3]
進化する符号理論, 萩原 学, 日本評論社, pp.198-199
[4]
G.A.ジョーンズ/J.M.ジョーンズ, 情報理論と符号理論, 丸善出版, pp.108-110
[5]
N. J. Sloane, On single-deletion-correcting codes, Codes and designs, 2002, pp.273-291
[6]
V. Levenshtein, Binary codes capable of correcting deletions, insertions, and reversals, Soviet physics doklady, 1966, pp.707-710
[7]
Andy Liu, Two applications of a Hamming code, The College Mathematics Journal, 2009, pp.2-5
投稿日:20201221
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。
バッチを贈って投稿者を応援しよう

バッチを贈ると投稿者に現金やAmazonのギフトカードが還元されます。

投稿者

数学、数学のイベントが好きです!

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. 前回の論理パズル
  2. 論理パズル(カード)の解説
  3. 前回の論理パズルの元になったパズル
  4. ハミング符号について
  5. 論理パズル(チェス盤)の解説と、ハミング符号の修正
  6. おわりに
  7. 参考文献