◆熊本県の中学校3年生 ニャン さんからの解答
【問題1】
5手です
【問題2】
16手です
【おまけ1】
nが奇数のときn×nの黒石を全て裏返すのは最短でn手です。
(1,1)、(2,1)、…(n,1)のn手になります。
【おまけ2】
nが偶数のときn×nの黒石を全て裏返すのは最短でn×n手です。
(1,1)、(2,1)…かどに来たら曲がって、の繰り返し、1度裏返したところの直前で曲がる…の繰り返しで結果的に全部の駒を1度裏返すので 結果的にn×n手になります。
【おまけ3】
【おまけ1】は縦をn行、横をn'行とします。
縦1行のみを裏返しにしていくと、偶数手の時には、その行は黒、裏返した横の石は全て水色。
(n-1)手のときに(nが奇数ということでn-1は偶数)n行め及びn'行の(2n-1)個のみが黒であり、そこで(n',1)を裏返すと全てが水色になりま す。
よって、(n-1+1)でn手ということになります。
【おまけ2】はおまけ1と同様にしていくとn回裏返したときに(nが偶数ということでn回)n行目のみが黒です。
そこから曲がり(n,n')に来たらまた曲がり (1,n')でまた曲がり、さっき裏返した(1,1)の直前(2,1)で曲がり…というふうに繰り返していくと、全ての石(つまりn×n)を1度裏返すことになります。
よってn×n手ということになります。
◆海外 ブリタ さんからの解答
【問題1】
縦または横に一直線上の駒を一回ずつクリックしていく(順番を問わない)。
(1,1)→(2,1)→(3,1)→(4,1)→(5,1)
(1,3)→(2,3)→(3,3)→(4,3)→(5,3)
(1,3)→(3,3)→(5,3)→(2,3)→(4,3)
など、5手の手順が10×5!通り。
また、全ての駒が少なくとも一回はひっくり返らないといけないので、行数(列数)が5であることを考えれば、5手が最短手。
【問題2】
全ての駒をクリックするような手順(順番を問わない)
(1,1)→(1,3)→(1,4)→(2,1)→(2,3)→ (2,4)→(3,1)→(3,3)→(3,4)→(4,1)→ (4,3)→(4,4)→(1,2)→(2,2)→(3,2)→ (4,2)など、16手の手順が16!通り。
【おまけ3】
全ての駒が少なくとも一回はひっくり返らないといけないので、行数(列数)がnであることを考えれば、n手が最短手。
1.nが奇数の場合、縦または横に一直線上の駒を一回ずつクリックしていく(順番を問わない)と、クリックされた行(または列)以外の駒は全て一回ずつひっくり返るので、青になる。
クリックされた行(または列)の駒はn回(奇数回)ずつひっくり返るので、青になる。
従ってこの手順が最短手で全ての駒を青にすることが出来る。
2.nが偶数の場合
この『オセロの石の裏返し』は、以下(1)〜(2)の性質がある。
(1) クリックする順序を問わない
(2) 同じ駒を複数回クリックした場合は、偶数回であれば0回(クリックしない)、奇数回であれば1回クリックした場合と同様の結果になる。
上記(1)(2)より、n2個の駒のうちどの駒をクリックしてどの駒をクリックしないかという組合せを調べれば、すべての手順を検証することが出来る。
以下、上記(2)の無駄を省いた場合の手順(以下「効率的手順」)のみを考える。
効率的手順の組合せは2^n2通り(クリックする順番を問わない)であり、
いずれの効率的手順の手数も高々n2手である。
また、
(3) ある駒を1回クリックし、その駒の上下左右の駒を全て1回ずつクリックすれば、最初にひっくり返した駒のみを反転することが出来る。
(∵中心の駒は2n-1回(奇数回)ひっくり返され、上下左右の駒は全てn回(偶数回)ひっくり返される)
上記(3)より、任意の駒の色の組合せに対して、ある効率的手順が存在することが分かる。
任意の駒の色の組合せも効率的手順の組合せも同じく2^n2通りであることから、これらは1対1対応している。
ところで、全ての駒を1回ずつクリックする効率的手順は全ての駒を反転させる。
(∵全ての駒は2n回(偶数回)ひっくり返される)
従って、全ての駒を反転させるための効率的手順は、全ての駒を1回ずつクリックする効率的手順のみであり、
その手数はn2手である。
◆滋賀県 松尾 さんからの解答
【問題1】【おまけ1】【おまけ3】
同じ列または行の石を裏返します。n 手必要です。
すべての石を1回は裏返すので、n × n の場合、少なくともn手必要です。
n手に満たない場合、裏返してない行、列が残ります。
奇数の場合、同じ行または列を裏返せばいいので、 n手が最短手数です。
【問題2】【おまけ2】【おまけ3】
すべての石を裏返します。n×n 手必要です。
(1) 2×2 の場合を考えます。4個を水色に変えるには4個すべてを裏返します。
これ以外にありません。(○は水色、×は黒です。)
裏返した順序 ×× --> ○○ --> ×× --> ○× --> ○○ 1 2 ×× ○× ○○ ×× ○○ 3 4(2) 4×4 の場合を考えます。
nが奇数の場合のように、1列または1行を裏返しただけではできません。
他の列、行も裏返す必要があります。
違う列、行を裏返した場合を考えます。
以下は2手進めた時の状態です。
(1,1)(2,2)を裏返しました。○は水色、×は黒です。 ○×○○ ×○○○ ○○×× ○○××ここで、左上の4個(1,1),(1,2),(2,1),(2,2)に注目します。
右下の4個を裏返しても、左上の4個の状態は変わりません。
左下または右上の4個を裏返しても、×は○になりますが、同時に○が×になります。
結局、左上の4個を裏返して○にそろえるしかありません。
そろえるには 2×2の場合と同じです。
全てを裏返すので 4手必要です。
この場合は(1,2),(2,1)を裏返します。
以下のようになります。
○○×× ○○×× ×××× ××××裏返した石以外は、裏返されてないか、2回裏返されてるので×(黒)のままです。
○○○× ○○○× ○○○○ ××○×ここでは、右下の4個、(3,3),(3,4),(4,3),(4,4)に注目します。
同じように残りの2×2の2ブロックをすべて裏返して、すべての石が○になります。
(3) nが6以上の偶数の場合も同じです。
結局、すべての石を裏返す必要があり、最短の手数はn×nとなります。
なお、2×2を隣合わせの石で考えましたが、離れていても同じです。
◆神奈川県 アンパンマン さんからの解答
【問題1】
(2,1)→(2,2)→(2,3)→(2,4)→(2,5)→
【問題2】
(1,1)→(1,2)→(1,3)→(1,4)→(4,1)→ (4,2)→(4,3)→(4,4)→(2,1)→(2,2)→ (2,3)→(2,4)→(3,1)→(3,2)→(3,3)→ (3,4)→【おまけ1】
n手(列または行のすべてのマスを押す、順番は関係ない)
回答数=2n
【おまけ2】
n2手(列または行のすべてのマスを押す、順番は関係ない)
回答数=1
【おまけ3】
●奇数のときの最短の理由
k回(k<n)押して、押した枡目を(a_1,b_1),...,(a_k,b_k)とする。
M={1,...,n}、A={a_1,a_2,...,a_k}、B={b_1,b_2,...,b_k}とすると
(M-A)×(M-B)のマスは押されないので、ひっくり返されていないことになる。
矛盾。
よって少なくともn手が必要。
n手の例が見つかったので、nは最小回数である。
●偶数の場合の最短手数の理由
偶数の場合、どのマスでも、そのマスの行と列にあるすべて押すと、
そのマスだけひっくり返される(2n-1回)。
まず、次の二つのことが自明である(証明を省略)。
Lemma1.マスを2回押すと状態が変わらない
Lemma2.マスの押す順番が関係ない
最短手数は上記の手法で一つだけのマスをひっくり返させる。
Lemma1,2により、次の方法で回数を減らす。
1.押す回数が偶数の場合のマスは押さないことにする
2.押す回数が奇数の場合、マスを押す回数を1回に減らす
これにより、最短手数が得られる。
nが奇数の場合どのマスの押す回数も奇数(2n-1)であるため、すべてのマスを一回ずつを押すのが最短手数になる。
◆愛知県 Y.M.Ojisan さんからの解答
【問題1】 5手
(1,1)→(1,2)→(1,3)→(1,4)→(1,5)→
【問題2】 16手
(1,1)→(1,2)→(1,3)→(1,4)→(2,1)→(2,2)→(2,3)→(2,4)→(3,1)→(3,2)→
(3,3)→(3,4)→(4,1)→(4,2)→(4,3)→(4,4)→
【おまけ1】 n手
手順は上辺一行返し。
(1,1)→(1,2)→(1,3)→〜→(1,n−1)→(1,n)
【おまけ2】 n2手
手順は全石返し。
(1,1)→(1,2)→(1,3)→〜→(1,n−1)→(1,n)→ (2,1)→(2,2)→(2,3)→〜→(2,n−1)→(2,n)→ ↓ (n,1)→(n,2)→(n,3)→〜→(n,n−1)→(n,n)【おまけ3】
(1) 奇数の場合
十分条件:
上辺一行を返せば各列の2行目以下が裏になる。
また上辺一行は奇数回の返しが発生するので裏になる。
必要条件:
n未満の返しでは、少なくとも一行は返した石のない行がある。
列も同様である。
よってその交点にある石は表のままであり、n未満では不可能である。
(2) 偶数の場合
十分条件:
全石を返せば、各石につき、2n−1 回=奇数回の返しがあり、全て裏にすることができる。
必要条件:
全て表の状態をφ、全て裏をα、全て返す手順(実際は順序に拠らないのでパターンである)をAとする。
さらに、返す操作実行を^で表すと、十分条件は φ^A=α とあらわされる。
また手順数は #A=n2 等と表記することとする。
(注記:^は排他論理和を模倣している)
いま φ^B=α である Bがあって #B<n2とする。
問題の対称性から、Bをp行回転シフトした B↑p もまた
φ^(B↑p)=α である。
よって、nは偶数なので
C= | n Λ p=1 |
(B↑p) とおくとき φ^C=φ である。 |
ここで Λは p=1〜nまでの 連続^演算を表すとする。
Bのある一行(k行)の返しの数を m=#Bk,* とすると、
対応するCの行の返し数は mn=#Ck,*であり、C生成式の対称性からCの各位置の返し数は m である。
実行上の操作は m の偶奇性のみに依存する。
したがって、Cは各行において全て返すか、返さないかのいずれかでと等価である。
さらに行の交換を行えば、上から何行かのみ全て返す手順である。
その結果、得られる石のパターンは返し方(つまりC)ないしその表裏反転と同じパターンが必ず得られる。
一方、φ^C=φでなければならない。
従って、 m は全ての行で偶数(=返さない)でなければならない。
列方向も同様である。
#B<n2の場合、どこかに返していない位置がある。
その位置を通る行、列を考えるとき、いずれも返し数は偶数であるから、その位置は裏にはならい。
即ち φ^B≠αである。
よって #B=n2でなければならない。
◆東京都 明 さんからの解答
【問題1】
(1,1)→(1,2)→(1,3)→(1,4)→(1,5)
【問題2】
(1,1)→(1,2)→(1,3)→(1,4)→(2,1)→ (2,2)→(2,3)→(2,4)→(3,1)→(3,2)→ (3,3)→(3,4)→(4,1)→(4,2)→(4,3)→ (4,4)【おまけ1】
nが奇数の時、同一列、もしくは同一行のn個の駒を反転することにより、駒を全て裏にできます。
このn手が最短手数です。
【おまけ2】
nが偶数の時、n×nのすべての駒を1回ずつ反転することにより、駒を全て裏にできます。
このn×n手が最短手数です。
【おまけ3】
このゲームでは駒を裏返す順番に関わりなく、裏返す駒の場所のみで結果が決まります。
したがって、同一の駒を2回裏返す手はありません。
nが奇数の時、
裏返した駒と同一の行、列を外すことを考えると、n-1回の駒の裏返しでは必ず最低1個の駒が残ることになります。
これはn-1回の駒の裏返しでは、すべての駒を裏返しにできないことを示します。
同一列、もしくは同一行のn個の駒を反転するとすべての駒が裏となります。
したがって、このn手が最短手数となります。
nが偶数の時、
まず、すべての駒を1回ずつ反転させたとき、すべての駒は奇数回反転することになり、すべての駒は裏になります。
1つの駒に注目して、その駒を含めその駒の同一の行、列にある駒を1回ずつ反転させると、注目した駒のみが裏となり、他の駒は元のままです。
したがって、盤面の駒を任意のパターンにすることができて、
パターンの数は2n×nです。
(偶数回駒を反転させるのは全く反転させないことと同じであることに注意)
一方、反転させる駒の選び方も2n×nですので、盤面の駒の任意の裏返しのパターンに対して、反転させる駒のただ1つの選択方法が対応することが判ります。
以上により、すべての駒を1回ずつ反転させることがすべての駒を裏にする最小手数であることが証明されました。
言い換えれば、nが偶数のとき、反転させる駒をn×n次元の一つのベクトルに対応させると、すべての駒で構成されるn×n個のベクトルは一次独立であると言うことができます。
nが奇数のときはn×n個のベクトルは従属関係があり、
従属なベクトルは2(n-1)個となるようです。
ちなみに、盤の縦、横が異なる場合でも、共に偶数の時はすべての駒を反転させることが、すべての駒を裏返しにする最短手数であり、 共に奇数であるときは小さい方の一列を反転させることがすべての駒を裏返しにする最短手数であることを同様に証明できます。
一方が偶数で、他方が奇数の場合は、奇数の一列を反転させることが最短手数のようですが、証明はできていません。
前回回答で証明できていなかった部分についてご報告します。
横(行方向)が奇数、縦(列方向)が偶数の場合の最短手数は一行の駒をすべて反転指定することであることを証明します。
まず1つの行の駒をすべて反転指定すれば盤面の駒はすべて裏になります。
次に1つの行の駒をすべて反転指定しない場合、盤面のすべての駒を裏にすることができないか、最小手数にできないことを示します。
(1)最初の行で反転指定した駒の数が偶数の場合。
この行の駒は表になっているため、すべてを裏にするために各列ごとに少なくとも1つを反転指定しなければなりません。
この場合、1つの行の駒をすべて反転指定した場合より手数が多くなってしまいます。
(2)最初の行で反転指定した駒の数が奇数の場合。
この行の駒はすべて裏になっているので、盤面の残りの列方向で反転指定する駒の数は列ごとに偶数でなくてはなりません。
したがって反転指定する最初の行以外の駒の総数は偶数でなくてはなりません。
最初に戻って、最初の行で反転指定していない駒を含む列を考えると、この列は最初の行の駒を除いて表であり、この列を裏にするためには反転指定する最初の行以外の駒の総数は奇数でなくてはならないことが以下のように示せます。
最初の行で反転指定していない駒を含む列に注目します。
a)この列の駒の反転指定の数が偶数のとき。
この列は最初の行の駒を除いて表であることから、残りの行毎の反転指定の駒の数は奇数でなくてはなりません。
残りの行は奇数のため、反転指定する残りの駒の総数は、列の反転指定の駒を合わせ奇数となります。
b)この列の駒の反転指定の数が奇数のとき。
この列は裏になっていることから、残りの行毎の反転指定の駒の数は偶数でなくてはなりません。
よってこの場合も反転指定する残りの駒の総数は、列の反転指定の駒を合わせ奇数となります。
したがって(2)の場合、盤面のすべての駒を裏にすることはできません。
以上により、横(行方向)が奇数、縦(列方向)が偶数の場合の最短手数は一行の駒をすべて反転指定することであることが証明されました。
また、両方向とも偶数の場合、上記と同様な方法で反転指定される行、または列は、その行または列のすべての駒が反転指定されなければならないことが示されます。
盤面のすべての駒を裏にするため、少なくとも1つの駒は反転指定しなければなりません。
ここからすべての行、列のすべての駒が反転指定されなければならないことが示されます。
全体の駒を反転指定すれば盤面のすべての駒が裏となることから、この方法が唯1つの手であることが証明できました。
縦横とも偶数の場合、反転指定される行、または列は、その行または列のすべての駒が反転指定されなければならないことの証明。
(1)最初の行で反転指定した駒の数が偶数の場合。
この行の駒は表になっているため、すべてを裏にするために各列ごとに奇数の駒を反転指定しなければなりません。
列の数は偶数のため、反転指定する残りの駒の総数は偶数でなくてはなりません。
最初に戻って、最初の行で反転指定していない駒を含む列を考えると、この列は表であり、この列を裏にするためには反転指定する最初の行以外の駒の総数は奇数でなくてはならないことが以下のように示せます。
最初の行で反転指定していない駒を含む列に注目します。
a)この列の駒の反転指定の数が偶数のとき。
この列は表であることから、残りの行毎の反転指定の駒の数は奇数でなくてはなりません。
残りの行は奇数のため、反転指定する残りの駒の総数は、列の反転指定の駒を含め奇数となります。
b)この列の駒の反転指定の数が奇数のとき。
この列は裏になっていることから、残りの行毎の反転指定の駒の数は偶数でなくてはなりません。
よってこの場合も反転指定する残りの駒の総数は、列の反転指定の駒を含め奇数となります。
したがって(1)の場合、盤面のすべての駒を裏にすることはできません。
(2)最初の行で反転指定した駒の数が奇数の場合。
上の(2)と全く同じに盤面のすべての駒を裏にすることはできないことが示されます。
◆ 問題へもどる
◆ 今週の問題へ