1.まずは1個用意します
まずは、基となる完成形を1つ挙げます。
図1-1 のナンプレにしましょう。
以下、これを「原型」と呼ぶことにします。
原型にあーでもないこーでもないと加工して、いろんな完成形を作っていこう!
……というわけですね。
2.数字をいろいろ入れ替えて……
まず、すぐに思いつくのは数字の交換ですね。
ナンプレにおいては数字は単なる文字記号なのだから、数字をいろいろ入れ替えてしまえば簡単に別の完成形が作れます。
ちょっと例を挙げてみましょう。
「4→5, 5→6, 6→7, 7→4 と順に入れかえたもの」「1と9を交換したもの」の2つです。
なんか、数字を交換しまくれば完成形は山ほど作れそう!
では、この場合の完成形はいったい何個できるんでしょう?
それを求めるために、こう考えてみます。
まず、原型の1〜9にA〜Iをそれぞれ割り振ります。
図2-2 のようになりました。
そして、まずはAの9マスに同じ数字を入れます。
数字は1〜9どれでもいいので、9通りの入れ方がありますね。
次に、その9通りのそれぞれに対して、Bの9マスに別の数字を入れる。
これは8通りの入れ方がありますね。
そして、その9×8=72通りのそれぞれに対して、Cの9マスに別の数字を入れる。これは7通り。
以下、Dの9マスには6通りの数字が入る。
Eの9マスには5通りの数字が入る。
……。
最後は、Iの9マスには1通りの数字が入る。
こういう入れ方をするわけです。
さぁ、最終的に何通りできるんでしょう?
9×8×7×6×5×4×3×2×1= 362880 通り
うゎ、めっちゃ多い😅
36万通りという膨大な数の完成形ができました。
すげぇな。
3.回転させよう裏返しさせよう
ナンプレ盤面は9×9の正方形です。
ということは、原型を 90°ずつ回転させたり裏返しにしたりしても完成形になるわけですね。
例えば、図3-1 です。
時計回りに 90°回転させたり、上下裏返しにしたり。
この場合は何通りあるんでしょう?
裏返しには上下反転・左右反転の2つがあるんだし、数えるのがちょっと大変?
しかし、その心配は要りません。
なぜなら、上下反転は「180°回転+左右反転」で代用できるからです。
だから、裏返しを考える場合は左右反転だけを数えればOK!
それを踏まえて数えてみましょう。
時計回りに 90°ずつ回転させてできる完成形は4通り。
そのそれぞれに対して左右反転したものを考えると…… 4×2=8通り ですね。
めっちゃ少なっ😅
まぁそりゃそうだ😅
回転と左右反転だけだし😅
4.3ブロック単位で入れ替えてみよう
実は、まだ別の完成形は作れます。
今度は、ブロック3個並んだ3×9領域に目を向けましょう。
その前に、ちょいと用語をご紹介。
ブロック3個分の3×9領域、名前が付いています。
chute です。
「シュート」と読みます。
chute にはタテ長とヨコ長の2種類あります。
タテ長の9×3領域は tower。
ヨコ長の3×9領域は floor。
図4-1 の青色部分は tower ですね。
今、3つの floor にX, Y, Zと名前を付けましょう。
そして、3つの tower にx, y, zと名前を付けます。
実は、「chute を並べ替える」という方法があるんです!
3つの tower を並べ替える。または3つの floor を並べ替えるんです。
例えば、floor をY, Z, Xの順に並べてみる。
これが 図4-2 です。
この盤面、よく見ると……おぉ、これも完成形じゃぁないですか!
この場合は何通りあるんでしょう?
まず、floor X, Y, Zを並べかえる方法は 3×2×1=6通り。
そして、そのそれぞれに対して tower x, y, zを並べかえる方法は6通り。
ということは、
6×6= 36 通り
全部で 36通りできるわけですね。
5.行や列を並べ替えよう
実は、まだまだ完成図は作れます!
今度は、タテ列やヨコ列に注目しましょう。
前セクション4で触れた chute も関わってきます。
18個の列に名前を付けましょう。
ヨコ列にはA〜I、タテ列にはa〜iと名付けます。
そして、ヨコ列同士やタテ列同士を交換したり並べ替えたりしてみる。
こういうことをするわけです。
例えば、ヨコ列を操作してみましょう。
列Aと列Cを入れ替えたり、3列G, H, Iを適当に並べ替える。
そうすると、図5-2 のようになりますね。
この盤面、やっぱりこれも完成形なんです。
いや〜、まだまだ完成形は見つかるもんだ😃
もちろん、タテ列でも同様に成り立ちます。
ただし、注意が1つ。
列の交換と並べ替えは chute 内部で行わなければいけません。
言い換えると、太線をまたいで列を入れ替えたらダメなんです。
例えば、列Bと列Eを入れ替えるのはNG!
太線をまたぐと完成形にはならなくなっちゃうんです。
この場合は何通りあるんでしょう?
まず、列A〜Cを並べ替える方法は 3×2×1=6通りですね。
次に、その6通りそれぞれに対して、列D〜Fを並べ替える方法は6通り。
その6×6=36通りそれぞれに対して、列G〜Iを並べ替える方法は6通り。
以下、列a〜c, d〜f, g〜iも6通りずつあります。
ということは、
6×6×6×6×6×6= 46656 通り
おぉ、久々に膨大な数だ!
6.さぁ全部で何通り?
とりあえず、原型から別の完成形を作る方法はセクション2345の4つが思いつきました。
他にもあるかもしれませんが、とりあえずこの4つの方法によって完成形を何個作れるのかを計算してみましょう。
6-1.大ざっぱに計算してみる
まずは、おさらい。
2の方法だと 362880通り。
3の方法だと 8通り。
4の方法だと 36通り。
5の方法だと 46656通り。
原型に対してこの4つの方法を適度に施せば、新しい完成形ができあがります。
だから、この4数の積が完成形の個数になりそう。
では、計算してみましょう。
362880×8×36×46656 = 4875992432640通り
うゎ、なんかバケモノみたいな数が出てきたぞ😅
わかりにくいから4桁ごとに区切ってみましょう。
4,8759,9243,2640通り。
4兆😅
4兆ですってよ、奥さん!
ただ……、ここで残念なお知らせが。
この4兆個の中にはダブリが山ほどあるんです。
だから「正解は4兆個です」とは言えません。
となると、今度は「そのダブリを取り除くと何個になるのか?」という話になってきますね。
果たして何個なのか?
それを考えてみましょう。
6-2.ダブリを減らしてみる
セクション3では、回転と左右裏返しを説明しましたね。
実は、そのほとんどにダブリがあるんです。
例えば、「左右反転」は「タテ列の入れ替え+ chute の入れ替え」で代用できるんです。
それを説明しましょう。
ここで言う chute とは、tower のことです。
今、各タテ列にa〜iと名前を付け、各 tower をX〜Zと名付けます。
図6-1 ですね。
そして、次の手順を踏んでみましょう。
- 各 tower 内の2列をそれぞれ入れ替える。具体的には、aとcを交換、dとfを交換、gとiを交換する。
- 2つの tower、XとZを入れ替える。
さぁ、どうなるか。
なんと、左右反転した! 図6-2 の通り!
というわけで、左右反転した盤面は4兆個の中でダブっていたんですね。
上下反転も同様です。
「ヨコ列入れ替え+ floor 入れ替え」で代用できる。
セクション3では上下反転をカウントしていないので、上下反転そのものによるダブリは4兆個の中にはありません。が、実は、上下反転で代用できる変形ではダブリが生じています。
例えば、180°回転。
これは「左右反転+上下反転」でも可能です。つまり、「tower, タテ列, floor, ヨコ列を適宜入れ替え」すれば可能なんです。
そして、時計回り 270°回転もそう。
これは 270°=90°+180° と考えて「時計回り 90°回転+左右反転+上下反転」で可能です。
そうなると、3においては「原型」「時計回り 90°回転」以外はどれもダブリが存在していることになる。
3では8通りあったけど、2通りだけを考えれば良いことになりますね。
では、あらためて個数を計算してみましょう。
どうなるかな……?
362880×2×36×46656 = 1218998108160 通り
これでも多いわ😅
4桁ごとに区切っていくと……
1,2189,9810,8160通り。
1兆ですって😅
すげぇな。
6-3.特殊な原型だと……
上記の結果は、あくまで一般的な場合です。
原型の形が特殊だと、結果は変わってきます。
例えば、図6-3。
実は、この配置にはちょいと秘密がありまして。
数字1の配置を時計回りに 90°回転させると、数字2の配置にピッタリ一致するんです。
さらに 90°回転させると、数字3の配置にピッタリ。
さらに 90°回転で数字4にピッタリ。
数字1〜4にはこういう特殊な関係があるんですね。
数字5〜8にも同様の関係があります。
そして、数字9は 90°単位で回転させても同じ配置をしています。
いわば、図6-3 は回転対称(90°対称)のような形をしているわけですね。
実は、この配置だと、ダブリはさらに多くなるんです。
なんと、数字を適宜入れ替えるだけで「時計回り 90°回転」と同じになる!
具体的には次のことを行います。
- 数字1〜4を 1→4, 2→1, 3→2, 4→3 とそれぞれ置き換える。
- 数字5〜8を 5→8, 6→5, 7→6, 8→7 とそれぞれ置き換える。
すると、あら不思議!
図6-4 になったけど、これ、時計回り 90°回転と同じじゃぁないの!
というわけで、「時計回り 90°回転」にもダブリが生じました。
この場合の個数は 362880×1×36×46656= 609499054080通りですね。
それでもめっちゃ多い😅
6100億個だもんなぁ。
一般の場合は約1兆個でしたが、原型に点対称や回転対称の要素が加わっているとさらに個数を減らせます。
もしかしたら、対称形以外でも減らせるかもしれません。
ナンプレの完成形は豊富に存在するので、原型によって最終的な個数はまちまちだということですね。
更新履歴
- 2022. 2. 5.
- 以前公開していたものを加筆して再公開。