このパズルでは、上の「ミジンコ」のような形をしたピースだけが特殊であ る。他の全てのピースは、裏表同じ形であるが、このピースだけは、裏表別に なってしまう。このピースは、したがって、12通りの置き方がある。他のは、 高々6通りである。
本フラワーパズルは、盤面全体の対称性は、全部で4通りある。この対称性 を取り除くために、「ミジンコ」に12/4=3通りの置き方しか許していな い。
さて、以上がアルゴリズムの解説以前の前提である。
今日はちょっと忙しいので、じっくり解説が書けないのであるが、アルゴリ ズムのヒントだけは書いておこう。それは、○の部分ではなく、○に囲まれた 凹になった△の部分である。爪とか刺というような呼び方をしているが、ここ に注目すると、私のアルゴリズムはすぐ分かる。
今すぐ理解したいかたは、 Java soureceを解読していただきたい。そうす れば、手で入れても、30秒とか1分もあれば、楽々と入れられることが判明 するはずだ。
1996年5月16日
このパズルは、12種類13個のピース(駒)のデータと、そのピースを入 れるための盤から成り立っている。ここでは、まず、ピースについての解説を 行なう。
下の表にまとめてあるので説明の必要もないかも知れないが、ご丁寧にも説 明も加えていくことにする。
|
|
たぶん、もう分かったと思うが、私はこの表の中の、宿題にした部分を利用 してこのパズルをまたたくまに完成することができる訳である。他人が途中ま で入れているのをみて、「それは、もうすでに不可能ですよ」と丁寧にも忠告 してあげられるのは、この宿題の部分を利用しているからなのである。
そして、いうまでもないことだが、このパズルをJavaでやっても楽々解けて しまうというか、無駄の非常に少ない思考錯誤しかしていないのは、以上の理 由によるのである。
1996年5月17日
さて、今日は、「盤」の方について解説をしよう。

| 周囲の○の数 | 刺の数 | 説明 |
| 1 | 16 | 1つの○にのに接する刺 (外周の尖っている部分の刺) |
| 2 | 10 | 2つの○にのに接する刺 (外周のへこんでいる部分の刺) |
| 3 | 14 | 3方向を○で囲まれた刺 (中央部分の刺) |
盤は、13個の○と、40個の刺からなる。その刺には、周囲にいくつの○ が接しているかにより、3通りに分類できる。○が1個、2個、あるいは3個 接しているかによって分ける。○が0個接触というのは無い。
総刺数は、盤の方でも40になる。ピースの刺の数も総計40になる。
さて、接触している○が1つしかない刺は、その刺の属する○は無条件に決 定する。どんなピースが唯一接触する○に置かれようと、かならずその○に置 かれたピースで、盤の刺は覆われる。
次に、接触している○が2つ場合である。このとき、この盤の刺を覆うのは どちらの○に入れられたピースかは未定である。
さらに、接触している○が3つ場合である。このとき、この盤の刺を覆うの は、接触している3つの○のうちのいずれかに入れられたピースで覆われる。
さて、もう以上の説明で、分かった人は分かったと思うので、説明を止めて もよいのであるが、まあ、一応丁寧をモットーとしているので、あえて説明を 続けよう。
周囲の○の数が、1と2の刺について注目してみよう。すると、それらの刺 の総数は16+10=26である。要するに、外周に接している刺の数が全部 で26ということだ。
もう、これで、分かったよね。今日の表と、昨日の表を比較すれば、「な〜 んだ、こんなことだったのか」と分かると思う。だから、後は、自分でちょっ と考えてね。
それでも、どうしても分からなかった人で、更に知りたい方、知らないと 仕事に差障りが出る方、不眠症になりそうな方、 fuji@pro.or.jpまでメール下さい。 さらなる説明の希望者が大勢いた場合には、さらに解説をしましょう。
1996年5月18日