先日投稿した問題
の解説をしとうございます.
問題文
正整数 について, の盤面を考えます.各マスは白もしくは黒で着色されています.
である正整数 について,上から 行目,左から 列目のマスを とします.また,盤面のマスに対する操作を次で定めます:
- のマスの白黒を反転させる.
- がそれぞれ盤面内にあるならば,それらのマスの白黒を反転させる.
各マスが白もしくは黒で塗られている初期状態から,この操作を有限回施して,全てのマスを白色にすることができるような初期状態を良い配置とします.
1. のとき,良い配置でないものは存在しますか.
2. のとき,良い配置でないものは存在しますか.
3. のとき,良い配置でないものは存在しますか.
下にスクロールすると解説が始まります.
↓
↓
↓
解説
以下解説ですが,超絶ざっくばらんに書いてあって文章が読みづらい上に,理論に穴があるかもしれません.ご理解の上どうか温かい目で見てください.
まず問題の設定を確認しましょう.
ひとまずで考えてみます.
のときの初期状態の例
のときの盤面を1つ持ってきました.に操作を行ってみます.は存在しない(盤面の外)ので,の白黒を反転させます.
への操作
こんな具合で複数のマス目に操作を行ってすべてのマスを白色にしていきます.
このようなパズルは,「
ライツアウト
」という名前がついているそうです.タメになったね~
ちなみに,この初期配置だと,の5つのマスに操作を行うことで,盤面のすべてのマスを白色にすることができます.よって,この初期配置は良い配置です.
操作を行う順番は関係なく,同じマスに対して2回操作を行うことは,そのマスに対して操作を行っていないことと同値です.
唐突ではありますがの盤面が与えられたとき,黒で塗られたマスを1,白で塗られたマスを0とすれば,盤面1つ1つに対して,上の次元ベクトルを一意に定めることができます.
例えば,図1の配置は,
とすることができます.
さらに,盤面の各マスに対する操作は,色を反転させるマスに対応する成分をとしてそれ以外をにした次ベクトルを足す上の演算と定められます.
例えば,図2の操作は,
となり,確かに対応することが分かります.
盤面の初期配置に対応するベクトルを,盤面の各マスに対する操作を表すベクトルをそれぞれとすると,
与えられた盤面に対して,どのマスに対して操作を行えば良いかは,として,有限体上での方程式
をについて解く問題に帰着できます.(多分)
この連立方程式の解が一意に定まることは,操作に対応するベクトルを並べたである行列
が正則であることと同値です.
が正則であるかを調べるために,行列式を求めてみます.(であることに注意.)
あるマスに対する操作を表すベクトルを考えると,隣り合うマスを表す成分がとなり,を構成するベクトルは,左上のマスから順番に並べているため,は対称行列となりますね.
例えば,のとき,
であるため,確かに対称行列となっています.
定義から行列式を計算することを考えます.
次対照群を,の成分を,置換をで表すと,
です.
であるため,置換の符号については考える必要はありません.
よって,の成分から,行と列が重複しないようにを選ぶ方法の個数を調べることで行列式を求められます.
また,対称行列であることから,対角成分に対して非対称な成分の選び方が偶数通り存在するため,対称な成分の選び方の個数の偶奇を調べるだけでOKです.
この選び方を定めるの置換全体の集合をとします.
ここで,少し天下り的ではありますが次の問題を考えます.
正の整数について,の正方形のマス目に,のタイルをいくつか置く方法の個数の偶奇を考える.
タイルは回転させることができ,タイルを置かないマスがあっても良いものとする.
ただし,タイルをつも置かないものもカウントし,回転や反転によって同じ敷き詰め方にできるものも区別する.
上から行目,左から行目のマスをとします.
また,あるタイルに対して,タイルが配置されているつのマスの組をと表します.
例えば,のとき,タイルの置き方の例を下に示します.
タイルの置き方の一例
この置き方はと書くことができます.
置き方に対して,を,
と定めると,これはの対角成分に対して対称な成分の選び方です.
一般に,にタイルを置いたとき,とを入れ替えるようなを定めると
実はこのタイルの敷き詰め方一つ一つに対して,対応する置換が一意に定まります!
よって,はこのようなタイルの置き方の方法の個数の偶奇を調べることで求めることができますね.
が奇数のときを考えます.列目に対して非対称な置き方に対して,左右反転させた置き方が存在するため,非対称な置き方全体の個数は偶数個です.
以下では左右対称な置き方の個数を考えます,
のような置き方は左右非対称であるため,列目をまたぐような置き方は考えません.
よって,列目上のタイルの置き方と,それ以外の部分でのタイルの置き方に分けて数えればOKですね.
列目上のタイルの置き方についてですが,これはの盤面にタイルを置くことと同じです.この置き方の個数をとし,とを考えることで,
という漸化式が成り立ちますね.(この辺は有名問題なのでざっくりいきます)
見るからにこれはフィボナッチ数列です.(とした場合のもの)
フィボナッチ数の有名事実として,次が成り立ちます.
が奇数であることとあわせて,のときは,列目上のタイルの置き方を考えた時点で,タイルの置き方の個数が偶数通りであることが確定します.よって,であり,は正則ではありません.そのため,のときのライツアウトについて,良い配置ではないものが存在します.
例えば,のとき,下のライツアウトは,どのように操作を行ったとしても,解くことができません.
のときの可解でない盤面の例
次に,列目のタイルの置き方の個数が奇数個であるようなについて考えます.
まず,の場合ですが,あきらかに置き方の個数は通りです.
の場合を考えます.このとき,盤面は真ん中の十字部分とつのの盤面に分けることができます.の盤面についてはタイルの置き方が奇数通り,の部分についてはであるため,置き方は奇数通りです.よって,の盤面も置き方は奇数通りです.
のとき,4つの正方形と十字の盤面に分けて考えられる.
このような要領で,からスタートして,
の盤面つと,の盤面つと,の盤面を用いての盤面を帰納的に作ったとき,一辺の長さはで表されます.なので,全てのに対しての盤面のタイルの配置の方法は奇数通りです.
そのため,は正則であり,のときのライツアウトは,つねに良い配置となります.
の盤面は,の盤面つとの盤面つと,の盤面を用いて分解できる.
今の議論は,を奇数として盤面の分解を考えました.そのため,辺の長さが偶数マスのときは,上記の分解は行えません.
構成する最小の盤面をとして考えましたが,例えばのときはどうなるでしょうか.つまり,辺の長さは
で表される数列(です)に含まれています.
のとき,先ほどの分解を進めると,の盤面が現れるため,のタイルの置き方を考えます.例によって,左右対称かつ回転対称な置き方しか考えないため,考えられる配置は以下の通りだけです!
すべての対称なタイルの置き方(これ以外の置き方は反転や回転によって一致する偶数個の組みができます)
よって,の場合は,タイルの置き方は偶数個であって,は正則ではありません.そのためのライツアウトについて,良い配置ではないものが存在します!
のときは,盤面の分解を繰り返すとの盤面が表れて,この置き方が偶数通りであるため,すべてについて,は正則ではありません.そのため,この場合ライツアウトに良い配置でないものが存在します.
解説おわり
いかがでしたか?(書くのつかれた...)(読むのも疲れたと思います)
読みづらい文章であったと思いますが,ここまで読んでくださりありがとうございました.
シンプルなパズルから線形代数につながって,タイルの置き方の組み合わせの議論にまで話が広がるのが面白かったです.
なお,上の文章を読むと分かりますが,が偶数であるときはまだ結論を出せていません.この方法だと上手くいかないのかもしれない...ごにょごにょ...
以下余談になります.
私はこれについて半年近く考えて上の結論を出したのですが,
ここまでウッキウキで書き終わってから,この記事とほぼ同じ内容の動画が見つかりました(既出だった)
そちらの方が億倍分かりやすかったので,そちらの視聴をお勧めします.(参考文献に載せました)(先駆者様ごめんなさい.)
ライツアウト部分を取っ払うと,線形代数が不要になり,単純にタイルの敷き詰め方の個数の偶奇を求める問題になります.
この部分をうまいこと改変してOMC用の問題が作れるんじゃないかという安直な考えのもと作問をして,没にした問題を最後に掲載して終わりたいと思います.
次のように数列 を定めます.
を満たすような正整数 に対して,
の正方形のマスを, の長方形と の正方形で敷き詰めることを考えます.
このとき,敷き詰め方が偶数通りであるような の総和を求めてください.
ただし,反転や回転によって同じ配置になるものも区別します.
気持ち悪いですね~
じゃあね~