2
高校数学解説
文献あり

不変量を使ってポリオミノの問題を解く

564
1

はじめに

この記事は「 日曜数学 Advent Calendar 2022 」の 12月12日分の記事になります。
「12月12日」は、月と日を入れ替えても同じ日付になりますね!つまり不変・・・!!

……というわけで、この記事では不変量を使ってとある数学の問題を解いてみたいと思います。

(2022.12.12 追記)
 ※ 子葉さんのコメントでのご指摘にあわせて記号を修正しました。

不変量とは

不変量とは、たとえば「合同な図形の面積」とか「相似な図形の頂点数」のようなもののことです。ちゃんと定義するとこんな感じです。(Wikipedia調べ)

不変量(Wikipedia)

不変量(ふへんりょう、invariant)とは、数学的対象を特徴付ける別種の数学的対象のことである。一般に、不変量は数や多項式など、不変量同士の同型性判定がもとの対象の同型性判定より簡単であるものをとる。良い不変量とは、簡単に計算でき、かつなるべく強い同型性判別能力をもつものである。

とある問題

さて、この記事で挑戦する問題はみよしじゅんいち (@nosiika)さんの考案した次のようなものです。

みよしじゅんいち (@nosiika)さんのツイート

みよしじゅんいち (@nosiika)さんの問題

Pペントミノからモノミノを引くと、テトロミノ5種のうち、Tテトロミノ、Lテトロミノ、Oテトロミノ、Sテトロミノの4種を作ることができる。引き算でテトロミノ5種を作ることができるようなポリオミノの組は存在するだろうか?

 まず用語の説明をします。同じ大きさの正方形を辺に沿ってつなげた形を総称してポリオミノといいます。特に、正方形 1個、2個、3個、4個、5個、6個をつないだものはそれぞれ「モノミノ」、「ドミノ」、「トロミノ」、「テトロミノ」、「ペントミノ」、「ヘキソミノ」と呼びます(*)。そういえば、あえて名前は出しませんが、「テトロミノ」を並べて消すゲームは有名ですね。

(*) 語源としては「ドミノ」が最初

 

 テトロミノは、裏返しや回転で一致するものを同一視すると5種類あり、区別するために似た形のアルファベットを用いてそれぞれ I型・O型・L型・S型・T型 と呼んだりします。

テトロミノの I・O・L・S・T テトロミノの I・O・L・S・T

 そして、「Pペントミノからモノミノを引くと、テトロミノ5種のうち、Tテトロミノ、Lテトロミノ、Oテトロミノ、Sテトロミノの4種を作ることができる。」というのは、次の図のようにすれば、Pペントミノ(アルファベットのPに似た形のペントミノのことです。)からモノミノを削ることで4種のテトロミノが作れるということです。

PペントミノからO・L・S・Tのテトロミノが削り出せる PペントミノからO・L・S・Tのテトロミノが削り出せる

 問題は、このようにポリオミノを「引き算」のように削った時に、テトロミノ 5 種をすべて作ることができるか、ということです。

試行錯誤してみる

 とりあえず試行錯誤してみると、たとえばヘキソミノからドミノを削って 3 種類のテトロミノを作ったり、いろいろなパターンを作ることができます。

ヘキソミノから I・O・L のテトロミノが削り出せる ヘキソミノから I・O・L のテトロミノが削り出せる

 しかしながら、5 種全部を作るポリオミノの組み合わせはなかなか見つかりません。

 しばらくやってみると「無理なのでは?」という気がしてきます。
 となれば、不可能であることを証明したくなりますね!

不変量を使う(その1)

 さて、最初に考えたのは以前「欠損チェスボードにドミノを敷き詰められるか」のときに使った、チェスボードの黒白のマスを数える方法でした。

 そのときの記事を一部引用します。

欠損チェス盤にドミノ・L型トロミノ・I型トロミノを敷き詰めたい

