RSS

 

RSS


ポリキューブで直方体

  • いわいまさか
  • at 2020/10/24 11:20:13


テキソミノをポリキューブにしたものがある。
1個赤いのは特に意味はなく、パーツが足らなくなったからw


ひねってもしょうがないので、問題にするなら。。。
この同じパーツを何個か使って、直方体にして。
ということで。

懇話会メンバー白川さん提供の情報から。



パズル:7と7 フとク 問題

  • いわいまさか
  • at 2020/10/24 09:01:46


デジタル数字には、
フみたいな7とクみたいな7がある。

写真の説明はありません。

クみたいな7は世界的には一般的ではな、日本(などいくつかの国)の方言みたいなものなのだと。

ということなのだが、ここで、パズルっぽい問題で
上の図二つの7の公倍図形はどうなるだろうか?

最小
裏返しなし
無限パタン



ツインスネークSCIP その5

  • いわいまさか
  • at 2020/10/15 08:21:19


で、できたのがこの問題文。
twinsnake.lp
ボム付きutf
lpというフォーマットで、SCIP以外にも使えるという話もあるが、自分はまだ未経験。
これをSCIPにかけると答えが出る。
問題でいうと、もともとの
1212
3313
2121
2132
向け
twinsnake.lp内のinitial conditions部分を書きかえれば、他の表出数字を解くのにも使える。

別解を解くためには、1個出た答えとバッティングしないように式を足して、もう一度、SCIPにかける。

今回の問題は、思い込みで唯一解だと思っていたが。
解いてみると、3解あった。オー、そうなんか。
蛇の模様でいうと、
32132112
12312312
21321231

//////////////////////////////////////////////

自分で作った問題を掲載 4問
えーー、唯一解


下の二つは4を2個入りにしたが、それは問題を手で解くときの足掛かりにはなるよね。

おわり


ツインスネークSCIP その4

  • いわいまさか
  • at 2020/10/13 07:47:45


ツインスネークSCIPのその4。

式①式②式③式④を立ててSCIPにかけると、8個長さの蛇2匹が盤面におさまるところまでは解ける。
が、まだ、表出数字を全然使ってない。
表出数字の条件と蛇Aと蛇Bで数字が一致していることを書いていけば、出来上がり。

式⑤ 表出数字を記載
初期条件的な式。
c00_n1=1    c00の表出数字は1だ
c01_n2=1  c01の表出数字は2だ
c02_n1=1  
・・・・・
c33_n2=1
16個。

式⑥ バイナリ変数から持ち数字への変換
c00_n1 = 1 -> c00_n = 1
c00_n2 = 1 -> c00_n = 2
c00_n3 = 1 -> c00_n = 3
c00_n4 = 1 -> c00_n = 4
c00_n5 = 1 -> c00_n = 5
表出数字を仮に1~5としているので全部で80個の式
矢印(->)はSCIPで使用可能な条件文、「左側が成り立っているなら、右側も成り立っていますよ」ということ。

実は、表出数字が全部表出していると式⑤の方はいらなくて、持ち数字から指定していけばよい。だが、「セルが未記入でそこに好きな数字をいれてよい」拡張ルールのために式⑤式⑥の手厚い体制にした。

式⑦ 持ち数字の蛇パーツへの割り当て
a0_c00 = 1 -> a0_b0_n = c00_n
a0がc00にあるならば、a0とb0の持ち数字はc00の持ち数字と同じになる。そりゃそうだ。
この式が全部で256個

a0とb0の持ち数字がいっしょなので、a0_n = b0_n としたいところだが、最初から1個の変数a0_b0_n でまとめてしまっている。同じなので。

以上で解が出る。

つづく


ツインスネークSCIP その3

  • いわいまさか
  • at 2020/10/11 22:34:44


ツインスネークSCIPのその3。

式③ 蛇パーツa3が、マス目c11にがあれば、そこに向かうリンクがある。(左の図)

式でいえば、
a3_c11 - a2_c01_a3_c11 - a2_c21_a3_c11 - a2_c10_a3_c11 - a2_c12_a3_c11 = 0

変数⑤ここで、a2_c01_a3_c11は
「a2がc01にあってa3がc11にある」というバイナリ変数。

式の意味合いは、
a2_c11 が0 なら
a2_c01_a3_c11 も 
a2_c21_a3_c11 も
a2_c10_a3_c11 も
a2_c12_a3_c11 も 0。

a2_c11 が1 なら
a2_c01_a3_c11 か 
a2_c21_a3_c11 か
a2_c10_a3_c11 か
a2_c12_a3_c11 のどれかが 1。

これを全ての蛇パーツの全てのマス目において立式。

式④ 蛇パーツa3が、マス目c11にがあれば、そこから出ていくリンクがある。(右の図)
a3_c11 - a3_c11_a4_c01 - a3_c11_a4_c21 - a3_c11_a4_c10 - a3_c11_a4_c12 = 0
式の成り立ちは式③と同様。。。
これも、全ての蛇パーツの全てのマス目において立式。

蛇の頭に対する式③はなし、
蛇の尾に対する式④はなし、
マス目が端っこだと、必ずしもリンク候補が4つ全部ない。

ここでちょっとポイント
 c01_c11 というような、「c01からc11に蛇が通っている」変数を導入する手もあった。が、その場合は、蛇のどのパーツがそこを通っているかを「なにか」でハンドリングしなければならなく、ちょい面倒くさいように思ったので、式③式④を採用。

つづく。



記事一覧へ