|
カテゴリ:計算
百均で売られている「IQパズル バブル」を、パソコンのEXCELでシュミレーションしてみた。
図-1 これは、上の絵のように10×10の直角三角形の枠に12個の3~5個繋がった玉を全て埋めるものです。 図-2 パソコンで表現するため、各玉はセルのマスを使い、12個の部品にそれぞれ番号を付けます。 色も現物に合わせています。(但し、Webを見ると異なる色のものも有る様です。) 図-3 上図の様に、C(列:0~9)、R(行:0~9)の直角二等辺三角形のマスを用意します。 次に、配置するための表(R:行、C:列)を作ります。 駒は左上から順に右に移動し、右端まで行くと、一段下がり左から右へを繰り返し、最下端まで行く様に表を作り、全ての位置が漏れ無いようにします。 左上の「1」の駒を例にすると、表の1の列に、R0C1,R1C0,R1C1,R1C2,R2C1に駒が有る事を表します。 ここで、R0C0 マスは、1マスだけの空マスで、3駒以上の部品しか無く、入れる事が出来ません。 従って、この位置に「1」の駒を置く事は出来ません。 置く事が出来ない事を識別出来る様に表の最下段には「x」を記入しています・ 途中省略していますが、右上の例を表の2の列に、R0C6,R1C5,R1C6,R1C7,R2C6に駒が有る事を表します。 ここで、R0C7,R0C8,R0C9,R1C8 の4マスに、同じ4マス分の駒「9」「10」「11」を入れる事が出来ません。また3マス分の駒「12」を入れると1マス分余り これも不可となります。 最下段もR8C0,R9C0 の2マス分残り、ここに置く事は不可となります。 図-4 次に「2」の駒についてみてみましょう。 「1」と同様に、左上に配置された時、R0C0,R0C1,R1C1,R2C1,R2C0に駒が有ります。 しかし、R1C0 に1マス分の空きが有り、配置不可となります。 「1」と違うのは、向きに依って形が変わります。 左上から右端へ、一段下がって左から右へを繰り返し、下端まで行くと90°回転しまた左上からを繰り返します。4回繰り返して一巡します。 「2」は4種類ですが、「3」「6」「7」「8」「11」では表裏違うので8種類になります。 図-5 ここで、入力不可となるマスについて纏めます。 これは、複数の駒で形作られる囲まれた空域について見てみます。 1マスの場合は全て不可となります。 2マスの場合も全て不可となります。 3マスの場合、「12」の部品の様にL字で有れば埋められますが、直線状では不可となります。 4マスの場合、「9」~「11」の部品の様で有れば埋められますが、T字型やZ字型では不可となります。 5マスの場合、「1」~「8」の部品の様で有れば埋められますが、T字型やZ字型では不可となります。 6マスの場合は全て不可となります。 これには、1+5、2+6、3+3の二つの駒が必要になります。 1、2マスの駒は有りません。3マスの駒は一つしかないので全て不可となります。 7マスの場合、3+4の二つの駒が必要になります。 直線の7マスは不可ですし、直線6マスのL字は可となります。 この他にも沢山の組合せ次第で色々な形になり、可も不可も有ります。 8マスの場合、3+5、4+4の二つの駒が必要になり、可も不可も有ります。 9マスの場合、4+5の二つの駒が必要になり、可も不可も有ります。 10マスの場合、5+5の二つの駒が必要になり、可も不可も有ります。 11マスの場合、3+3+5、3+4+4の三つの駒で、形によって不可となります。 特に良く起こりそうな 図の形状は不可となります。 12マス以上は、複雑で個別に判断する必要が有ります。 図-6 これからが、EXCELの活用です。 C列に1~12が入っていますが、これが各駒に成ります。 B列に数値を入れると、先に作った表を参照し、玉の座標がE列~N列に表記されます。 具体的には ”E1”セルに =INDEX(表の範囲、行番号(1)、B1) ”F1”セルに =INDEX(表の範囲、行番号(2)、B1) と入れて置き、表を参照してその数値(例ではそれぞれ 3,1)が表示されます。 ”G1”~”N1”も順次どうようです。 更に”D1”セルには、 =INDEX(表の範囲、表の最終行番号、B1) で不可の場合には「X」を表示します。 駒「2」~「12」についても同様です。 この”E1:N1”の表の座標を基に先の図-3に「1」の”U2”セルには、 =IF($B$1="","",IF(($F$1=AB$1)*($G$1=$AA2)+($H$1=AB$1)*($I$1=$AA2)+($J$1=AB$1)*($K$1=$AA2)+($L$1=AB$1)*($M$1=$AA2)+($N$1=AB$1)*($O$1=$AA2)=1,$D$1,"")) 他のセルにもこの式をドラッグコピーします。 結果として、表の座標と一致したセルには、”1”が表示されます。 更に各セルには条件付き書式で、数値に応じた色を表示させています。 同様に、「2」~「12」についても同様に作成します。 更に「1」~「12」の各位置毎に纏めた表を作ります。(ここで、表記してませんが ”FD2:FM11”) こうして出来た「1」~「12」の同一位置を寄せ集め、図-6に纏めます。 ”P2”セルに =IF(ES2&EH2&DW2&DL2&DA2&CP2&CE2&BT2&BI2&AX2&AM2&AB2="","",VALUE(ES2&EH2&DW2&DL2&DA2&CP2&CE2&BT2&BI2&AX2&AM2&AB2)) と入力します。 同様に”P2”-”Y2”-”P11”の三角形の範囲にドラッグコピーします。 これで、何の数値も入らないところはブランク、一個だけであればその数値、二つ以上で有ればその数値を並べて表示されます。 ここで重複数値は大きい数値が先に表示されます。 例えば、同じ位置に”3”と”10”が重なる時には”103”、”1”と”2”が重なる時には”21”と表示されます。 (小さい方を先にすると”12”となり、単独の”12”と区別が付か無くなります。) これで、B列の数値を変えると、その行の駒の位置や向きを変更し表示することができます。 なお、A列は各行の最大数値(種類数)です。 また"P13"-"Y13"-”Y4”には、上の三角形の横一列”R2:Y2”を下の三角形の縦一列”Y13:Y4”に表示するなど縦横反転したものを表示しています。 A列の各数値を掛け合わせた数値分の組合せが有る事を意味します。 しかし、それはとんでもない数になります。 これらの組合せを全て調べ、配置不可を取り除けば、残りが全ての答えとなります。 マクロ等で、自動計算することもできますが、それなりに時間が掛かります。 12個全て配置する途中で、先の不可条件等で終了して時間短縮できますが、判別条件が複雑で、返って時間がかかるかもしれません。 そこで、マクロで各数値毎にB列の数値を順次1ずつ増加させ、先の表の最下段に”X"表示のある場合や、重なりが有る場合には次の数値にする様にしました。 EXCELでする事により、UNDOやRIDO、更に過去の状態に簡単に戻す事ができます。 一部の答えですが、それでも300個以上の答えが見つかりました。 ただし、縦横反転や、部分的な入替が多く実質は50個位です。 特に部品「3」と「6」、「4」と「6」、「5」と「9」、「9」と「11」の入替は多数有ります。 訂正 23/11/3 図5をさしかえました。5マスの入力不可について、十字→T 字に変更しました。 お気に入りの記事を「いいね!」で応援しよう
最終更新日
2023.11.03 17:48:08
コメント(0) | コメントを書く |