=====(ここから引用)=====
欠損チェスボードにドミノを敷き詰められるか 欠損チェスボードにドミノを敷き詰められるか

=====(引用おわり)=====

 このときと同じように、市松模様の上にテトロミノを並べてみます。

市松模様の上にテトロミノを配置する 市松模様の上にテトロミノを配置する

 そして、「テトロミノと重なる黒マスと白マスの個数の差」という量を考えます。
 すると、その量は、テトロミノを平行移動・裏返し・回転しても変化しないことがわかります。つまり不変量……!!(伏線回収)

 少し考えれば、テトロミノに限らず、一般的にポリオミノ全てについて「テトロミノと重なる黒マスと白マスの個数の差」は不変量となることがわかります。

 ここでは、「ポリオミノ x と重なる黒マスと白マスの個数の差」を N(x) と書くことにします。また、Iテトロミノ・Oテトロミノ・Lテトロミノ・Sテトロミノ・Tのテトロミノはそれぞれ省略して単に I,O,L,S,T と書くことにします。

 表にするとこんな感じになります。

N(I)N(O)N(L)N(S)N(T)
00002

N(T) だけが違う数字になりました。これは使えそうな気がしますね?

次に、ポリオミノの「引き算」をすると、N(x) がどのように変化するか考えてみましょう。

N(x) は「ポリオミノ x と重なる黒マスと白マスの個数の差」ですから、ポリオミノ x からポリオミノ y を削ったものを「xy」で表すと、

