459467 ランダム
 ホーム | 日記 | プロフィール 【フォローする】 【ログイン】

araさんのブログ

araさんのブログ

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

PR

キーワードサーチ

▼キーワード検索

プロフィール

shukuka1014

shukuka1014

カレンダー

楽天カード

お気に入りブログ

まだ登録されていません

コメント新着

たかだ@ ペーパークラフトの展示のお願い こんばんは。私、関東の山車祭り展という…
aki@ Re:IQパズル バブル4(12/03) この様な書込大変失礼致します。日本も当…
ゆらりくん@ Re:ローカルペーパークラフト(坂戸山車-6)(11/16) 初めて見て感動しました。図面を見てるだ…
matsushima@ Re:ローカルペーパークラフト(兎)(01/07) araさん 初めまして! 川越青年会議所の松…
国民洗脳から目を覚ませ!@ Re:ローカルペパークラフト(サンフランシスコ-5)(10/24) 馬鹿メディアである、テレビ、新聞、週刊…

フリーページ

ニューストピックス

2023.10.09
XML
カテゴリ:計算
百均で売られている「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) | コメントを書く



© Rakuten Group, Inc.