図のような0から9を模した7セグメントっぽいピースと枠がある。
枠内に、全てのピースを重ならないように詰めて下さい。
ピースは回転しても裏返しても構いません。
それぞれのサイズは、方眼の通りです。
解答編としましたが、どんな風に考えていくのが望ましいのか、というのを考えてみようかと思う。
まず、この枠の中に詰め込むことは出来るとして、どれくらい隙間が空くのだろうか。
それぞれのピースの面積を調べてみる。
0 | 36 |
1 | 13 |
2 | 30 |
3 | 30 |
4 | 24 |
5 | 30 |
6 | 36 |
7 | 19 |
8 | 42 |
9 | 36 |
合計 | 296 |
枠内 | 388 |
入りそうではあるが、ピースには穴が空いているので、1と7以外は面積4の穴が2個ずつ空いていると考えると、64の穴となるので、かなりシビアだということが解ります。
続いて、枠内の縦22と横18から、数字ピースをそのままの向きで、横には3個並べることは出来るが4個は1や7を使えば出来そうで、縦に3個並べることは出来ない。
つまり、いくつかは横向きにする必要があるということが解る。
仮に、数字ピースの穴は潰さずに残して、出来る限り綺麗に詰めることが出来るのであれば、それが最良解だと考える。
例えば、0の間に横棒、つまり1か7を詰めることで、格子状にしていくということです。
では、それぞれの数字ピースを7セグメントとしてみて、縦棒と横棒の数を数えてみます。
縦 | 横 | |
0 | 4 | 2 |
1 | 2 | 0 |
2 | 2 | 3 |
3 | 2 | 3 |
4 | 3 | 1 |
5 | 2 | 3 |
6 | 3 | 3 |
7 | 2 | 1 |
8 | 4 | 3 |
9 | 3 | 3 |
合計 | 27 | 22 |
枠内 | 25 | 24 |
6や9は縦向きでも横向きでも縦横の数の変化はない。
1つだけ横向きにするとしたら、0、1、4、8のいずれか1つで数が合う。
2つだけ横向きにするとしたら、2、3、5、7のいずれか2つで数が合う。
3つ横向きにするとしたら、いろいろな組み合わせがあるだろう。
0を横向きにし、1か7を0の間に入れるとして、使わなかった1と7の直線が長いところは、必ず枠に接する必要がある。
こういったことを考慮しつつ、ピースを詰めていくと、
こんな解が見つかりました。
上記の図では、2だけを裏返しにしていて、5が2つあるような状態ですね。
他にも、
格子が崩れてはいるが、どうにか詰め込むことも可能だったりもする。
やはり、先の解が美しいと思う。
先の縦横の組み合わせ表から、3つ横向きだけに着目して、縦横の数だけ合わせたとすると、
(0, 2, 7), (0, 2, 8), (0, 3, 7), (0, 3, 8), (0, 5, 7), (0, 5, 8),
(1, 2, 7), (1, 2, 8), (1, 3, 7), (1, 3, 8), (1, 5, 7), (1, 5, 8),
(4, 2, 7), (4, 2, 8), (4, 3, 7), (4, 3, 8), (4, 5, 7), (4, 5, 8),
の18通りに限定される。
また、使われていない6と9は縦向きと固定される。
このことから、3つを横向きにするケースでは、あったとしても解は18通りということになる。
同様な考え方で、横向きにするピースの数で場合分けして考えても良さそうではある。
もし、プログラミングで解を探させようとするならば、n-ミノと違って90˚以外の角があるので、ちょっと面倒だと思う。
プログラミングの方法が思いついたら、全ての解を披露したいとは思う。
ではでは