N(xy)={N(x)+N(y) 又は |N(x)N(y)|

となります。

 したがって、「Tテトロミノと、T以外のテトロミノをどちらも削り出せるポリオミノ x,y の組合せが存在するならば、N(xy)02 の両方になる」はずです。
 上記の式を満たす組み合わせを考えると

N(x)=1,N(y)=1

しかありえないことがわかります。

偶数ミノ、奇数ミノ

 突然ですが、正方形の数が偶数のポリオミノを「偶数ミノ」、奇数のポリオミノを「奇数ミノ」と呼ぶことにします。すると、次のようになります。

N(偶数ミノ)=偶数
N(奇数ミノ)=奇数

偶数を2つの整数に分けるとその偶奇が一致するから、その2つに分けた整数の差は偶数となる。
また、奇数を2つの整数に分けるとその偶奇は一致しないから、その2つに分けた整数の差も奇数となる。

 したがって、N(x)=1,N(y)=1 をみたす x,y はいずれも奇数ミノであることがわかります。

その1のまとめ

 ここまでで、つぎのことがわかりました。

Tテトロミノと、T以外のテトロミノをどちらも削り出せるポリオミノの組合せは、どちらも奇数ミノでなければならない

冒頭の例もこれを満たしていることを確認してください。

PペントミノからO・L・S・Tのテトロミノが削り出せる(再掲) PペントミノからO・L・S・Tのテトロミノが削り出せる(再掲)

 このアプローチでは、条件をみたすポリオミノの組合せが存在する場合には「奇数ミノと奇数ミノ」であること、特に、「黒マスと白マスの差が 1 となる奇数ミノ」でなければならないことまではわかりましたが、そのような組み合わせが存在するかどうかまではわかりませんでした。

 しかし、不変量はこれだけではありません。他の不変量が使えないかさらに考えます。  

不変量を使う(その2)

 不変量としてはその他にも、ポリオミノの辺や頂点や内角に注目していろいろなものを考えることができます。
 試行錯誤の結果、次のようなものを考えてみることにしました。

 まず縦縞、横縞にチェス盤の模様を塗り替えて、そこにポリオミノを配置します。

縦縞の黒白差と、横縞の黒白差 縦縞の黒白差と、横縞の黒白差

 縦縞の上にポリオミノを置いたときの「黒マスの数と白マスの数の差」を a、横縞の上にポリオミノを置いたときの「黒マスの数と白マスの数の差」を b とします。

 盤上に配置したポリオミノ x に対する a,b の組合せを M[x]=[a,b] であらわすことにします。
 [a,b] は平行移動・裏返しに対して不変です。しかし、90 度回転すると a,b の値が入れ替わります。

 そこで、テトロミノを90度回転したものを区別するため、上図のように I,L,S,T は添え字をつけて I1,I2,L1,L2,S1,S2,T1,T2 として2種類を区別することにします。

 各テトロミノについて表にすると次のとおり。

M[I1],M[I2]M[O]M[L1],M[L2]M[S1],M[S2]M[T1],M[T2]
[4,0],[0,4][0,0][2,2],[2,2][0,0],[0,0][0,2],[2,0]

 もう少しシンプルにすることができそうです。 [a,b] のカッコ内を降順に並べ替えて一意にしたものをMx=c,dのように書くことにします。
 表にすると

MIMOMLMSMT
4,00,02,20,02,0

Mx はポリオミノ x に対する不変量となっています。

注意

 ここからは、M[x]Mx が記事の中に混在してちょっと読みにくいかもしれません(すいません)。

 M[x] は「[,]の順番がある方」、 Mx は「順番がない方」と思っていただければわかりやすいかと思います。

 しばらくは、主に M[x] ([,]の順番がある方)を使って議論していきます。

偶数ミノ、奇数ミノとの関係

 ここで、M[偶数ミノ]M[奇数ミノ] について、次が成り立つことを確認しておきます。

M[偶数ミノ]=[偶数,偶数]
M[奇数ミノ]=[奇数,奇数]

偶数を2つの整数に分けるとその偶奇が一致するから、その2つに分けた整数の差は偶数となる。
また、奇数を2つの整数に分けるとその偶奇は一致しないから、その2つに分けた整数の差も奇数となる。

ポリオミノの「引き算」との関係

次に、ポリオミノの「引き算」をすると、M[x] がどのように変化するか考えてみましょう。

M[x]=[a,b],M[y]=[c,d] とします。ポリオミノx からポリオミノ y を削ってできるポリオミノを「xy」で表すと、

M[xy]=[|a±c|,|b±d|]

※ 複号はx,yにより定まる

となります。
 複号になっているのは、a,b,c,d のそれぞれが「黒マスの数 - 白マスの数」と「白マスの数 - 黒マスの数」の どちらになっているかで式が変化するためです。

具体例で考える

 今、ポリオミノx からポリオミノ y を削ると I1テトロミノができ、ポリオミノy の位置や向きを変えたポリオミノy を削ると Oテトロミノができたとします。

(※ ここでいろいろなテトロミノの中から I1テトロミノとOテトロミノを選択したのにはちゃんと理由があります。読み進めていただければその理由がわかりますのでとりあえず「なぜこの組合せなのか」は気にしないでください。)

I_1テトロミノとOテトロミノを削り出すポリオミノの例 I_1テトロミノとOテトロミノを削り出すポリオミノの例

このとき、

M[x]=[a,b],M[y]=[c,d]

だったととすると、

 M[y]=[c,d]又は[d,c]

となります。

 そこで場合分けして考えます。。

M[y]=[c,d] の場合

{M[xy]=[|a±c|,|b±d|]M[xy]=[|a±c|,|b±d|]M[I1]=[4,0]M[O]=[0,0]
を使って式を立てると

{|a±c|=4|a±c|=0|b±d|=0|b±d|=0

これらすべてを満たす必要があります。(a,b,c,d は非負整数)

前半2行の複号が一致すると解なし。複号が異なる場合は第2行よりa=c となりこれを第1行に代入して|2a|=4 より(a,c)=(2,2)

補題3より、x,y が偶数ミノでなければならないことがわかります。

M[y]=[d,c] の場合

{M[xy]=[|a±c|,|b±d|]M[xy]=[|a±d|,|b±c|]M[I1]=[4,0]M[O]=[0,0]
を使って式を立てると

{|a±c|=4|a±d|=0|b±d|=0|b±c|=0

 これらすべてを満たす必要があります。(a,b,c,d は非負整数)
 下3行 よりa=b=c=d がわかり、第1行に代入すると a=b=c=d=2 となります。

 したがって、補題 3 より x,y が偶数ミノでなければならないことがわかります。

その2 まとめ

 ここまでで、I1テトロミノと、Oテトロミノをどちらも削り出せるポリオミノの組合せは、どちらも偶数ミノでなければならないことがわかりました。

 MI2=MI1=4,0
 MS=MO=0,0

 ですから、「I2テトロミノとOテトロミノ」とか、「IテトロミノとSテトロミノ」についても全く同じ議論ができます。

 まとめると、結局、次のことがわかったことになります。

Iテトロミノ』と、『Oテトロミノ 又は Sテトロミノ』をどちらも削り出せるポリオミノの組合せは、どちらも偶数ミノでなければならない

解答と追加問題

これで、この問題の答えができました!

(解答)
引き算でテトロミノ5種を作ることができるようなポリオミノの組は存在しない

Tテトロミノと、T以外のテトロミノをどちらも削り出せるポリオミノの組合せは、「奇数ミノと奇数ミノ」でなければならない(定理2より)

Iテトロミノ』と、『Oテトロミノ 又は Sテトロミノ』をどちらも削り出せるポリオミノの組合せは、どちらも偶数ミノでなければならない(定理4より)

したがって、引き算でテトロミノ 5 種を作ることができるようなポリオミノの組は存在しない。

 ついに答えが出ました!
 「条件を満たすポリオミノの組合せは存在しない」!

 めでたしめでたし。

 ……

 ……

 ……のはずだったのですが。

 みよしじゅんいち (@nosiika)さんから衝撃の追加問題が。

まだ十分理解できてはいないのですが、パリティ違いのTを除外した、I、L、O、Sができる可能性はありそうな感じですか?

 つまり、「5種全部は不可能だとしても、I,O,L,S4 種に限定すれば削り出せるポリオミノの組合せはあるだろうか」ということです。

 先ほどと同様に考えると、もしそのようなポリオミノの組合せ x,y が存在するならば、

 Mx=My=4,2
   又は
 Mx=My=2,0

 でなければいけないことまではわかりますが、そのような x,y は本当に存在するのでしょうか。
 試行錯誤したところでは、おそらく「不可能」と予想しています……が、まだ証明はできていません。

おわりに

 というわけで、私が主に日曜数学活動をしているTwitter上での成果の一部をまとめさせていただきました。

 当初の問題には答えが出てスッキリしましたが、最後の追加問題はまだ答えが出いません。
 よろしければ皆さんもいっしょに考えてみませんか?

 「条件を満たすポリオミノの組合せを発見する」か「条件を満たすポリオミノの組合せが存在しないことを証明する」か、どちらのルートを進むべきかすらまだ予想できないホットな話題です。

 特に期限もないので好きな時に好きなだけ考えられるのが日曜数学の醍醐味です。
 これを読んだ皆さんも是非素敵な日曜数学ライフを送ってくださいね!

この記事の参考にした主なツイートたち

 最後に、この記事の元ネタとなったツイートたちの一部をご紹介します。みよしじゅんいち (@nosiika)さん、Taichi AOKI (@aoki_taichi)さん、TokusiN (@toku51n)さんとのやり取りがなければこの記事はできませんでした。ありがとうございました!  

参考文献

投稿日:20221211
OptHub AI Competition

この記事を高評価した人

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

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

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

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

投稿者

apu_yokai
apu_yokai
488
66818

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. はじめに
  2. 不変量とは
  3. とある問題
  4. 試行錯誤してみる
  5. 不変量を使う(その1)
  6. その1のまとめ
  7. 不変量を使う(その2)
  8. 具体例で考える
  9. その2 まとめ
  10. 解答と追加問題
  11. おわりに
  12. 参考文献