月刊「現代数学」数学パズルにトドメをさす?! 今月のFlash    おまけは→こちら
第38回
2013年 11月号
全てのライトを消せ!(その1) 〜無限ライツアウトの曼陀羅〜
n×nライツアウトに挑戦
Adobe Flash Player を取得

目的

n×nのマス目状に並んだライト兼ボタンを操作して、盤面状のライトを全て消灯してください。

操作方法

あるボタン(ライト)をクリックすると、それ自身と、その上下左右に隣接したライトの点灯/消灯が反転します。

メニュー

New Problem:点灯パターンを更新

Set Lights:点灯パターンを手動で変更

Change Size:盤面サイズを変更
   (n=2〜20)

Hint1:1行目の押下パターン例を表示

Hint2:面全体の押下パターン例を表示

解の存在について

"New Problem"をクリック、もしくは盤面サイズを変更して、点灯パターンが自動で更新された場合は、解の存在する点灯パターンのみ出現しますが、手動で点灯パターンを変更した場合、盤面サイズによっては解の存在しないパターンになる場合があります。

解が存在しない場合、Hint1/2をクリックすると、"No solution is available."と表示されます。

ヒントについて

盤面サイズにより、唯一解となる場合と複数解が存在する場合がありますが、Hint1/2をクリックすると、そのうちの代表解のみを表示します。例えば、5×5の場合は1行目の右から2個のボタンを使用しない解が、4×4の場合は1行目のボタンをどれも使用しない解が、それぞれ代表解となります。

Hint1では、解となる押下パターンのうち上から1行目のみを表示します。(押すべきボタンに一定時間マークが表示されます。) 何も表示されない場合は、代表解においては1行目のボタンは使用しないことを意味します。

掃き出し操作について

ライツアウトでは、1行目を消すように2行目を操作し、次に2行目を消すように3行目を操作するというような手順を繰り返すことで、2行目からn行目までのボタンのみを操作して、1行目からn-1行目までを全て消灯することができます。それを、ここでは「掃き出し操作」と呼びます。

Hint1を使用すると、表示された1行目の押下パターンを操作した後、掃き出し操作を行うことで、簡単に全て消灯することができます。また、ヒントを使用しない場合も、まず掃き出し操作を行ってn行目のパターンだけにすることで、それに対応する1行目の押下パターンを考えやすくなります。

行列を使った解法

本編記事では、掃き出し操作と行列計算を組み合わせた解法を紹介しており、そこで使用する行列はここに公開してあります。記事を参考にしながら試してみましょう。