ヘプタモンド・パズルを解く(DLX package 使用)では色々なヘプタモンド・パズルの解を求めました。でもそのピースのデータは手入力だったので、これがなんとか自動で求められないか考えてみました。
ポリイアモンドの種類と数
ポリアモンド(Wikipedia)によると種類は$N=10$まで紹介されてます。この数のポリイアモンドを求められるか挑戦したいと思います。
ポリイアモンドの種類を求めるアルゴリズム
以下の方針で考えました、要は考えられるすべてを作ってみて回転・鏡映で同じにならないものをリストするという力技です。
- $n=1$は正三角形一つ
- $n-1$のポリイアモンドの一つの辺に正三角形を一つ足す
- それらをを12通りに回転・鏡映したものが既になければ集合に加える
- それをすべての辺について行う
n=8 オクタモンドのピース 66個
既にn=7までは前回の投稿で分かっているので、n=8 の66個を表示します。
n=9 ノニアモンドのピース 160個
n=10 デシアモンドのピース 448個
n=11 ピース 1186個
n=12 ピース 3334個
n=18までのピースの数
さすがにこれ以上は表示してもいみがないので、数だけを以下のように求めました。値はOEIS000577と同じになっていることが確認出来ました。
n |
ピースの数 |
2 |
1 |
3 |
1 |
4 |
3 |
5 |
4 |
6 |
12 |
7 |
24 |
8 |
66 |
9 |
160 |
10 |
448 |
11 |
1186 |
12 |
3334 |
13 |
9235 |
14 |
26166 |
15 |
73983 |
16 |
211297 |
17 |
604107 |
18 |
1736324 |