2ch勢いランキング 全部 1- 最新50

【解答】パズルのプログラミング【作成】


名無しさん@お腹いっぱい。 [] 04/08/14 13:50:7ki1y5sx

パズルの問題をプログラムで解いたり
プログラムで面を作成したりする方法を話し合うスレ。
トコノイタンハ ◆WfuO0J/v7s [] 04/08/14 13:58:hTx1p71T
2
名無しさん@お腹いっぱい。 [sage ポケコンBASICぐらいしかわからねぇ] 04/08/14 14:01:UHcoHh3/
3 PRINT "スリーセブンの3ゲット"
名無しさん@お腹いっぱい。 [sage] 04/08/14 14:03:7ki1y5sx
15パズル、倉庫番、ナンプレ、お絵かきロジック、ライツアウト
ttp://www.ic-net.or.jp/home/takaken/
名無しさん@お腹いっぱい。 [sage] 04/08/14 14:06:7ki1y5sx
覆面算
ttp://bach.istc.kobe-u.ac.jp/puzzle/
名無しさん@お腹いっぱい。 [sage] 04/08/14 14:10:7ki1y5sx
数独、Nクイーン、カナオレ、ましゅ
ttp://rogiken.org/puzz/program/index.html
名無しさん@お腹いっぱい。 [sage] 04/08/14 14:26:7ki1y5sx
ピクロス
ttp://www.alpha-net.ne.jp/users2/cult/java/
名無しさん@お腹いっぱい。 [sage] 04/08/14 14:29:7ki1y5sx
ナンプレ
ttp://be__.at.infoseek.co.jp/java/nps/
名無しさん@お腹いっぱい。 [sage] 04/08/14 14:41:7ki1y5sx
で、今、自分が挑戦してるのがナンバーリンクのソルバーだったりする。
15*15でも即答できるようになったが、問題は別解探索。
数字が通らないマスもあるのを前提にすると、10*10でも解けなくなる。
関西解探索ありの限度は、今は7*7ぐらいだ。
1 [sage] 04/08/16 02:44:0E+z1gMx
バグデタ━━━(゚∀゚)━━━!!!!!

計算順序でのものなので1から作り直します。
関西チェックは10*10なら30分ぐらいで発見できるレベル。まだまだだな。
名無しさん@お腹いっぱい。 [sage] 04/08/16 02:59:C3xr2C0e
ガンガレ!
1 [sage] 04/08/16 21:51:wrHS2bqC
頑張ってるー。今気がついたんだけど7×7のマスが10×10になると
面積は倍以上になるんだな。7×7で49だけど10×10は100マス。

どうりでここらへんから急に遅くなるはずだ。探索数から考えると50マス増えたとして
2の50乗倍に増えるということになるし。こりゃやっかいなNP問題に手を出したかも。
名無しさん@お腹いっぱい。 [sage] 04/08/16 22:44:C3xr2C0e
自分も作ろうと思ったのだが、
はなにで作ってる?
1 [sage] 04/08/16 23:42:wrHS2bqC
Delphiだよ。無料でWebにもそこそこ情報があるからこれにした。
名無しさん@お腹いっぱい。 [sage] 04/08/17 00:06:bMR+h5U6
サンクス
ちょっと勉強してみることにするよ。
名無しさん@お腹いっぱい。 [sage] 04/08/17 01:09:bMR+h5U6
インスコ完了ヽ(´ー`)ノ
今日は眠いから明日にでものんびりいくとするよ。
名無しさん@お腹いっぱい。 [sage] 04/08/17 01:47:ZLlmZOVP

大変だなぁDelphiなんて。
学生だったらマイクロソフトがたまにやるイベントとかで
.net配ったりするからそれをもらったほうがいいかもね。
1 [sage] 04/08/17 11:18:sSAf5Cli
>17
その.NETはCです?JAVAです?VBです?
言語選ぶ時にどれにしようか色々悩んだけどね。
2CHやその他で色々調べた結果これになったよ。

>16
ガンガレー。Cより楽だしVBみたいに外部DLLがいらないから
ちょっとしたものを作って配布するのに便利だぞ。
名無しさん@お腹いっぱい。 [sage] 04/08/17 11:31:gHKgIX0b
JavaScriptでスライドパズルなら作ったことがある、
解けるものと解けないものがあるのには驚いたな。
1 [sage] 04/08/17 19:09:sSAf5Cli
今日の成果ー。見つけるまでの時間を測定するようにした。

現在、10*10で短絡解ありをチェックして平均1分半で見つけるように。
ようやく進歩が見えてきた感がある。

だが、10*10の短絡が無い盤面を短絡チェックしようとすると
無いと判明するまで6分30秒。2.4Ghzでこれではまだまだっす。

>19 トポロジーというやつですな。
名無しさん@お腹いっぱい。 [sage] 04/08/17 21:07:bMR+h5U6
とりあえず慣れるためにボンバーパズル4×4を作成。
問題自動作成と最低限の機能を持ったものが3時間ほどで完成ヽ(´ー`)ノ

ちょっと慣れたからそろそろ解答プログラム作りに入る予定。
にないものを作ろうと思案中。
でも出てないやつって難しいんだろうか・・・_| ̄|○
名無しさん@お腹いっぱい。 [sage] 04/08/17 21:13:7PtaY1rK
とりあえずプログラムならこの辺も押さえておかんと。特に最初の。

ペントミノ詰・数独・カックロ・四角に切れ・ひとりにしてくれ・美術館・橋かけ
ttp://http://www.pro.or.jp/~fuji/puzzlestudy/index.html
黒どこ
ttp://http://f24.aaacafe.ne.jp/~nikolist/puzzle/kurodoko.html
シンクローン
ttp://http://f24.aaacafe.ne.jp/~nikolist/puzzle/synchro.html
名無しさん@お腹いっぱい。 [sage] 04/08/17 22:50:bMR+h5U6

サンクス!
なんか難しそうだけどよく読んで勉強するよ。
名無しさん@お腹いっぱい。 [sage] 04/08/18 21:24:GTdGmhp7
なんとなく好きなぬりかべにすることに決定。
とりあえず初期段階の1の四方を黒にするのは成功。
ifの入れ子でエラーだしまくったよ・・・・_| ̄|○
名無しさん@お腹いっぱい。 [sage] 04/08/18 21:32:GTdGmhp7
そして今caseに気づいた自分_| ̄|○
名無しさん@お腹いっぱい。 [sage] 04/08/18 22:05:0T52XOXR
…1の四方なんてどうでもよいかと。
あと意外とぬりかべは面倒なので注意。

とりあえずその程度の腕だときついんじゃないかなあと思った。
ネタがかぶってもいいので簡単なパズルを練習に作ってみるのがよいかと。
名無しさん@お腹いっぱい。 [sage] 04/08/18 23:59:GTdGmhp7
やっぱそうか(´・ω・`)
ってことで見た感じ一番スタンダードな数独をやってる。
とりあえず順調にいってる予感。
1 [sage] 04/08/19 00:59:sPkvX8JF
今日はエディタの進行。数字を置いたりズラしたりできるように。

高速解答の順序もなんとなくやりかたをつかめ始めた気がする。
基本として、枝狩りの時は初期の枝を重視すべし、だな。
やや時間がかかってもいいから、良くあるありえないパターンは
先にはじいておいた方が、大きな面が速く解ける。

ところで、ペントミノなんかの敷き詰め問題の解き方が
どうしても想像つかんのだが。
名無しさん@お腹いっぱい。 [sage] 04/08/19 08:52:33bkZUEr

ペントミノなら藤原氏のところにプログラムがあるよ。
左上から順に置けるところにピースを置いていくだけで、
今の計算機なら数秒で前階が出る。
名無しさん@お腹いっぱい。 [sage] 04/08/19 18:26:BCERUg56
漏れはパズルを甘く見すぎてたようだ_| ̄|○
けっこう難しいな・・・・・
とりあえずじっくりいくか・・・
1 [sage] 04/08/19 23:50:JI6hxVk+

なぜそんなやりかたでいいのか?という理由がわからんのですよ。
とてもいいかげんそうで穴があるように見えてしまう。
でも解けるらしい。なんで?
名無しさん@お腹いっぱい。 [sage] 04/08/19 23:58:33bkZUEr
左上から順につめつめに置いていくから、最後まで置けたときには必ず解になっている。
置けるパターンを全部試しているのだからあのやりかたで漏れているパターンはないはず。
盤面のプリント関数が用意してあるから、あちこち挿んで実行してみると動きがわかっていいよ。
氏の「再帰のお勉強」に割と詳しめの解説があります。
1 [sage] 04/08/20 12:25:B31IcJ3d
>32
サンクス。やっと感覚的に理解できたよ。
再帰はわかってたけど、それをどう応用するのかがわからんかった。

パズル解答のプログラミングって、再帰は重要だよな。
初心者はまず、でこぼこのマス目を塗りつぶせるようなプログラムを作るべしと思う。
1 [sage] 04/08/20 23:38:7KMUAawE
今日のナンリンソルバー成果ー。ファイルのロード&セーブ機能をつけた。
これでニコリのいろんな面を確かめられる。
今までテキストのコピペでやりくりしてたから楽になるぜ。

高速化も実行。チェックスピードは遅くなったものの全体的な解析力は向上。
10*10の全短絡解析を数秒〜11分で。数字が少ないと一気に長くなるな。
あと、物は試しに11*11の面をチェックしてみたら・・・1時間近くかかったよ_| ̄|○

これまで色々ブレイクスルーな方法で時間短縮してきたけど
もう一皮向けないとダメってことか。厳しいな。
□7×7=4□□ [age] 04/08/21 23:16:8XTY9xwt
ソースや理論をageて皆でたたき台にすればいいんだがな。
ペンシルパズルはオープンソースモデルが向いているだろう。
1 [sage] 04/08/22 12:01:iRgypLga
新たなるブレイクスルー発見。
10*10の短絡チェックを多くても2分以内で解析できるように。
11*11も3分程度で完了。でも15*15までにはまだまだ。

そろそろ遅くなってきたから、計算そのものの高速チューニングを検討してみる。
進可 ◆Sinka1my5k [sage] 04/08/22 12:23:iRgypLga
そろそろハンドルつけます。あと、解析方法も晒してなかったから解説。

数字同士を繋げている線でなく、線が通過していない壁に注目しました。
ラインが通っているマスは上下左右のうち、2方がライン、2方が壁になります。
ある一つのマスがあるとして、その上と左を調べます。
上と左の壁数が
 2つの場合、右と下は壁は0です。
 1つの場合は、右か下どちらか一つが壁です。
 0の場合は、右と下は両方とも壁です。
数字の入っているマスの場合は1方がラインで、残り三方は壁です。そして
上と左の壁数が
 2つの場合は、右か下どちらか一つが壁です。
 1つの場合は、右と下は両方とも壁です。
 0の場合はありえません。

これを、左上から右に向けて1マスずつ壁を置いていき
ありえない状態になったら前に戻って別のパターンを調べます。(どちらかが壁の部分での分岐)
矛盾なく最後まで全部埋まったら同じ数字同士が繋がっているかチェック。
違う数字が繋がっていたらまた前に戻って別パターンを調べます。
これが基本的なやりかたです。
進可 ◆Sinka1my5k [sage] 04/08/22 12:36:iRgypLga
ラインをくねらせる方法に比べると一次元的にチェックができるので
早く解析できるのですが、それでも時間がかかるので途中で色々なチェックを入れて
解析スピードを上げています。

例1:
→↓
←←
のようにコの字型にラインが曲がるのはありえないので
壁がこういう状態になったら戻ってやり直し。

例2:数字マスの壁を決定する時、上か左が開いていたら
その時点で繋がっている先の数字を調べてダメならやり直す。

などなどです。
□7×7=4□□ [sage] 04/08/22 15:50:dg606h3B

ナンリンソルバーとはすごいね
ところで、そのプログラムって、
すべてのマス目を線が通る解を全て出力する
もんと思っていい?
進可 ◆Sinka1my5k [sage] 04/08/22 17:12:LpwLr/yh
>39
その通りです。
そして、プログラムをちょっと追加してやれば短絡解のチェックもできます。
数字の入ってないマスで上と左の壁数が
 2の場合、右と下の壁は0か2。
としてやれば線の通っていないマス目がある場合も探し出せます。
ただし、これをやると一気に計算時間が増えます。それを減らすのが現在の課題。
□7×7=4□□ [sage] 04/08/22 17:48:dg606h3B

空白のマス目全部を線が通る解を求めるなら、
例えば、盤面の隅なんかは線の通り方がかなり限定されるから
探索はある程度速いと思うけど、
短絡解だと限定できないから膨大な時間かからない?

自分は、短絡解まで出力するソルバーを、昔作ろうとして挫折したんだけどさw
□7×7=4□□ [sage] 04/08/22 18:22:JJqe7PwO

計算時間が一気に増えるってのは、その状況で壁数0としたときに矛盾(既にどうやってもつなぐことができない)
していることを判定できていないから、じゃないかな。

例えば
ttp://pc5.2ch.net/test/read.cgi/gamedev/1088809456/67
この左上で0を入れたときとか。それがさらに複雑になったものとか。

結果、後になって(それも相当に分岐して)から矛盾に気づく、と。
□7×7=4□□ [sage] 04/08/22 18:36:dg606h3B

ありがとう
そっちのリンク先読ませてもらった。
短絡解ありの問題は時間かかるけど、
解がユニークな問題は 10×10 くらいまではかなり速く解けるんだ。
いや、それにしてもすごいわ
進可 ◆Sinka1my5k [sage] 04/08/22 19:56:LpwLr/yh
おおぅ、元スレばれたか。今ではもっと速くなってるよ。日々これ進化。
短絡解を探さないなら15*15でも即答だ。
短絡解チェックありでも10*10なら最大30秒に。

短絡解チェックありで15*15だと30分以上かかるからまだまだだけどな。
□7×7=4□□ [sage] 04/08/22 23:02:aduJYRKA
ttp://www8.plala.or.jp/ara3/puz/ac/1209.gif
これで短絡解も調べてどれくらいですか?
進可 ◆Sinka1my5k [sage] 04/08/23 00:25:VFpFcLPL
2分14秒。そこのはちょうどチェックに使ってたところ。
12*12は、6番で12分13秒かかった以外は多くても4分ってとこだった。

そろそろスピードアップ方法が煮詰まってきた感じ。
今日はこれまで。おやすみ〜。
進可 ◆Sinka1my5k [sage] 04/08/23 18:59:5ZbVAss3
ダウトだ。短絡解を見つけられない場合が発生。
二個ある同じ数字を区別して無かったのでチェックのスルーが発生した。
今から組みなおします。

ところで勘違いされないように書いておくけど、短絡解チェックの場合に時間がかかるのは
短絡の解答が見つかるまでに時間がかかるという理由以外に。

 短絡解が無い場合は、最後まで全部チェックしきらなくてはいけない

からという理由があったりします。全部チェックして、これは短絡解の無い正当な面ですよと
証明できなくちゃいけないからなぁ。
進可 ◆Sinka1my5k [sage] 04/08/23 20:43:5ZbVAss3
短絡解の原因発見。数字の区別じゃなかった。
しかも原因取り除いたらなぜか>45のが1分16秒に早まったよ。

ま、結果オーライw
□7×7=4□□ [sage] 04/08/24 01:14:2XGbwLWd
何かアルゴリズムの肝的な部分を、ソース引用最小限で
お話してくれ
進可 ◆Sinka1my5k [sage] 04/08/24 12:50:TVfLuhDN
今週は夜勤なので昼にカキコ。
肝ったってどこが肝なのかいまいちわからんので概略から。

1マスの情報は右壁の有無と下壁の有無を01で持っています。
上の壁と左の壁は隣のマスの情報からもらいます。
上と左の壁情報から右と下の壁を決めます。やり方は上の通り。

□□□□ →1 それを一番上の左端から右へ向かって決定していき
□□□□ →2 一行埋まったら一つ下の行の左端から繰り返します。
□□□□ →3 パターンが合わなかったら分岐のあるところまで戻ってやり直し。
□□□□ →4 右下まで埋めきったら数字の繋がりをチェック。
進可 ◆Sinka1my5k [sage] 04/08/24 13:00:TVfLuhDN
で、書いてて思ったけど一番の肝は時間短縮のダメ出しかな?
いかにしてありえないパターンを排除して短縮させるかってとこ。

最初に加えたのはコの字の禁止。上に書いたように
→↓
←←
となるパターンは右上と右下で壁がカタカナのコの形になって
線を引く時にはありえない。これを上下左右の向きそれぞれにチェック。
壁が _| の形に決まったら上のマスと左のマスを調べて |__| になってたり
 ̄|
_| になってたらNGで戻ります。 ̄| では左マスで | ̄ ̄| を調べ、|_では上マスの

| ̄
|_ を調べます。
進可 ◆Sinka1my5k [sage] 04/08/24 13:11:TVfLuhDN
次に加えたのが途中でのチェック。数字のあるマスで上か左が開いていたら
塗りつぶしプログラムの要領で先端を調べて違う数字と繋がっていたらNG。
ただ、検索範囲外まで調べてはいけないので下図の□から出た場合は
数字不明として仮にOKとしておきます。
□□□□
□□3

ここまで加えたチェックでも、短絡を探さないなら15*15で即答できます。
でも、壁マスあり条件の短絡を探すとなると7*7程度が限界です。
進可 ◆Sinka1my5k [sage] 04/08/24 13:19:TVfLuhDN
そこで数字先をチェックする時に、ありえないパターンをNGとすることで
時間短縮することにしてみました。

例えば
4321
5 910
678
のようにラインが回る場合はダメなので、壁の向こうにすでに通った跡があればNGです。

12
■3
54 のように壁越しの無駄な遠回りもNGなので、壁マスの向こうもチェックします。

このNGチェックを数字が書かれて無いマスにも適用し、上か左が開いていたら
調べるようにさせたところかなりの時間短縮ができました。
進可 ◆Sinka1my5k [sage] 04/08/24 13:23:TVfLuhDN
そして壁が _| の状態なら上と左の先にある数字もチェックし
違う数字同士がむすばれていたらNG。
続いて壁が _| の状態で、上を調べていったら左にたどり着くような
空ループになった状態もNGとしました。

このせいで探索回数の数字の伸びは遅くなったものの
より短い時間で解答を得ることができました。
進可 ◆Sinka1my5k [sage] 04/08/24 13:44:TVfLuhDN
ところがまだまだ解析は遅い。なぜだろうと解析中の盤面を観察していると
無駄なチェックが多いのを発見。

1 □□■ 例えばこの盤面で1の先が右端の下から出るパターンは数通りあります。
■■□■ でも上がどんなパターンでも、下の出口は同じです。1が右下から出るパターンは
■■□□ 一回チェックしてNGが出れば、後はどんなパターンでもNG確定です。
      ↓
これはいくらなんでも無駄なので、マスを改行する時に下の壁のパターン&壁が無い場合の
行き着く先の数字を調べて記憶し、前と同じパターンが出てきたらNGとします。
上の例なら最下段の改行で0001と記憶しておき、NGで戻ってきて上のパターンを変え、
再度改行する時に、また同じ0001が出たら下を調べるまでもなくNGです。

あまり記憶数を増やすと逆にそれを調べるのに遅くなるので、500パターン程度の記憶にして
試したところ、劇的に速度が向上しました。これで10*10の探索が30秒以内に。

とまぁ、とりあえず入れてるチェックはこんなとこです。
ですが、15*15全チェックだと2時間やってもまだ序盤なので、もっと他にいい方法が無いか研究中。
今日はこんなとこでまた。
□7×7=4□□ [sage] 04/08/24 20:30:2XGbwLWd
シンプルなアルゴリズムでスパっと、という訳には行かないなあ
□7×7=4□□ [sage] 04/08/25 09:22:uUYwj/rg
ニコリなんかの数理系のパズルでナンリンだけは、
現実的な時間で、複数解チェックのできるプログラムがないと思う。
□7×7=4□□ [sage] 04/08/25 14:12:yxCUwYJW
それができると、PCBとかLSIとかのパターン作成に
応用が効くのに
あっちも力任せの世界
□7×7=4□□ [sage] 04/08/26 00:25:LrHJtrvz
もし効率的にできないとしても、確率的なアルゴリズムだとか、
局所的に短絡がないことを示すとか、いろんなアプローチがあると思う。
進可 ◆Sinka1my5k [sage] 04/08/26 08:36:6fof0ZUX
>58
逆にA〜E同士を繋ぐ線の距離と曲げ回数を同じにしろ
っていうパズルはどうだろうと前向きに考えたりして。

あ〜時間縮まんねぇ。もう一度ざっぱり組みなおしてみよう。
今度は子プロセスの超入れ子構造無しでチャレンジ。
進可 ◆Sinka1my5k [sage] 04/08/26 19:12:eIVv2S6o
何が大変って、普通に解けるけど短絡解もある面、というのを探すのが大変。
うっかりではできちゃうけど、作ろうと思って作れるもんじゃないからなぁ。
過去のニコリさばくりまくっちゃったよ。
□7×7=4□□ [sage] 04/08/27 00:16:qV5z7eww
めちゃくちゃ遠回りする経路をいっぱい盛り込めば簡単に短絡するよ。
あと、チェッカは稠密解がなくてもいいなら適当に数字を一個減らせば別解の山。
進可 ◆Sinka1my5k [sage] 04/08/27 15:02:CVBdA6dk
なるほど、数を減らして短絡解ってのはやってたけど遠回りはやってなかった。
考えてみれば普通に解けるかどうかだけは即チェックできるんだから
数字をちょっとずつ移動させながらチェックしていけばいいんだな。サンクス。

あと、昨日思いついたんだけど、2方向だけ決まっている状態だと、残り二方向は
まだ壁不確定な時があるけど、三方向決まっていれば残り一方向は絶対確定なんだよな。
つまり、壁を確定させるのを二行目からやっていけば、一番上の行は確定されるんだよな。

□□□□ これでAを仮決定させる、上のマスは必ず確定。これを右へ伸ばしていく。
A.□□□ 仮の状態は2から3に増えるけど、仮定で進めていく行は半分になる。

10*10ならマス100。今までの一行2択方式で考えると最下段は自動決定として
2^90なので、約1.2*10^27通り。ゼロが27個つく。
この2行3択方式で考えると、3^50で約7.2*10^23。ゼロが23個。
超大雑把に見積もっても1000倍の差があるな。
15*15なら1.6*10^63と、1.3*10^50でゼロが13個分の差。

1から組みなおしが必要だから時間がかかるけどやってみる価値はあるかも。
□7×7=4□□ [sage] 04/08/27 16:36:qV5z7eww
ます目の決定の順序を動的に変化させると結構速くなりますよ。
□7×7=4□□ [sage] 04/08/28 00:13:rAS6LKU5
└┘ 無条件で無駄。
└─┘└──┘ 間に初期配置の数字がなければ無駄。
間が3以上の└…┘は調べる場所が広くて少し大変。
落としどころは└──┘くらいかなあ。
進可 ◆Sinka1my5k [sage] 04/08/29 01:50:06INVbNq
動的変化はどっちを先に埋めれば速くなるかの把握が・・・
斜めに埋めていくような探索も考えたけど、どう考えても逆に遅くなるしなぁ。
└─┘└──┘ のチェックは
□□□□ の1の先をチェックする時の帰りに、壁向こうに通った番号が無いかを
□■■□ 入れ子構造でチェックしているので、壁で直線ショートカットできる
□■■1 パターンは全部チェックしてますです。

今日は子プロセスの超入れ子構造無しで1から組み立ててみたけど
逆に5%ほど遅くなっちゃったよ(´・ω・`)ショボーン

今度は2段三方向での方式にチャレンジしてみる。
進可 ◆Sinka1my5k [sage] 04/08/29 12:44:06INVbNq
ふと思い直し、子プロ無しでできるようになったクイックバック方式を
試したところ、のが51秒に。

1 □■■ やり方は、例えば左の図で3をチェックしてNG判定した時に戻る場合は
■□■■ 一度左に戻って、さらに改行して戻って右端につき、さらに左へとなりますが
■3     この時、途中で分岐できる部分があったら、その分岐から再度進み始めます。

分岐部分で形を変え、また3の位置に進んでも、3での繋がりは同じなので結局NGです。
そこで、こういう場合には3の一つ上の場所まで無条件でバックするようにしてやれば
余計な探索を減らすことができます。このおかげで探索時間が大幅に減らせるように。
もう無理かと思ってたけど、まだまだ縮められるようです。
□7×7=4□□ [sage] 04/08/29 13:26:dRWnxd/W
用語が不正確でわかりにくいです。
もう少し詳しく説明して頂けるとありがたい。
進可 ◆Sinka1my5k [sage] 04/08/29 16:19:06INVbNq
ズレ無しで枠線&数字を描くのはちょっと時間かかるんでこれでもやってお待ちくだされ。
ttp://gamdev.org/up/img/1120.lzh
マウスで1から数字を置いて実行させるだけ。置いた数字は移動もできます。
□7×7=4□□ [sage] 04/08/29 17:49:dRWnxd/W
添付されていた例題が気になったので。
......1............6
.2..........3.......
....................
..........6......5..
...7................
......5.4......9....
..1................2
.....9....8.........
.3................7.
.......4.....8......
70 [sage] 04/08/30 14:04:znvwEXHJ
いっぱい短絡しておかしいなあと思ったら2桁ごとの区切りでしたか。
線じゃなくて壁でわけると、盤面がフィルオミノっぽくて面白いですねえ。
進可 ◆Sinka1my5k [sage] 04/09/02 00:12:y5lJ/34E
ダメです、2段三方向、まったく変わりません。考えてみれば


1 の順でマスを決定させるのって、上下を入れ換えてもパターン数同じじゃないか。

さらには、横に12と並べるのとも同じじゃないか。ぐはぁ、無駄だったぁ!

発展させて考えると、短絡解探索の全検索は、マスの決定順序をどう変えても
パターン数は変わらないということになるな。途中チェックでなるべく速くダメパターンを消せるか?
のほうが重要だということになる。ダメパターンのチェックがしやすいような順番ならOK
ということにもなるけど、今のところ今の一列ごとに改行方法が一番早そうだし。
進可 ◆Sinka1my5k [sage] 04/09/02 00:15:y5lJ/34E
>71
はいそうです。テキストだけ見るとちょっと驚くと思います。
でも、1〜99の数字を使えるようにするための処置ですんで。
□7×7=4□□ [sage] 04/09/02 18:48:OvqmM4Sp
探索の順序について。
例えば、
+++12345+
+++++++++
+++++++++
となってるとすると、
+++12345+
++++234++
+++++3+++
と決まります。
順番に探索するより早く矛盾を導ける可能性があります。
進可 ◆Sinka1my5k [sage] 04/09/04 00:11:0KrlLWxi
クイックバック方式の説明。
右から左端へ順々に決めて改行していき、3の部分まで決めてこうなった場合。
┼─┼─┼─┼
│1 │2 │  │
┼┃┼┃┼─┼  一度戻ってやり直すのですが、この場合、2の下にある分岐から
│┃│┗━┓│  再度やり直すことになります。
┼┃┼─┼┃┼
│3 │
┼─┼

┼─┼─┼─┼  そうすると◎の所がこう変化してまた前進することになり
│1 │2 │  │  1と3の関係は変わらないので無駄な探索になります。
┼┃┼┃┼─┼
│┃│◎│
┼  ┼┃┼  ┼
│3 │
┼─┼

┼─┼─┼─┼ なので、探索時につけた番号を記憶しておき
│1f│2 │  │ その番号のマスがでるまで何があろうと
┼┃┼┃┼─┼ ひたすらバックするというのがクイックバック方式です。
│ f│┗━┓│
┼┃┼─┼┃┼
│3f│
┼─┼
進可 ◆Sinka1my5k [sage] 04/09/04 00:15:0KrlLWxi
┼─┼─┼─┼ この場合、スタート地点以外の、fがついたところまでバックするので
│1f│2 │  │ 3の上のマスまで戻り、余計な探索を減らせることになります。
┼┃┼─┼─┼ 
│┗━  │  │
┼  ┼─┼─┼ ちょっとわかりにくい例図ですいません。
│3f│
┼─┼
進可 ◆Sinka1my5k [sage] 04/09/04 00:27:0KrlLWxi
そして今日の新たな進歩。のパターンチェックを廃止しました。
一回チェックするごとに500回ほどループが入り、非常に遅くなるので撤去。
変わりに 複数ありえるパターンの場合には最後のパターン以外は却下に

1 ■■■ 例えば>55にあったパターンなら、一番初めに調べる配置はこうで
□■■■ 
□□□□ 

1 □□□ 一番最後に調べる配置はこうなります。これを利用して
■■■□ 
■■■□

□■ 盤面に、この形が出るようなパターンはNGとしました。 
□□ そうすれば上の場合なら一番最後のパターン以外はNGです。

□□ そして右上から左下へ伸びる場合も考慮し、このパターンもNGに
□■

このおかげで、>45のが8秒875にまで短縮しました。(ペン4の2.4Ghz)
なんだか目標の15*15の短絡チェックにだいぶ近づいてきた気がします。
進可 ◆Sinka1my5k [sage] 04/09/04 00:37:0KrlLWxi
>75
助言サンクス。でも、ナンバーリンクの場合そういう類の配置のパターンが出てくる頻度は
かなり低いのであまり有効ではないかと。でも、ぬりかべならかなり効果のありそうな方法だ。
進可 ◆Sinka1my5k [sage] 04/09/04 00:38:0KrlLWxi
番号違った>74氏すまぬ。
進可 ◆Sinka1my5k [sage] 04/09/05 15:12:Fk/tFxJI
>77から微妙に進歩。
「最後のパターン以外はNG」なのを「最初のパターン以外はNG」に。これで少し短くなった。

そして、この最初パターン限定方式を追加したことにより、>53の遠回りパターンが
2 1
3 ■ に類似した状態にしか、ほとんどありえなくなったので
4 5  壁越しチェックは上下方向のみに。しかも上から調べれるのと下から調べるのは
    同じだというのに気がついたので、上方向のみのチェックにして更に短縮。

これで>45が6秒625に。
進可 ◆Sinka1my5k [sage] 04/09/06 18:20:89RaDenK
一度詳しくホムペで絵つきでがっつり解説した方がいいんだろうけど
その労力を短縮につぎ込んだ方が効率がいいだろうしなぁ、と思ってしまう。
目標は15*15の短絡なしチェックを1時間以内に、だから
そこまで完成したらプロジェクトX風に解説してみたいねw

あれからの進歩。上と左の先端の変な繋がりチェックを_|のマス目のみにした。
右と下のみに進む繋がりは記憶しておいてすぐチェックできるように。
その他細かくIF文の数を減らしたりバグを取ったり。

これで>45が04.391に。>77の頃から見ると半分以下になったな。

それでも15*15は手に負えないよ。単純に考えるとマス目が10個増えると
2の10乗で1024倍時間が増える。約1000倍としたら20個で約1000000倍。
12*12から15*15はマスが111個増えるんだよね…
進可 ◆Sinka1my5k [sage] 04/09/06 19:18:89RaDenK
こっちに書くの忘れてた。今回の成果。
ttp://gamdev.org/up/img/1180.lzh
進可 ◆Sinka1my5k [sage] 04/09/08 18:01:HqKmR/V6
今日の成果。目標に届いたかもしれない。
今、古いニコリひっくり返して入力してチェックしてるけど
一番時間がかかった面で30分。あとは数分といった程度で確認終了できるようになった。

今回はロジックではなく、休憩のさせかたを変更。
これまでのは一回探索するごとにほんのちょっぴり休み(sleep(0))を入れていたんだが
それを5000回に一回しっかり休ませる(sleep(1))ようにしたら、劇的に速く&CPU負荷が減った。

今日の成果と例の>45の履歴を確認してみる。

8/23 2分14秒
8/23 1分16秒
8/29 51秒
9/04 8秒875
9/05 6秒625
9/06 4秒391
9/08 2秒046 *今回

なんつーか自分で言うのもなんだけどすげぇ。最初の遅さがもう何年も前のようだ。
ただ、5000回固定だと遅いCPUには高負荷になってしまうので、使う側で指定できるようにします。
□7×7=4□□ [sage] 04/09/08 18:55:DKXRZSoW
sleep すると OS のスケジューラの周期分くらいは最低待たされるからねえ。
それに関数呼び出しコストもばかにならないし。usleep 使うてのはどうでしょう。
これだけ速くなったら 15x15 もいけるんでないの?
手元のソルバでも 45 のが 5 秒くらいですが、
15x15 が(ものによっては)数十分から一時間くらいで解けますよ。
□7×7=4□□ [sage] 04/09/08 19:06:DKXRZSoW
あ、一番かかったってのは15x15ですか。
進可 ◆Sinka1my5k [sage] 04/09/08 19:28:HqKmR/V6
出社前に気がついてよかった。>85 その通りです。
15*15が最大30分、通常数分です。
ちなみにCPU100%でぶん回すとさらに時間が短くなります。

usleepは帰ってから調べてみます。サンクス。

□7×7=4□□ [sage] 04/09/10 00:59:fQj+XFYI
ベンチマーク問題。
...............
.......1.......
.....2...3.....
...4...5...6...
.....7...8.....
.......7.......
.....6...2.....
.9.5.......3.8.
.....b...a.....
.......9.......
.....c...d.....
...a...b...c...
.....1...d.....
.......4.......
...............
470519069ノード、607.86秒 @ P4 2.8GHz でした。
進可 ◆Sinka1my5k [sage] 04/09/10 19:52:10:3WNg0I1N
usleepを調べてみたり試してみたりしましたが、うちのDELでは扱えないようでした。

それでもめげずにぅぉりゃっ!更に高速化&便利に!
ttp://www.interq.or.jp/moonstone/person/NLsolv05.lzh

テキスト読込機能を付けました。コピー&ペーストで>87のような面が読み込めます。
オプション機能を付けました。探索何回ごとに表示させるか指定できます。
コ・マ・オ・ク・リ・モ・デ・キ・マ・ス・ヨ
シャア専用モードをつけましたw 通常の約3倍で探索します。CPUの発熱に注意。
□7×7=4□□ [sage] 04/09/12 12:13:27:l3AvbC5g
ナンバーリンクの解法プログラム、
↓の本にも載っているみたいだけど、これはどうなん?

ttp://www.pro.or.jp/~fuji/computerbooks/algorithm/nanopico.bit.html
進可 ◆Sinka1my5k [sage] 04/09/12 20:18:19:tgDw93+v
いや、どうなんって言われても。その本、見たこと無いです(^^;
発売が十年前か。手に入れるのは厳しいな・・・
□7×7=4□□ [sage] 04/09/12 20:24:24:9RQYBdkt
アマゾンで調べたけど、2〜3日で発送OKっぽいぞ。
進可 ◆Sinka1my5k [sage] 04/09/12 21:16:44:tgDw93+v
仕事しながらふと考えてた。数字を入れる場所を数箇所指定して
後はその場所に総当りで数字を入れて、短絡無しの唯一解が出る面だけを
抽出するソフトはどうだろうか?と。でも、しばらくしてから自己否定。
そんなソフトを作ったら、ソフトを持ってる人が優遇されすぎる。
配置が綺麗なだけの味気ない面ばかりが増えそうだ。

っていうより、それはナンバーリンクの熱的な死ではないか?

まぁ考えすぎっちゃ考えすぎだってのは判ってるけどね。

どっちにしろ今は作るのは止めときます。
半分は自分のため、もう半分はニコリのために作ったんだから
必要なのは短絡解の判定ができるソルバー機能のみでよし。
進可 ◆Sinka1my5k [sage] 04/09/12 21:17:33:tgDw93+v
>91
ぅぉ、チェックしてみます。
□7×7=4□□ [sage] 04/09/13 02:21:27:IYpZiBIP
ところで今は左上から一方向にサーチしてるみたいだけど、これ

   1   2
 ■→  ←■
3↓      ↓4

5↑      ↑6
 ■→  ←■
   7   8

こういう風に四隅二方向から、12345678…の順で1つずつサーチ
したらどうだろう?
もしくは1485の四隅一方向からとか、18の二方向はさみうちとか。
進可 ◆Sinka1my5k [sage] 04/09/13 23:39:10:ZUNclhZM
今日は酔ってるので一人でこんなの作って笑ってたりする。
1+++++++++
++++++++++
+++4++++++
++++++++++
++++++++++
++++1+++++
++++++++++
++++++++++
+24+++++++
+++++32++3
設置数最少設定。しかも短絡なし。でも目で解けそうだ。

>94 自分も色々考えてみたけど、古い決定部分がいつまでも表に出ていると効率悪いみたい。
ぐるーっと回って、などのやり方は、1の次の段で失敗がわかった時に
同じように、またぐるーっと手を戻さないといけないし。
なるべく表面積を少なくする=仮決定部分がすぐ埋まる=失敗した時にすぐ判明、ってことかな?
□7×7=4□□ [sage] 04/09/14 23:44:01:7zIk+Gg8

「このまま進めたら破綻」ってのを極力早期に発見できないかな、と。
<多方向から探索

□7×7=4□□ [sage] 04/09/15 07:43:03:fQdZ8MkV
このままでは漏れの人生破綻
□7×7=4□□ [sage] 04/09/15 18:04:50:jOXkB1zj
短絡ありのテスト問題。
...............
.....a...2.....
..b....7....3..
......8........
...34.....5....
........b......
.a...........1.
...9.......5...
.c...........6.
......4........
....8.....76...
........1......
..9....2....c..
.....d...d.....
...............
30.58 sec.
進可 ◆Sinka1my5k [sage] 04/09/16 06:05:13:rA5uQ9yV
手怪我した。しばらく進行遅れる。タイプし難い。
>96
うん、俺もいかにして「このまま進めたら破綻」を速めにできるか考えたけど
ばらさないでまとめた方が良いみたいなんだよね。
例えば四隅の簡易版として上下2分割で上下交互に進めていくとした場合
下で破綻が出たら上もついでに戻らないといけないようになるし。
だったら探索をまとめて中央付近を速く埋めた方が破綻が少なくてすむ。
線の重要度は真ん中が高い。真ん中が決まらんと相手番号が未定のケースが増えるし。
進可 ◆Sinka1my5k [sage] 04/09/16 06:06:56:rA5uQ9yV
ついでに数が超少ない15*15ドゾー。短絡チェックで短絡無し判明に9分です。

+++++++++++++++
++++++++++++25+
++++++++++++3++
+++4+++++++1+++
++++7++++++++++
+++++++++++++++
+++++++++++++++
2++++++++++++++
+++6+++++++++4+
+++++++++++++++
++++++++++++++6
+++++++++++5+++
++++++++++37+++
++++++1++++++++
+++++++++++++++
進可 ◆Sinka1my5k [sage] 04/09/16 23:23:34:727dE1V7
正式に発表&ページを作ったよ。
ttp://www.interq.or.jp/moonstone/person/numlink/index.html
□7×7=4□□ [sage] 04/09/17 22:54:55:+xhT4xyD
数字が少ないのがんばってみたけど、8個で限界だった。
---------------
-3-------------
--7---------5--
------------4--
-------2-------
-------8-----1-
-------6-----2-
---------------
---------------
---------------
-----4---------
---1-----3-5---
--------67-----
--------8------
---------------
8.15 sec.

探索の順序を上下左右に振るのはよくないかもしれないけど、
初めに盤面を見てやりやすそうな方向を決めるというのは有効。
上下左右を反転させるだけで10倍くらい計算量が変わることも。
□7×7=4□□ [sage] 04/09/18 00:46:56:Nhx/UDJN
あ、いけた。
---------------
-3-------------
--7---------5--
------------4--
---------------
------6------1-
-------------2-
---------------
---------------
---------------
-----4---------
---1-----3-5---
--------27-----
--------6------
---------------
9.55 sec.
□7×7=4□□ [sage] 04/09/18 19:30:51:cqU95J92
今日発売のCマガを見れ
□7×7=4□□ [sage] 04/09/18 19:34:43:VjnSR19P
こういうのはbitでよくやってたな
□7×7=4□□ [sage] 04/09/25 01:34:29:q72DXNuT
面白そうなスレハケーン。
昔VBで数独のソルバー作ったけど、あと一歩で完成ってとこでやめちゃったな。

このスレで、いろんな人で同じパズルのソルバー作って、
処理の早さを競うのも楽しそうだ。

とりあえず、ナンバーリンクってどんなんだったか思い出さないと…。
進可 ◆Sinka1my5k [sage] 04/09/26 13:59:51:J1N7yhQF
>処理の早さを競う

まずは人が少ないのをなんとかしないとなぁ。
□7×7=4□□ [sage] 04/09/26 15:40:03:wDsq1IAb
ム板・ゲ製作技術から連れてくるのがいいんだろうなぁ。
まだパズル板の知名度自体低いだろうし(俺おととい知った)、
ム板・ゲ製作技術でウザがられない程度に宣伝するしか。

ちなみにム板で「パズル」で検索ヒットするスレなし。
ゲ製作技術で検索したら

思考型パズルでも作ってみる(21)
ttp://pc5.2ch.net/test/read.cgi/gamedev/1088756216/
最終書き込みが7/8で廃墟。

でもう一個が
【作る】倉庫番パズルの自動プログラム 【解く】
ttp://pc5.2ch.net/test/read.cgi/gamedev/1088809456/
最終…って、こっちが先だったんですか、進可さん。

□7×7=4□□ [sage] 04/09/26 15:51:40:7fgjOi3S
人がいないのはナンリンが難しいからだと思う
□7×7=4□□ [sage] 04/09/26 15:56:07:wDsq1IAb
じゃーもっと簡単なやつ…。
お絵かきロジックあたりが簡単そうかな?
数独も、解くために、とある思考が必要…でない問題解くまでなら簡単なんだけど。

ナンリンはナンリンで、平行してればいいだろうし。
人が増えてきたら、ナンリンだけ独立スレたてればよろし。
進可 ◆Sinka1my5k [sage] 04/09/26 17:38:41:yRvTzO0c
>108
あいあい、そっちでやってる最中にパズル板ができたんで移りますた。

>109-110
いや別にナンリンにこだわらなくても。ナンリンは自分では一段落したし。
個々で思い思いに違うパズルで作ったりアイデア出したりでいいんじゃないかな?
進可 ◆Sinka1my5k [sage] 04/09/26 17:46:19:yRvTzO0c
あと、Cマガ確認。内容は遺伝子的なものによる解答探索だった。
でもこれはあまりパズルを解くのに向いてない感じ。

遺伝子式は「探しつくせない組み合わせの中から一番効果の高いパターンを見つける」だけど
パズルの場合「全ての組み合わせの中から正しいパターンを見つける」だし。
特に、「全パターン中、正しい答えが一つだけなのを確認する」場合に向いてない。

遺伝子式のやり方に向いているのは、ニコリで言うと「スケルトンコンテスト」が最適だろうな。
□7×7=4□□ [sage] 04/09/26 17:54:58:M1BPF0z6
そこで意表をついて知恵の輪
□7×7=4□□ [sage] 04/09/26 17:59:18:Qw9eW/G1
104のいう今月のCマガってのは最後から数ページのところにある電脳クラブのことでは。
□7×7=4□□ [sage] 04/09/26 18:23:08:7fgjOi3S
実は今一番興味を持ってるのが、
GAによるスケルトンコンテストだったりする
応募はしなくても、人間のトップを破れるのか試してみたい
□7×7=4□□ [sage] 04/09/26 18:34:00:wDsq1IAb
スケルトンコンテストかぁ、俺も興味あるな。
もちろん、作っても応募しないけど。

ところで、速さを競うとしたら同じ言語で作らないと不公平だよな。
俺は多分、C(コンソール)でアルゴリズム固めてから、
本気で公開するならC(windows)にするだろうな。
まあ、それは本当に速さを競うことになったとき考えればいいか。
□7×7=4□□ [sage] 04/09/26 19:10:36:M1BPF0z6
スケコンいいねえ。
表示された盤面を見て( д ) ゚ ゚ってことになるのか、
それともスケコン上位陣はやっぱり凄いという結論が出るのか。
□7×7=4□□ [sage] 04/09/26 19:35:38:7fgjOi3S
速さだったらCPUの速度でも変わってくるし
何か試行錯誤の回数をカウントして、それを指標にするのがいいと思う
□7×7=4□□ [sage] 04/09/26 19:51:27:wDsq1IAb
CPUに関しては、作ったものはそれぞれみんなどっかにUPして、
落として全部自分のところで実行すればOK。
人が多いほど、いろんな環境での結果が見れて良い。
嘘報告しないでね。
進可 ◆Sinka1my5k [sage] 04/09/26 21:08:05:yRvTzO0c
>114
( д ) ゚ ゚
□7×7=4□□ [sage] 04/09/26 21:54:15:WtGZ0CEo
漏れも遺伝子アルゴリズムでスケコンやりたいって思ってたけど、
着手する元気がないんだよねー…。
104 [sage] 04/09/26 23:07:57:B2NuyMeb

はい、そういうことです。見た目が一見違うだけでまんまナンバーリンクなもので。

速度勝負は

・GCCかG++でコンパイルできること。
・標準入出力のみ使うこと。

って条件でソースうpするようにすればいいんじゃないかな?
GCCならどんなプラットフォームにもあるし、profileでCPU時間確認もできるし。
試行錯誤カウントはカウントする場所でもめそうな気がする。
□7×7=4□□ [sage] 04/09/27 01:43:21:AZOHiQw2
それって、Cできない人が参加できなくて可愛そう。

…とはいえ、どれかに統一する必要があるなら、Cがいいだろうな。
使える人は多いだろうし、フリーでコンパイラあるし。
俺も個人的にはCがいい。
□7×7=4□□ [sage] 04/09/27 01:44:49:AZOHiQw2
あ、書き忘れ。
ソースうpじゃなくてexeでいいでしょ。
速さを競ってるんだから、ソース見られちゃまずいわけで。
□7×7=4□□ [sage] 04/09/27 01:53:41:FAVJMplI
環境が限定されるのはあまり好ましくないなあ。
どうせ人少なそうだし、言語とか実行環境に制限を加えなくてもいいかと。

実行速度だけじゃなくて、行数とか開発速度とか、そういう点も見てみたい。
□7×7=4□□ [sage] 04/09/27 01:56:58:AZOHiQw2
実行速度も、行数も、開発速度も言語に依存するからなぁ。
速度はCが有利だし、
行数と開発速度ならVBが有利かな。
言語の壁を越えて、プログラムを競うってのは難しいね。
□7×7=4□□ [sage] 04/09/27 01:58:54:FAVJMplI
速度は、DelphiとかOCamlとかならCとそう変わらなくない?
□7×7=4□□ [sage] 04/09/27 02:11:55:hP7/jwJA
ソースを見られるとまずいという弊害が発生するくらいなら
速度なんか競わなくていい
□7×7=4□□ [sage] 04/09/27 02:28:08:AZOHiQw2
Delphiとかあまり知らないんだよな…
競うのも、結局人が増えなきゃ無理な話か。

もともとの趣向どおり、好きなものを好きなように作って、
偶然同じものを同じ言語で作ってる人がいて、
両者が競ってみようか、って言ったらそのときやればいいのかな。
□7×7=4□□ [sage] 04/09/27 12:27:00:XYrWe4jW
2ちゃんでexeだとウィルスとかあるとやだしなー。
同じCでもコンパイラで変わっちゃうし。

たかがパズルで公開の弊害どうこうってのもどうかと。
どうせすでにWEBにけっこう存在するんだし。
勝負するなら締切日をきめてそれにあわせてうpすればいい。
□7×7=4□□ [sage] 04/09/27 23:06:54:AZOHiQw2
締め切り制か、まぁたしかにexeは怖いからねぇ、それが妥当な線か。

今日Cマガ買って来ちゃったよ。
俺パズラー出身だからアルコネと呼んでいるのだが、ナンリンてあれか。
Cマガのは、線が通らないところがあってもよい、ってところがアルコネと違う。

遺伝的〜は確かにスケコンに向いてそうとは思うが、
どの状態とどの状態が、隣接する要素なのかとかしっかり考えないといけないな。
進可 ◆Sinka1my5k [sage] 04/09/27 23:44:24:Zw4gUmi/
結局Cマガ買っちゃったよ。俺、DELPHIなのに。

なんかスケコンでいつの間にかどんどん話が進んでるぞ。
ところでよ、スケコンで発表すべき一番重要なものは『答え』ではないのか?

□7×7=4□□ [sage] 04/09/27 23:58:18:FAVJMplI
そうですね。最適化問題ならソース云々は関係なくて
最適解(近似解)を一つ示せばそれでいいし。
□7×7=4□□ [sage] 04/09/28 00:00:27:c+cfD1Pe
1.いかによりより答えを出せるか。
2.いかに早く出せるか。

だな。あとは保守性とかもあるけど。
とりあえずスケコンやるなら、とにかく1だけ考えて作ればいいんでない?
それだけで大変そうだし。

GAとかIAとかやると大変だし、ランダムサーチ→山登りくらいで十分かな、と思う。
でもせっかくだからIAでやれば勉強にはなるんだよなぁ。
□7×7=4□□ [sage] 04/09/28 00:08:05:dUgtREzb
前に何かの論文で見た、いろんな形の複数の四角形を
大きな四角形の中に無駄なく配置する問題のGA的解決
たしか、LSIのフロアープランに使うんだったかな

遺伝子としては、配置する順番だけを情報として持っていて、
ある程度賢い配置アルゴリズムが、与えられた四角を
現状の配置に対して、できるだけ下へ、できるだけ左へ、というような
基本方針で一意に配置場所が決まる方法で配置する

で、遺伝子の交配は順序情報をスワップするんだったか
切り取って後ろに付けるんだったか、そんな感じの単純なの
本来はここらへんが一番肝なんだろうけど

それと似たアプローチでスケコンが解けないかなと構想中
っていうか、とりあえず解いて答えを出力してみせるところまでは
すぐに作れる筈
□7×7=4□□ [sage] 04/09/29 09:37:40:7uZo8eAr
フロアプランで脱線。
ttp://http://www.geocities.co.jp/Berkeley-Labo/6317/seqsqr.htm
これの隙間を埋めるのも面白そうだ。
□7×7=4□□ [sage] 04/09/29 22:31:29:grgLYnlZ
よく考えたら、GAやIAでスケコンできるわけないや。
スケコンの性質上、「子供を作る」ということができない。まったく思いつかない。

ちょっとじっくり考えて見たけど、
しらみつぶし的なアルゴリズムしか思いつかなかった。
それでもいいから作ってみようかな…。
進可 ◆Sinka1my5k [sage] 04/09/29 23:55:50:z4v4NA9V
>137 スケコンの性質上、「子供を作る」ということができない。

マスという細胞壁の中に、単語が入ってきてランダムに今までの単語と繋がったり
字数/ポイントで効率が低いのが出て行ったりするのを想像した。

で、中身が詰まっててポイントの高いのが分裂したり
中身が詰まってる割りにポイントの低いのが死んだりしてるような
原始の海みたいな光景を想像した。
□7×7=4□□ [sage] 04/09/30 00:11:19:L/LTDnsB

いや、いけるんじゃない?
一つの盤面から他の盤面に過渡できるように、
その中間に生じる不正な盤面を許容すれば。

たとえば、盤面の表現方法として、各ワードについての
「何行目/何列目の何マス目から入っているか(または不使用か)」
という情報を持つことで盤面を表現したとして、
混血の仕方を、各ワードの位置情報を両親のそれぞれどちらか一方から引継ぐ
ことによって実現したとすると、
その結果生じる子は多くの場合適正な盤面とはならないわけだけど、
それもアリ、ただしその不正さに応じて評価関数の減点対象、ということにすれば。

□7×7=4□□ [sage] 04/09/30 00:14:34:DT1O8cMJ
の案も考慮してくれ
□7×7=4□□ [sage] 04/09/30 00:23:22:L/LTDnsB

多分、漏れが聞きかじってる遺伝的アルゴリズムは、その
「スワップする」ってやつだと思うんだよね。
で、がそのスワップではないかと。
□7×7=4□□ [sage] 04/09/30 00:53:59:Guxgb0vP

うーん、いまいちイメージが湧かない、というよりは
先が見えない。

それで交配すると、ほとんどの子は親より低い点数(不当なための減点)になり、
あっという間に淘汰されてしまわないだろうか。
仮に評価の高い子ができたところで、
最終的にはそれを不正じゃない状態にしなきゃならないわけだが、
そうやって交配してできた状態を、正当な状態にもっていけるもんだろうか。
もっていけたとしても、持っていく間に盤面の状態はかなり変わってしまい、
評価が下がらないだろうか。

「だろうか」ばっかりで、やってみなきゃわからないけどね。
□7×7=4□□ [sage] 04/09/30 01:07:33:oVjmfYlM

お絵かきロジックは多重背理が必要なのもあるのでその点留意。
ま、確定しなきゃ再帰処理かけりゃいいだけなんだけども。
多色問題になると難度が格段にうpするようなので、手応えも上がるかも。


人間のトップは十分に破る余地があると聞いた記憶がある。


むしろこのスレでソースもアルゴリズムも公開しまくって情報交換しつつ
切磋琢磨する方がいいんじゃないか?
□7×7=4□□ [sage] 04/09/30 01:19:10:oVjmfYlM
で、スケコンとGAについて。

スケコンは、全体が一繋がりでないといけない。
つまり、登場する単語は必ず他の単語と交わることになる。

で、単語と単語は必ず縦と横に一点で交わる。つまり、
「交わる単語はどれか」
「自分の何文字目が交わるか」
「相手の何文字目と交わるか」
この3つが判明すれば、二単語の位置関係は一意に定まるわけだ。
(厳密には縦横交換した二通りになるけども)
□7×7=4□□ [sage] 04/09/30 01:39:32:oVjmfYlM
これを踏まえてとりあえずコーディングしてみるなら、

(交わる単語の番号)(自分の何文字目か)(相手の何文字目か)

のセットを1単位として、単語の数だけ並べてみてはどうだろ。
登場しない単語については、(交わる単語の番号)を0にでもすればいい。

この遺伝子情報をもとにスケルトンを組み立てれば、全ての単語の位置
関係が、一意に定まることになる。

この表現ならば交叉や突然変異も、比較的簡単に行えるはず。
このままじゃ致死遺伝子(文字同士の衝突など)の発生率は高いけどね。
そこをどう防いでいくかは今後の課題ってことで。
□7×7=4□□ [sage] 04/09/30 01:42:39:2IGUYa9o
単語二つが十字に組んでいる部品や、もっと複雑に組んでいる部品同士が交雑するというのは?
□7×7=4□□ [sage] 04/09/30 02:12:18:L/LTDnsB

それ良案っぽいね。
どうせ、各ワードに対して、それと交われるワード(及び位置)
なんて、百とかせいぜい二百くらいしか無いんだから、
それをあらかじめ全部調べて付番しておくこともできるかと。

変な物ばかりできないためには、の案を取り入れて
「交わっているワード同士は行動をともにする傾向をもつ」
とかにすればいいのかも。
◆mjGBW.jPnM [sage] 04/09/30 10:25:35:wjlDrJHi
22の後者ところの人です。ROMでした。どうぞよろしく。

つまり遺伝子は交点中心に考える、ということか。うまい案だな。
の交差位置情報は「交差可能な文字のうち何番目」の方が死ににくくなっていいかも。

「単語番号1:単語番号2:単語番号1の、2と交差可能な文字のうちの何番目か:単語番号2の、1と交差可能な文字のうちの何番目か:」
を全通りリストにして並べて、その交差があるかないかの01をランダムに決めてしまえばよいのか。
これなら盤面も(縦横の入れ替えはあるけど)遺伝子で一意に決まるのでは?

スケコンは40単語だし、実際の可能な交差を考えれば、
問題によってはカナなので交差が少なければ1000通りもないかも。
□7×7=4□□ [sage] 04/09/30 11:04:15:L/LTDnsB

適正な盤面とは限らないけど、一意に決まることは確かだよね。

盤面の評価(広さとか、正当性とか)に手間がかかりそう、というのが
交点中心のアプローチの難点、なのかなあ?
□7×7=4□□ [sage] 04/10/02 16:56:30:2IK9AgUy

いや、意外とそんなに手間はかからない。多分。

詳細はまたのちほど。
□7×7=4□□ [sage] 04/10/03 01:14:14:fGxgMTUA
たとえば、単語が以下の3つだったとする。
イツテヨシ オマエモナ キモイヨー

交点に付番してその交点で交わるか否かでコーディングすると
1. [イ]ツテヨシ と キモ[イ]ヨー で
 0 : 交差しない
 1 : 交差する  (以下同様)
2. イッテ[ヨ]シ と キモイ[ヨ]ー で…

3. オマエ[モ]ナ と キ[モ]イヨー で…

この3ビットのオンオフになるが、このうち 1 ビット目 と 2 ビット目が
同時にオンになると(110, 111)、当然ながら致死遺伝子となってしまう。
□7×7=4□□ [sage] 04/10/03 01:17:04:fGxgMTUA
そこで単語の交わりに付番して、遺伝情報で交差位置を示すとどうだろう。

1. イッテヨシ と キモイヨー は
 0 : 交差しない
 1 : [イ]ツテヨシ と キモ[イ]ヨー で 交差
 2 : イッテ[ヨ]シ と キモイ[ヨ]ー で 交差

2. オマエモナ と キモイヨー は
 0 : 交差しない
 1 : オマエ[モ]ナ と キ[モ]イヨー で 交差

「21」だったら下のようになるわけだな。

  オ  イ
  マ  ツ
  エ  テ
キモイ.ヨー
  ナ  シ
□7×7=4□□ [sage] 04/10/03 08:01:11:JD8JZncH

致死にしないで、どちらか一方だけが発現するように両方のタイプを計算させればよいのではなかろうか。
□7×7=4□□ [sage] 04/10/03 09:32:53:fGxgMTUA

みたいにすれば、片方だけを発現させるような処理が不要になる。

だと
 101 011
を交叉させるときに
 1|01 0|11
で一点交叉させると
 110 001
明らかな致死遺伝子が発生する。

の方法だったら
 10  21
 1|0 2|1
 11  20
明らかな致死遺伝子の発生は抑制できるし、交差位置の交換もスムーズに行える。
□7×7=4□□ [sage] 04/10/03 09:42:43:fGxgMTUA
ところでスケコンって

   キ
イチゴ
  ヨウキ
  ウ

みたいに2×2のカタマリが出来るのはセーフだったっけ?
□7×7=4□□ [sage] 04/10/03 09:43:00:1iJ9pfCR
,153のデータ例の時、突然変異は
ge_num[] = {3, 2}
i = rand() % 2;
gene[i] = rand() % ge_num[i];
みたいにすればいいのかな?
156 [sage] 04/10/03 09:44:16:1iJ9pfCR
アンカー訂正
誤),153
正),154
□7×7=4□□ [sage] 04/10/03 13:14:56:hr5fxi/a
>155
問題ないはず。過去に何度か見た覚えがあるし、ルールにも引っかかってない。
□7×7=4□□ [sage] 04/10/03 14:30:36:QzQXbx5l

OKなのだけど、それを考慮に入れ始めると盤面の不正性の検討が
ややこしくなる気がするんだよね。
だから、「隣り同士の行/列に言葉が入る時は、必ずズレて入るようにする」
というつもりでやった方がいいのかもしれないって漏れは思う。
□7×7=4□□ [sage] 04/10/03 14:47:24:xDvfkawO
そう?
統一的に簡単な方法でチェックできる筈だけど
◆fFfm.OLAKE [sage] 04/10/03 15:47:49:Ae5E6zE2
波及効果のハタンチェックプログラムって作れませんかね?

作者側が解答として想定した盤面(数字のみ)を入力して、
その盤面がルール2を満たしているかどうかを調べる、みたいなの。

このスレの優秀な頭脳さんにぜひお願いしたいです。
□7×7=4□□ [sage] 04/10/03 17:26:48:xDvfkawO
ソルバーでいいんじゃないのかな
作成途中にリアルタイムでチェックしたいとか、そういうのかな
◆MfK.LMS3eY [sage] 04/10/03 18:20:35:pqL5funY

やっぱ漏れだけじゃなかったのね、そういうの欲しかったの。

つー訳でExcelに入力してチェックするためのマクロ、既に作ってあります。
左上から1文字ずつ見て回るという芸のないマクロですが、
そんなんでよかったらご提供申し上げます。
ファイルそのままどこかにうpするか、マクロだけテキストでここに書き込むか、
そういう経験のない文系の漏れなので、ご意見をいただきたいと。

あ、そーそー。
実は、Mac版Excelでしか動作確認してないけど、大丈夫だよね、きっと。
□7×7=4□□ [sage] 04/10/03 21:25:23:gMV9GNsP

遺伝子表現はってことでOK?
そのままだと、2単語の交差パターンが多ければ多いほど「交差なし」が
選択される可能性が下がってしまうので、確率の調整は必要かも。

たとえば、必ず半分の確率で「交差なし」を選択させるとか。
gene[i] = (rand() % 2 == 1)? 0 : rand() % (ge_num[i] - 1) + 1


そうか、dクス。
盤面に単語を全部埋めたあとにも、再度妥当性のチェックが必要になるな。
(2×2のブロックが不可なら、単語一つ埋めるたびのチェックだけで十分なはず)


ファイルを圧縮して流れにくいとこにうp、ってのが無難じゃないかと。
もしくはどっか無料のレン鯖借りるとか。
□7×7=4□□ [sage] 04/10/03 22:14:16:xDvfkawO
とりあえず寿命数日のアップローダを使って、
誰かが拾ってgeocitiesあたりにサイトを立てて保管すればいい
□7×7=4□□ [sage] 04/10/03 22:14:28:bZrT5H8I
このスレ専用のあぷろだでも欲しいとこだね。
156=157 [sage] 04/10/03 23:39:13:Motzdxt+

dクス。
GAはここで初めて知ったもんで(という言葉は言い訳にもならんが)その辺の考慮ができんかったとです。

>>All
これもゲームといえばゲームだしアプロダはこれ使っていいんじゃない?
ttp://http://gamdev.org/up/
□7×7=4□□ [sage] 04/10/04 00:01:31:8gLZKyMU

そこいいね。
そんなに頻繁にうpがあるわけじゃないだろうし、
ちょうどよさそう。
◆fFfm.OLAKE [sage] 04/10/04 00:19:14:aI2CqbK5

「解く」までのチェックはいらないんですの。
波及効果作りでいちばんきついのが、ルール2の矛盾がないかどうか
盤面見渡して調べる作業なんですが、要はそれさえできればじゅうぶん、ってことで。

ひとりにしてくれの余計な数字埋めプログラムがありがたいのと同じような感じ?
□7×7=4□□ [] 04/10/04 00:29:01:Quzmg33X

ttp://http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=236
こんなんでどう?簡略化しまくったけど。
□7×7=4□□ [sage] 04/10/04 00:41:02:7A19CjOT
javascriptか何かで動いてて、
違反する数字をマスに書いた瞬間に
音が鳴る、みたいなのがいいのかな
□7×7=4□□ [sage] 04/10/04 00:52:19:8gLZKyMU
いっそ波及効果エディタ、として作ったほうがよさげ
□7×7=4□□ [sage] 04/10/04 05:50:05:No17V/PN
へやわけでならそういうの見たことがあるけどな。
波及効果ってコンピュータには扱いやすそう。分断禁とか無いし。
□7×7=4□□ [sage] 04/10/04 13:18:49:YnpRPZ3V
波及効果は部屋の形の入力が面倒そうだね。
数字のチェックだけなら簡単なのだけど。
□7×7=4□□ [sage] 04/10/04 21:48:39:No17V/PN

どうかな。
へやわけの部屋に比べて確かに自由度が高いから、
人の入力操作は若干面倒になるだろうけど、
コンピュータの方としては大差ないんじゃないかな。
部屋の壁を何回またぐか、とか数える必要もないし。

□7×7=4□□ [sage] 04/10/04 21:59:49:jm36IUas

その「人間側が面倒臭い」ってことが言いたいんだと思うけど…

人が扱うのに適した上手いテキストデータの形式が思い浮かばない
チェックするだけなら数字だけですむけど、清書用に使うためには部屋の情報も欲しいしね
□7×7=4□□ [sage] 04/10/04 23:00:07:No17V/PN

そのようなエディタができたら、テキストデータの形式とかは不要になるんじゃない?
エディタ上で入力して、データはそのエディタの形式で持っていればいいんだから。
163 ◆MfK.LMS3eY [sage] 04/10/04 23:02:58:PuczEivm
>167 thx!
とりあえず、うpしてみました。
ttp://gamdev.org/up/img/1481.lzh

一応、職場のWinで動作確認&ウィルスチェックは済ませてあります。
使える人は使ってみてやってください。
□7×7=4□□ [sage] 04/10/04 23:05:40:jm36IUas

まぁそうなんですけどね
出来ることならあまりエディタに依存させたくないのよ
□7×7=4□□ [sage] 04/10/04 23:19:40:7A19CjOT
壁の位置情報と数字だけでいいんでしょ
例えば、各マスに左と上の壁の有無と中の数字の情報を持たせるとか
□7×7=4□□ [sage] 04/10/04 23:26:47:No17V/PN

ある程度のチェック機能とかつけるんだったら、たとえば
各ブロックに「ブロック番号」みたいなものを与えて、各マスに
自分のブロックの番号を持たせるとかの方が扱いやすそうかな?

問題を作成・表示するためだけのツールだったら
そういう形の方が簡単になるだろうけどね。
□7×7=4□□ [sage] 04/10/05 00:08:10:CcqAsIcI
内部データではそうすればいいと思うけど、
入出力用のテキストデータには要らない
◆fFfm.OLAKE [sage] 04/10/05 00:51:35:jzVf9hFr

さっそく使ってみました。便利!
まことに感謝感激でございます。
□7×7=4□□ [sage] 04/10/05 01:02:44:t+GcaMhr

あーテキストファイルで入出力するの? GUIじゃなくて?
なんかこう、盤面をマウスとかで操作して入力するようなものを想像してた。
□7×7=4□□ [sage] 04/10/05 01:13:43:CcqAsIcI
最悪、テキストでINとOUTを作った方が使いやすい
GUIで操作して、結果はテキストに吐き出す感じ

データの規格さえ合わせれば、そのデータを他のツールに
読ませたり、テキスト処理で加工したりできる
□7×7=4□□ [sage] 04/10/05 01:36:53:t+GcaMhr

いや、たぶん言いたいことは分かるんだけど。
でもそのテキストに出力ってのは、もうそのままニコリに郵送できるみたいな
整形された盤面を出力すればいいんじゃないかな?

データの規格を合わせればって話は、内部で扱うデータ形式を
そのまま書き出したようなものでもいいって思うし。
□7×7=4□□ [sage] 04/10/05 02:09:51:CcqAsIcI
まあ、思想みたいなもんだから
windowsとmacとunixと、どれが一番優れてるかみたいな話
□7×7=4□□ [sage] 04/10/05 17:24:31:V+8XAUeD
波及効果のテキストデータの形式のたたき台として。

上段は部屋の分割。同じ文字を使っていても、縦横で接していない場合は違う部屋。
下段は数字の位置。 '-' は白マス。
上段と下段の間は1行以上あける。

チェックツールの入力として使う場合には数字をすべて入れた形で入力すればよいかと。

例)

abaa
bbaa
aabb
aabb

----
--2-
---4
2---
□7×7=4□□ [sage] 04/10/05 17:29:19:FfO/yALo

やっぱその形に落ち着くわな
テキスト打ち込むときに四色問題としても楽しめる特典付き
進可 ◆Sinka1my5k [sage] 04/10/05 18:28:11:Ppoo2ciE
なんか急にスレの進みがよくなってきたね。

新しく解答支援ツールページみつけたので紹介。たぶん初出だと思う。
ttp://homepage2.nifty.com/lonelyperzoo/
ナンプレ、ぬりかべ、美術館、ましゅ など。

>169 を読んで納得。確かにチェックが一番しんどそうだし
入力は、数字打ってリターン、数字打ってリターンだけにすれば単純作業の分、早いよな。
数字も大体1〜6程度だし。

データー形式としては188がかなりいいと思う。
ただ、パソで処理するなら違う部屋は必ず違う英字にした方がいい。
入力はそれでよしとして、内部で清書するってパターンもありだけど。
□7×7=4□□ [sage] 04/10/05 19:21:01:CcqAsIcI
波及効果ジャイアントで部屋数が26を越えた場合
188 [sage] 04/10/05 20:56:38:V+8XAUeD

大文字を使えばいい。なんておもったんだけど、
実際数えてみたら、10×10でも部屋数は26を越えて、
ジャイアントでは100オーバーするのでダメ。
この分だとスーパージャイアントの部屋数は256を軽く越えそうですよ。
波及効果の部屋数は多いですね。ちょっと意外。



数字の10以上対策を考えていなかったことに気がつきました。
10以上の数字に対してはアルファベットで入力させるという案を出しておきます。
あまりないとおもわれるので、対応だけできればいいと思うんだけど、
これはどこかで上限を決めないといけない話。

個人的には大文字、小文字の使い分けはしたくないのですが、使い分けて61まで対応。
35もあれば足りるとは思っているけど、一応。

例)

a=10,b=11,...,z=35,A=36,B=37,...,Z=61
□7×7=4□□ [sage] 04/10/05 21:29:27:QBgUjekG
189 が言うように同じ色を使い回せばいい。
どうしても色塗り分けが面倒なら、10進でスペース区切りにすれば上限など気にする必要なし。

もともとテキスト形式が欲しいのって単に保存しておくのに便利だからでしょ。
入力は使いやすいGUIを作って、出力でいくつかの形式を選べるようにしておけばいいかと。
□7×7=4□□ [sage] 04/10/05 21:53:02:CcqAsIcI
どうせ入力はGUIなんだから、データの視認性は
高くなくていいけどね
□7×7=4□□ [sage] 04/10/06 00:03:45:gNsc5RvD
えっ、手打ち想定してたの俺だけ?

プログラムでやるなら、ぬりわけのアルゴリズムが気になる。
適当にやっても多くて6色ぐらいで収まりそうだけど、
確実にN色以下に塗り分ける簡単な仕組みってあるかな?
Nは4じゃなくて5でも6でもいいんだけど。
◆MfK.LMS3eY [sage] 04/10/06 07:43:48:G07XEIur
>183
喜んで貰えてなによりです。
そして、もし感謝していただけるなら、
漏れの分のノルマ、持ってきやがれぇ( ・∀・)つ●ドゾー
□7×7=4□□ [sage] 04/10/06 20:32:41:a9j4tXHN
=183
遅ればせながら使わせていただきました。
作りながらの途中確認がとてもラクだった。
ありがとう。
◆fFfm.OLAKE [sage] 04/10/06 23:57:53:Aoa4xmjV
178と183は別人なのだが!
197 [sage] 04/10/07 00:07:54:224Ch0Ni
178=196 or2
◆fFfm.OLAKE [sage] 04/10/07 00:09:14:JRCLND0o
197さんはおしりが大きいですね!
□7×7=4□□ [sage] 04/10/07 01:42:46:IWIY5PjT

四色問題?

そんなにアルゴリズムに凝らなくても大丈夫だと思うよ。
マジレスマニア ◆KMAjireS2U [sage] 04/10/07 02:04:21:r/h5hX0q
いままで名無しだったけどモノを作り始めたのでコテにします。

みんながスケコンの遺伝子について話あうさなか、
(と言っても、話は既に波及効果に移っているようですが)
遺伝子情報なんて考えず、しらみつぶし法で
とりあえず1つの解にたどり着くのができました。

2つめ以降の解を探しにいくところは作ってる最中だけど、
既に仕様は頭の中で固まってます。
全ての解を巡回してくれるはず。
問題はどんだけ時間かかるか…。
□7×7=4□□ [sage] 04/10/08 01:07:19:SmCYjtpD
【IT】パズラーに福音?Webを使った多言語クロスワードパズル解答プログラム
ttp://news16.2ch.net/test/read.cgi/scienceplus/1097156523/l50
□7×7=4□□ [sage] 04/10/09 20:37:52:B2U57s9O
ttp://http://www.slis.tsukuba.ac.jp/school/lecture/sotsuron/H13/13000090.pdf
とりあえず貼ってみる
進可 ◆Sinka1my5k [sage] 04/10/09 21:08:49:asdz3vb9
フォーマットの確立。どうせなら、線を引くのや黒マスを置くのや
壁を作るのやらを統合的にまとめられないかなぁ?

あと、スケコンやってみようとしたけど、まだ俺には難しすぎるようだ。
□7×7=4□□ [sage] 04/10/10 00:49:50:8vyvH3+J
平均点を上回るだけじゃあなあ
マジレスマニア ◆KMAjireS2U [sage] 04/10/10 02:27:26:zbuthlUQ
いざ、ニコリの問題を入力してやってみたら、
まだまだ実装しなきゃならんことがいっぱい。
でも着実に完成に近づきつつあります。


やはり全ての解を探索するのは時間がかかりすぎるようですね。
まぁ、とりあえず完成してから考えよう。
□7×7=4□□ [sage] 04/10/10 02:34:12:8vyvH3+J
時間かかるというか、無理でしょう
40の候補から組むべき26個選ぶだけで、2.3E10ある
□7×7=4□□ [] 04/10/10 03:00:22:+oIHUSY6
6色で確実に塗り分ける方法

全ての部屋の中から隣接する部屋の数が5以下の部屋を全て取り除く。
この部屋は回りの部屋全てが違う色だったとしても残りの色で塗れば良い
「その部屋を取り除いた状態で」隣接する部屋の数が5以下の部屋を全て取り除く。
このようにすれば全ての部屋が無くなるので取り除いたのと逆の順に塗っていけば良い

□7×7=4□□ [sage] 04/10/10 03:39:34:jz1r/jzJ

「途中で6以上の部屋ばかりになってしまい、操作が続けられなくなる」という
状況が生じないというのは…、漏れはすぐには分からないんだけど、そうなん?
209 [sage] 04/10/10 04:01:32:+oIHUSY6
全ての部屋が6、という状況を想像してみるとわかりやすい。
これは正6角形を敷き詰めた状態(もしくはレンガを積み上げた状態)だが、
6を維持するためには無限平面にする必要がある。
波及効果の問題は当然有限平面なので淵に(とは限らないが)5以下の部屋は必ず発生する
□7×7=4□□ [sage] 04/10/10 04:21:22:jz1r/jzJ
そっか、グラフで言ったら平面グラフになってないといけないんだ。とんくす。
□7×7=4□□ [sage] 04/10/10 11:04:18:3wbgtNqD
ܷܵܶ

WindowsXPは行間が空いて、目に優しいなあ!
□7×7=4□□ [sage] 04/10/10 22:43:58:B8wtK5ds
NGワード推奨

&#179
&#18

を小文字にしたもの。IEの表示に悪さをし、行間を一行空けさせる。
□7×7=4□□ [sage] 04/10/10 23:55:01:1cZZT5pz
□7×7=4□□ [sage] 04/10/11 00:57:04:2P9eSKUU
GAのスケルトンへの応用例は実際に過去に存在しています。
ttp://gorogoro.cis.ibaraki.ac.jp/web/html/sotsuron.html
の平成六年度参照

遺伝的アルゴリズム(北野宏明)という本にも軽く触れられていて、
(上の論文と関係あるのか知らん)
その中ではコンテストの第一位よりもさらに良い解が得られたと書かれています。
マジレスマニア ◆KMAjireS2U [sage] 04/10/11 01:07:30:+0jRnF9R
とりあえずスケコン完成。
ただしのパターンは現れないので、もうちょっと改良が必要。

で、実行してみたわけですが、全然進まない。
およそ全体の4000分の1に相当する処理が、10分たっても終わらない。
仮に10分で終わったところで、1ヶ月流さないと終わらないことに…。

とりあえずこれを基盤として、ここから「点数が高くならなそうなパターン」の
枝切りとか、GAへの応用とかを考えてみます。


…と書き込んでいたら、既にやった人がいるんですね。
いったん凍結して他のでも作ろうかな。
進可 ◆Sinka1my5k [sage] 04/10/16 23:06:23:Mt6fdrRy
>211
形自由な部屋が全てN個以上の他の部屋に接しているとして
そのNの最大値は幾つなのだろう?
3つまでは簡単にできるんだが
□7×7=4□□ [sage] 04/10/16 23:09:33:fVNP9dOc

四色問題の結果を定理として認めるなら、三つが最大
□7×7=4□□ [sage] 04/10/17 00:15:46:DafY98Vx
すべての部屋が他の4つの部屋と接している例

1111
2342
2432
1111

私もで納得できているわけではないけど、
(6以上を実現するためにはハチノスにならんといけない理由がわからん、でもそれ以外が無理っぽい気はする)
211 を否定するためには有限平面で6の例を実現しないといけないわけで。

でも、5はいけそうだ。がんばる。
□7×7=4□□ [sage] 04/10/17 09:53:34:MAeLBS2h
極大平面グラフにしたときに頂点数に対して辺が一番多くなる。
そのときにオイラーの定理 v - e + f = 2 と極大平面グラフで 2e = 3f から
e <= 3v - 6
平均次数 d = 2e / v <= 6
より次数 5 の頂点が存在する
□7×7=4□□ [sage] 04/10/17 10:57:16:QZePDZVe
グラフ理論は下地なしに入れるもの?
220 [sage shikenn ha sabori] 04/10/17 11:04:13:DafY98Vx
出来た。

11111111
23322442
21443312
21334412
24422332
11111111

ここまでくると4色塗りわけも難しくなってきて楽しいかも。

最小部屋数、最小面積が気になってきたけど、どんなプログラムを組めばよいかわからん。
上記のは結構いい線いってると思うんだけど。
進可 ◆Sinka1my5k [sage] 04/10/17 13:05:43:egxzbayB
   ゚  ゚


  ( Д )
209 [sage] 04/10/18 18:49:53:nemeoSOh
最小部屋数は当然12。正12面体を平面に展開しただけだが

1111111
1433223
1424413
2423313
2411443
2222222

接する国の数が全て6以上の地図が有限平面では不可能な証明は
正多面体が5種類しかない事の証明と同じで良い筈なのだが。

ところで、ここの書き込みを参考に自分でナンバーリンクソルバーを作ってみたのだが、
の問題の短絡チェックは3秒で終わったぞ。
で、G16の2番を調べたら9分で終わったので4番を調べたのだが・・・
丸2日経っても終わらなかったorz
220=223 [sage] 04/10/19 00:10:39:4NDAvdeX

なるほど、わかってきた。オイラーの多面体定理より

すべての部屋が接する部屋の数は2以上で、
部屋数 >= 12 / (6 - すべての部屋が接する部屋の数)

が求まるのか。

確かに5の最小部屋数は12で、6は不可能だ。
4の最小部屋数は6で、正6面体を平面に展開したものか。

220は8部屋……
□7×7=4□□ [sage] 04/10/19 00:46:32:E7zI145R

正六面体をっていうことは、こういうことかね。

11111
12231
13131
13221
11111

でもこれは三色で塗り分け可能だよ。
□7×7=4□□ [sage] 04/10/19 00:56:44:E7zI145R
これならいいのかな。

11113
14223
24113
22223
□7×7=4□□ [sage] 04/10/19 00:59:34:E7zI145R
十面サイコロの形は4色必要な形だって思うんだよね。
ttp://images.google.com/images?q=10%E9%9D%A2%E3%82%B5%E3%82%A4%E3%82%B3%E3%83%AD
で、それを八面にしたのがで、六面にしたのがと。
□7×7=4□□ [sage] 04/10/19 01:06:07:E7zI145R
ごめん、誰も塗り分けの話はしてなかったね。スマソ
□7×7=4□□ [sage] 04/10/19 01:52:20:4NDAvdeX


3色でいけるよ!

11113
13223
23113
22223

10面サイコロの形は6n面の場合、3色、それ以外は4色になるのかな?


正多面体についてまとめてみた。

正4面体:4色
正6面体:3色
正8面体:2色
正12面体:4色
正20面体:3色

正20面体が3色であることがすぐにわからなかった自分は大馬鹿だと思いました。
□7×7=4□□ [sage] 04/10/19 02:36:29:E7zI145R

あーうん、漏れもそのあと考えて気がついたんだけど、話題がそれてるって思って。

(2n)面サイコロについてもその通りって思うよ。
□7×7=4□□ [sage] 04/10/20 07:07:55:D+jWoIBz
>>161- からの流れだけど、波及効果エディタ? みたいなやつ
リアルタイムでエラーチェックができる。
ttp://gr.vxx.jp/haky.html
個人サイトだけど。
進可 ◆Sinka1my5k [sage] 04/10/23 19:14:12:wvpGaeeO
>233
いいなぁ、こんなの作りたいなぁ。おみくじワロタ。

できれば人間っぽく解いていくようなの作ってみたい。
法則なんかを自分で見つけて上達していくようなAIがあればいいけど
さすがにそこまでは難しすぎるよなぁ。
□7×7=4□□ [sage] 04/10/23 19:39:18:A+XsZTs8
許可する仮定のレベルとか使っていい手筋とかを設定すると、
そこまでは勝手に解いてくれる、とかにすると作るのが楽になりそう
◆.jC7ANgFY. [sage] 04/10/31 14:09:00:EA+Cq5H/
私は美術館作成支援ツールをVisualBasic6.0で作ってみようかな。
VB6はマイナーかもしれないけど、
◆.jC7ANgFY. [sage] 04/11/03 00:21:20:xjRQj9eU
まだ支援ツールとしてはまだまだだけど公開。参考までにどうぞ。
VB6持っててEXEは不安であればソースからどうぞ。

☆ビジュアル美術館β

VisualBasic6.0用ソースパック(使用した画像も同梱)
ttp://nun.nu/fhdic.fbox.info/VisualBijutsuSrc.lzh

WindowsEXE実行ファイル
ttp://nun.nu/fhdic.fbox.info/VisualBijutsuEXE.lzh
□7×7=4□□ [sage] 04/11/03 21:30:21:dzdLhqp5

よさげですね。
点対象に配置とか、漏れは(へやわけで)やろうと思って投げたけど、
やっぱあると便利ですね。

ところで、三つあるモードは統合できるのでは?
◆.jC7ANgFY. [sage] 04/11/03 23:57:40:xjRQj9eU

当初はモード統合していましたが、ミスで勝手に盤面が崩れていくのが
ちょっと(Undoすればいいのだけど)使いにくいなぁと思い、普段作る
順番どおりにやってみました。今は○を置くと上下左右に×を打つ機能
しかありませんが、今後は中級問題まではサクサク作れるぐらいの
問題を解くプログラム(理詰め型)を搭載しようと思っています。
もっと便利なものをと考えてもなかなか案がでてこないもので、、、
◆.jC7ANgFY. [sage] 04/11/05 16:06:36:7CmwjSc2
支援ツールとして十分なくらいのレベルになりました。
初級手筋(単純発生、単純否定、孤立、救出)と
中級手筋(斜めとび)を搭載しています。
慣れれば美術館を3分以内で作れます。
ちなみに私は運がよければ90秒で作れます。

☆ビジュアル美術館

VisualBasic6.0用ソースパック(使用した画像も同梱)
ttp://nun.nu/fhdic.fbox.info/VisualBijutsuSrc.lzh

WindowsEXE実行ファイル(高速化版)
ttp://nun.nu/fhdic.fbox.info/VisualBijutsuEXE.lzh

WindowsEXE実行ファイル(デバッグ)
ttp://nun.nu/fhdic.fbox.info/VisualBijutsuSafe.lzh

現在、私が使う上ではエラーは発生していませんが
エラーが発生するようでしたらデバッグで同じ作業をし
そのエラー内容と状況を伝えていただけると幸いです。
◆.jC7ANgFY. [sage] 04/11/05 19:51:57:7CmwjSc2
色々反省点があるのでまた時間ができれば作り直そうと思います。

・盤面の管理方法がずさんだった
・盤面解析が異様に低速
・数字の点対称表現がなっていない

などなど。
進可 ◆Sinka1my5k [sage] 04/11/06 17:44:20:7cgDj8wr
グッジョブ! ちと操作がわかりづらいのが難点だけど良い感じ。取説キボンヌ。
現在が何モードかわからないのはちと辛いね。
◆.jC7ANgFY. [sage] 04/11/07 01:13:13:2cVM9ojl
自動作成の方もつくろうかな。そこで質問なのですが、
"解き味の良い"美術館って具体的にいうとどういう物なんでしょう。
例えば、「連鎖が出る」とか「ある程度光が伸びる(4つぐらい)」とか
そんなもんなんでしょうかねぇ。
□7×7=4□□ [sage] 04/11/27 06:36:15:PqMSgcgf
ふと思った。ナンリンソルバーの短絡チェックにバグが無いか調べたいのなら
自動生成プログラムを作って出来た盤面を180度逆向きにして解いてみれば良いじゃないか。
完全な問題として検出された盤面に短絡解が発見されたら短絡チェックのミス。
□7×7=4□□ [sage] 04/11/27 19:51:24:NuuQcuVh

いつもお世話になっているナンリンソルバー、
15x15の趣向作を入力したら瞬殺されました_| ̄|○
0分0秒032ですって。

すげー
□7×7=4□□ [sage] 04/11/28 03:44:08:XulpM55G
>244
短絡解発見時に答えが表示されるとして、
その答えが違う数字を結んだり途中断線があったりしたらバグありってこと?
□7×7=4□□ [sage] 04/11/28 08:05:46:rAkz7xf9
短絡解の発見されなかった盤面を180度回して再度解かせて短絡解が発見された場合は
元の盤面で短絡解になり得るパターンを枝刈りで見落とした事になる。
このチェック方法はナンバーリンクの解答図として有り得ない解を出さなくなった上で
枝刈りが正常に行われているかのチェックに使える。。。かも。
高速化を考えると結構無茶な枝刈りをやらざるを得なくなるので
短絡解の見落としが無いかチェックする方法は結構重要になってくる。
短絡解のある盤面を片っ端から探して突っ込むだけでは限界があるんで。
□7×7=4□□ [sage] 04/11/28 17:22:34:5FFWVvyz
なるほど、さらに発展させれば点対称線対称を全部入れて
同じ短絡あり面で8通りの短絡チェックができるな。
そしてどれか一つでも短絡無しと判断すれば
そのチェックはどこかで見落としがある、という訳か。
□7×7=4□□ [] 04/12/07 11:52:10:HCAf40aS
GAの教科書にまんまスケコンの応用例があって、
ずいぶん昔にやってみたんだけど せいぜい平均賞どまりだった。

一方、語彙制限付き しりとりにGAつかったら きれいにのって
あっさり 最適解に到達。
試行ごとに収束する解が違っておもしろかった。

GAするときは問題解析を結構がんばらないときれいに収まらない印象。
□7×7=4□□ [sage] 04/12/07 13:22:18:Emh+XjtI
そこが一番のキモなんだけど、論文を見てもよく判らない罠
□7×7=4□□ [sage] 04/12/14 02:16:31:HTswYIBD
プログラムでスケコン平均超えるのって大変なんだな・・・
昔書いたプログラムをちょっと弄って101号のを解かせてみたのだが
平均6918、トップは7737なのに最高6817までしか出ない・・・
□7×7=4□□ [sage] 04/12/18 02:24:04:wIbgghus
ルービックキューブをCUIベース(unixとか)で組もうと思います。
面の色のデータベースはどう定義するのがエッセンシャルでしょうか?
おそらく面(0-5)xX(0-2)xY(0-2)の3次元配列になると思います。
面の中の座標軸をどう定義すると数学的にきれいなんでしょう?
□7×7=4□□ [sage] 04/12/18 02:51:53:z3wyA2Iw
ソルバー作るの?
□7×7=4□□ [sage] 04/12/18 14:26:02:3iKGvcXz
実は3*3ルービックキューブは各面の中央は全く動かない。
□7×7=4□□ [sage] 04/12/20 01:53:00:9ynjIymM
ソルバーといっても、単純にバラバラなルービックキューブを入力すると、
回し方を返してくれるというものにはしたくないと思います。
そういうものはたくさんあるんで。

今回の目標は「一般解を導き出すアルゴリズム」です。
メタ・ソルバーというのか、ソルバー・メーカーというのか、
とりあえず「ルール」を入力として、「ソルバー」を出力するというのが目標です。
コンピュータにルービックキューブを「揃えて」もらうのではなくて、
ルービックキューブの揃え方を教えてもらう*のです。
ということは出力として出てくるものはアルゴリズムです。
プログラムのような、「ここが赤で反対が青だったら右を回す」という
条件分岐を含む記述になります。これを綺麗に出すために面の定義を綺麗にしておきたいのです。

とりあえず展開図で面番号を
 4
3502
 1
と定義してこの展開図の左右をx軸-+,
上下をy軸-+とした3次元配列cube[面][X][Y]として
動くルービックキューブを作ってみました。
xy軸がすごく納得行かず不満です。

(*)一般解とはいうものの、3^3ルービックキューブを渡して
Optimal Solverが出てくるのを待つ、というのは難しすぎるので、
まずは部分的なゴールから。1面完成なんかがいいでしょう。
Optimalでなくてもいいです。
□7×7=4□□ [sage] 04/12/20 03:19:33:3nOoXzUq
ルービックキューブの、全ての状態からの
6面完成までの手順の数って、10いくつとか、そんなんだったような
それを割り出すべし
□7×7=4□□ [sage] 04/12/21 22:59:14:0JoUISFT
test
□7×7=4□□ [sage] 04/12/21 23:00:29:0JoUISFT
スーパーマリオブラザーズの任意の面をクリアできるソルバーってないだろうか?
入力は画面、出力はキー操作と言うことで。
□7×7=4□□ [sage] 04/12/21 23:22:57:0JoUISFT
探したら出てきた。
ttp://http://robots.engadget.com/entry/2116781701378779/
やっぱりmindstormか…
エミュでできるやつを探してたのに。すごいなこれ。解けるんだろうか?
□7×7=4□□ [sage] 04/12/24 17:00:35:HqlGBaxt
何かブロックが山積みになっているなと思ったら、
mindstorm でコントローラを操作しようとしてるのね。

賢いというべきか、頭悪いというべきか・・・
進可 ◆Sinka1my5k [sage] 04/12/24 22:30:00:L/R8itia
Cマガのナンバーリンク、例の解き方がでてますなぁ。ニヤリ。
□7×7=4□□ [sage] 05/01/03 09:31:56:6Ewxm8RY
000000000000000000000000000000
000400000000000000030000000000
000000000000000000000005000000
000000000100000000000000000000
000003000000000006000007000000
000000000000000000000000000000
000000000000000000000800000000
000000000800000009000000000000
000007000000000000000000000000
000000000000000000000000000000
001000000400000000001100000000
000000000000000010000000000000
000200000000000000000006000000
010000110000000000000000000000
050000000000000000000000090002

進可さんのプログラムでこれ解いたらPen4-2GHzで
109億7517万3926ステップ、2時間1分48秒319かかったぞ。
とある表出11個対称形の問題をプログラムで解きにくいように
少し改造したらこの問題になって、試しに全検索したら2時間かかった。
・・・多分逆から解けば10分切るけど
進可 ◆Sinka1my5k [sage] 05/01/03 13:35:37:9h5YaOaM
ぐは!2時間かよ。さすがに上に数字が少ない問題は時間がかかるな。
回転や反転で面探索を短くする方法も考えたけど、なんかそれは
「反転させたら負けかなっと思っている」ような気がしてやらなかった。

ちなみに、2chに面をうpする場合は、問題を入力してから
上のバーにあるファイル>テキストで表示させると
↓のような感じで出てきます。ここからテキストからの入力もできるんで
2chでのやりとりは、こっちのが使いやすいです。

+++++++++++++++
+4+++++++3+++++
+++++++++++5+++
++++1++++++++++
++3+++++6++7+++
+++++++++++++++
++++++++++8++++
++++8+++9++++++
++7++++++++++++
+++++++++++++++
+a++4+++++b++++
++++++++a++++++
+2+++++++++6+++
1++b+++++++++++
5+++++++++++9+2

検証ご苦労様でした。
進可 ◆Sinka1my5k [sage] 05/01/03 13:39:59:9h5YaOaM
上下逆から短絡あり探索やってみた。

5+++++++++++9+2
1++b+++++++++++
+2+++++++++6+++
++++++++a++++++
+a++4+++++b++++
+++++++++++++++
++7++++++++++++
++++8+++9++++++
++++++++++8++++
+++++++++++++++
++3+++++6++7+++
++++1++++++++++
+++++++++++5+++
+4+++++++3+++++
+++++++++++++++

10112215回探索 0分5秒157

5秒?・・・何、この差_| ̄|○
□7×7=4□□ [sage] 05/01/05 22:05:08:AdgLusRn

いままでROMしていたけど、ちょっと自作プログラムを
走らせてみた。上から順に時計回りに問題を回転させ
ている。(ミラー処理はコーディングしてない)

00:04:01.9489695 探索ステップ 870413965
00:00:02.8998330 探索ステップ 11450820
00:00:00.2962195 探索ステップ 1097793
00:00:32.2099730 探索ステップ 125931282

基本的には進可さんのプログラムと同じ考え方。簡単
にコーディングするにはこのやり方しかないと思う。
初代は進可さんのと同じぐらいのスピードだったが
内部データの持ち方と枝狩りアルゴリズムの見直し
でコツコツとスピードアップしていった。仕事が忙しく
なったので中断中だけど、まだまだいけるはず。
□7×7=4□□ [sage] 05/01/05 22:47:34:wf15pd8N
盤面の回転で大きく変わるのですね。
こういう問題は並列ソルバにすれば安定しますね。
4並列ソルバでを解くと0.3秒*4+α=1.2秒+αの時間で解けることになりますね。
アルゴリズムの改良だけでもっと探索時間が減って、
回転に対して探索時間が安定するようになれば並列化はいらないかもしれません。
そういう意味で並列化は今の時点では後でもいいかもと思います。

#現在私は領域分割の観点から大きくバックトラックできないかと思考中。
□7×7=4□□ [sage] 05/01/05 23:27:06:YUPY0Tq/
漏れが必ず左上から解き始めるようなものか?
□7×7=4□□ [sage] 05/01/05 23:29:01:AdgLusRn
並列は私も考えてみましたが問題によってはここまで大きな差が
でないので汎用性はあまり高くないかもしれません。実は回転に
よる問題の計算量を前もって知ることができれば、一番コストが
低いものだけ計算すればよいのではないかと考えていたのですが、
計算量の予測が数値化できず断念した経験があります。

領域分割も検討中。いくつかの方法が考えられるが、単純に分割
するとメモリの使用量が爆発するので駄目。今考えているのは
ある程度まで解いた段階で分割領域のミニ探索を行う方法ですけど
プログラムの構造を大幅に変更する必要があるので躊躇してます。
□7×7=4□□ [sage] 05/01/06 09:13:38:iLjCxfu1
経験的には数字の配置の重心だけでそこそこコストを量れますよ。
0.17/25274
0.84/130956
58.77/15888737
12.54/2743254
□7×7=4□□ [sage] 05/01/06 22:42:48:dozYBlXS
重心ですか。なるほど。視覚的には理解していたのですが、計算させた
ことがなかったです。

確かに だと重心で判断できますね。問題は回転によって重心が
移動しない対称形のやつですね。このタイプも回転させると 10 倍以上
差が出る場合があります。ただ何もしないよりはよいので、試して見る
価値はありそうですね。
進可 ◆Sinka1my5k [sage] 05/01/06 23:21:37:mul3oUr3
散文的にカキコ。

並列計算かぁ、そこまでしっかりやるなら反転もありかも。

重心っていうのは探索の早い位置に数字が多いかどうか?って考えでいいのかな?
探索開始位置に数字が多いと速く解けるのが多いだろうし。

ほかの重みとしては、端に数字が多いと速く解けるっていうのも感覚的にあるな。

あと、対象形で速さに差が出るのは、同じ番号の距離があやしいと思う。
確定の早いパターンが探索開始位置に近いほど、解き易いから。
□7×7=4□□ [sage] 05/01/07 10:16:34:4CgAmXKC
この進可さんの方法って整合性のチェック
の「ありえない状態になったら」の部分)は
どういうタイミングで発動するのでしょうか?

-「壁あり」を割り当てて整合性チェック
- if(整合の場合){次の壁の割り当てルーチンへ}
- if(不整合、または残りの割り当てで矛盾が出てバックトラックした場合){
-- 「壁なし」を割り当てて整合性チェック
--- if(整合の場合){次の壁の割り当てルーチンへ}
--- if(不整合、または残りの割り当てで矛盾が出てバックトラックした場合){バックトラック}
-- 現在の割り当てルーチン終わり

と言う感じで合ってますか?
272 [sage] 05/01/07 10:17:53:4CgAmXKC
なんかインデントがおかしかったけど許して
272 [sage] 05/01/07 10:36:46:4CgAmXKC
あと現在の整合性チェック項目を教えてもらえませんか?
いまのところスレを読むと
基本チェック
・数字マスからもう一方の数字マスまでたどり着けるかのチェック(推測)
枝刈り用チェック
・コの字型枝刈り()
・遠回りチェック()
・部分閉空間の枝刈り()→廃止→のように小規模化
これでいいでしょうか。言っていい範囲で教えてください。

あとの話ですが、この場合1の下のマスと2の下のマスの間の壁を決定した時点で
1と3が短絡されてるのでバックトラックできそうなもんですが、
1の下のマスと2の下のマスの間の壁の割り当てのときにはこれは検出されないのでしょか?
262 [sage] 05/01/07 17:46:20:pOSU3C66
自分のプログラムでも解いてみた・・・
面倒なので元の向きと上下逆のみ。
元の向き:3分59秒063、394431038 step
逆の向き:0分00秒370、621326 step

枝刈りのアイデアはまだまだあるのだが15x15で効果が出るかは謎・・・
最終的には25x25を現実的な時間(大体1週間ぐらい)で解ける事を目標に高速化しています
ただ、このサイズになると問題によって探索空間が4桁ぐらいは平気で変わるので
どの問題でも安定して解ける、というのは厳しそう。

最適な探索方向については、同じ数字同士を繋いだ線の重心で調べれば良いと思う。
あと、枝刈りの方法によって最適な値は異なるけど縦向き、横向きも考慮するとより良い結果になりそう

進可 ◆Sinka1my5k [sage] 05/01/07 20:23:41:K620/EdE
>272
だいたいそんな感じ。詳しくはここにあり。
ttp://www.interq.or.jp/moonstone/person/numlink/nl01.html
ttp://www.interq.or.jp/moonstone/person/numlink/nl02.html

>274 現在の整合性チェック項目
同じく上のnl01とnl02のhtmlに書いてあります。
ただし、壁向こうチェックは片方だけとか、微調整してたと思った。
進可 ◆Sinka1my5k [sage] 05/01/07 20:27:56:K620/EdE
>274 >75 の件

図の場合、1と3が結ばれるのが確定するのは、1の真下のマスが縦直線に決まった時。
2の真下へチェックが移る前に決まる。だから、チェックするなら1の真下の時。

だが、実際にプログラムしてみると、うまくいかなかった。逆に時間がかかってしまう。
理由は、全てのマスに対し、「下に伸びるならそこに数字があるか?」を一々チェックするのは手間だから。
そしてその手間に対し、下に数字のあるケースはとても少ない。
なぜなら、空白マスの数>>(越えられない壁)>>数字マスの数 だから。

チェック回数に対し、NGになる状況が少なすぎる探索は、逆に時間がかかるので効果的ではない。
という結論に達したので無しにしました。
265 [sage] 05/01/08 00:22:11:0tECDbRn

2GHz のマシンでですか?速いですね。ステップ数の数え方はプログラムに
よって違いがあるので正確には比較できないが、元の向きを見る限り私の
よりも大幅に枝刈りをしているようです。時間ができたら私ももう少し
考えて見よう。今以上の枝刈りをするには相当慎重にやらないとバグって
しまうのが怖いですが。

私の目標はとあるところで見かけた 25x42 の問題ですが、現実的には
25x25 ぐらいでしょうね。

重心はいろいろと調べて見ると面白いでしょうね。こちらも今後の課題です。
265 [sage] 05/01/08 00:25:41:0tECDbRn

> チェック回数に対し、NGになる状況が少なすぎる探索は、逆に時間がかかるので効果的ではない。

この点は同意しますが、下方向の先読みを行わずにできる枝刈りは限られ
ているので、なんとしてでも組み込みたい機能です。条件としては「パスが
数字につながっている」、「下に数字がある」、「パスの値と下の数字の値
が異なる」の 3 つだけですから、これをいかに効率的にチェックできるか
を追い求めれば必ずクリアできます。これができれば 2 行以上下の数字も
活用できるようになります。
269 [sage] 05/01/08 17:45:43:Kr1eBw6z
全体の重心だけだと探索時間にあまり関係のない部分
(上から探索したときの下側)の影響があるので、
上半分、右半分、下半分、左半分に分けて、そこの重心を使っていたりします。
これだと対称形で扁平な数字配置のときにも少しは対処できます。

上下左右対称のときにはどういう指標がいいんだろう…

# 15x15 と 25x25 の間のサイズで手頃な問題集がないかなあ。
262 [sage] 05/01/08 20:42:40:C2N/n1cF
無いのなら自分で作っちゃえ、と20x20の自動生成に挑戦してみたのだが・・・
解くチェックが遅いのと1箇所でも短絡していると駄目なので厳しそう。
15x15が自動生成出来る限界なのかなぁ?それでも条件を厳しく設定すると
1問2時間とか平気で掛かったりするけど
□7×7=4□□ [sage] 05/01/09 00:15:21:A9HNKhVW
普通は数字はどれくらいあるの?
20x20とかで
262 [sage] 05/01/09 01:04:52:32hlV0u4
対称形なら限界が12か14ぐらい、普通に作ったら18〜22程度・・・だと思う。>20x20
262 [] 05/01/09 11:53:24:32hlV0u4
駄目だ・・・サイズを1つ落として18x18の14個対称形を自動生成してみたのだが1問のチェックに3時間超えそうな勢い。
15から18に上がっただけでここまで変わるのか・・・15なら今と同じ程度の縛りを入れた問題でも大体数分で解くのに
262 [] 05/01/09 11:58:08:32hlV0u4
そしてよく見ると6が1個しかなくてかわりに15がある・・・解けるわけねぇorz
進可 ◆Sinka1my5k [sage] 05/01/09 12:53:32:0wqIm++q
何気に聞き流してしまったんだが、面の自動生成ってどうやってるの?
262 [sage] 05/01/09 14:55:53:32hlV0u4
全ての数字が違う問題を角の定理を使って解かせる。
但し、線が繋がった時に両端の数字が一致しているかのチェックは行わない。
全部埋まったらペアになっている数字を対応付けて短絡チェックをすればOK
結構乱暴な方法だけどこの方法でも案外まともな問題を作ってくれるのが不思議
262 [sage] 05/01/09 23:48:14:32hlV0u4
++++++++++++++++++
+1++++++++++++++++
++++++++2+++++++++
++++++3++++4++5+++
++++++++++++++++++
++6+++++++++++++1+
+++++++++++++7++++
+++++++7+++++++8+9
a++4+++++++3++++++
++++++b+++++++c++9
d+e+++++++8+++++++
++++b+++++++++++++
+c+++++++++++++2++
++++++++++++++++++
+++6++d++++e++++++
+++++++++a++++++++
++++++++++++++++5+
++++++++++++++++++

18x18で妥協したら何とか1問完成・・・
このサイズの問題を量産しても使い道が無いので多分もう作りません
15xと25xの中間のサイズの問題が欲しいのならナンバーリンク2のパート3(14x24)が良いんじゃないかと思いました。
長方形なので微妙ですが逆に正方形の問題では使えないような解き方が見つかるかも?
□7×7=4□□ [sage] 05/01/10 20:20:31:hxP1KM6F
なんかスレ読んでると深い世界みたいだねー>なんりん
解くんじゃなくて問題作るのって結構みんなやるのかな。どこかに投稿したり?
唯一の解をもつというのは決まりなんでしょうか。
「角の定理」っていうのがキーワードみたいだけど、
googleっても内容はでてこなかったです。考えてみよう。
262 [] 05/01/11 21:04:28:pPx9i6sQ
要は全てのマスに線が通って回り道をしない事を前提に解くだけ。
ただ、この方法で自動生成するには高速なソルバーが必要で、
しかも良問が出来る可能性はかなり低い。
場合によってはコンピュータが出した問題から選別する時間があれば
最初から1問作れるぐらいだったりもするのであまり実用的じゃないかも。
出てくる問題は少なくともナンバーリンクのルールで解く事が出来て短絡解の無い問題ではあるのだが。
265 [sage] 05/01/12 22:52:12:aJMvFhta

重心とか考えるのが面倒だったので短絡なしで先に全パターン検索し
一番効率的なやつだけ解かしてみました。それでも 30 分かかりますね。
解いたパターンは右 90 度回転の左右反転です。

短絡なしは一瞬で終わるので下手に重心を考えずに 8 パターン分
なしで計算し、一番ステップ数が少ないのをありで解かせるのも
いいのかもしれません。
□7×7=4□□ [sage] 05/01/14 06:09:32:80H/75ZF
こんなスレがあったんだ。知らんかった。

はるか昔にナンリンソルバーは作ったことがあるんだが、
証明できない定理(つーか仮定)を使ってたんで、完璧かどうかは
なんとも言えなかった。ただし当時(90年代半ばぐらいだったかな)でも
10x10は普通に解けてた。

ちなみにその仮定と言うのが
「完全解があるものに関西解がある場合、
 関西解のうち1つは、必ずすべての曲がり角の内側を
 ななめにたどったところに数字がある」というもの。

これの反例が見つかったことが無いんだが、誰か証明してくんね?
gr [sage] 05/01/14 07:12:47:Yxua5VgO

こんな感じで示せないかな?

線の引き方に余裕度(名称はなんでもいいけど)とかいうものを、

 ‐余裕度は常に 0 以上の整数。

 ‐「すべての曲がり角の内側をたどったところに数字がある」という条件を
  みたしているとき、余裕度は 0 になる。

 ‐その条件をみたしていないときは、引き方を変えることで、もっと小さな
  余裕度を持った引き方にすることができる。

とかいうふうになるように、うまく定義するんだわ。

具体的には、たとえばこんな感じかな。

まず、各白マス(線の通ってないマス)に対して、そのマスから盤面の外へ
「白マスまたは『曲がり角の内側』をなしてるマス」だけを通って出るときの
線をまたぐ回数(出方が多数あるときはその合計)を考える。
そして、盤面の全白マスに対するその値を合計したものを、余裕度とする。

これだと、上の三条件をたしかにみたしてる。
というのも、まず 1 個目は明らか、2 個目はその時外へ出る道が無いから、
3 個目は曲がり角をくぼませればよいから。

よって、仮説は証明された。
と思う。
□7×7=4□□ [sage] 05/01/14 07:20:52:Yxua5VgO
あ、白マスはタテヨコに通って、「曲がり角の内側」はナナメに通るのです。

○────┐□□□
□□○○┐│○─┐
□□│□││□□│
○─┘□││□□│
○─┐□│└─○│
□□│ a.└──○│
□○┘□□□□○│
○──────┘○
○────○□□□

たとえば上図で a のマスは、上から右上に抜ける 2 と、右下の 1 とで、
合わせて 3 と数えるわけです。
□7×7=4□□ [sage] 05/01/14 22:06:22:5g3pJjbh


??┐
?a1? a1が空白なら
a2??

??□
?└?という別解が存在する
a2??

aが空白でなく、数字でもないなら、

??┐
?┐?
a2??となっているはず。

a2に対してa1と同じ議論が生じる。

という数学的帰納法でも証明できますね
□7×7=4□□ [sage] 05/01/14 22:48:53:Yxua5VgO
そうそう。
> 曲がり角をくぼませればよいから
ってのが、それのことね。
262 [sage] 05/01/15 02:31:04:IYwv2zRK
反例?
1 □□□
□□2 □
□1 □□
□□□2

色々な引き方があるけどどうやって引いても
┌   このような位置関係のマスは発生する。
  □
295 [sage] 05/01/15 05:09:00:eWLwN/40
別解がなければという仮定がいるんだと思う。

完全解とか短絡解とか関西解と稠密解とかいまいち分類が分からないんだけど
誰か解説してくれる?
□7×7=4□□ [sage] 05/01/15 06:08:31:La7yrmQy

どうかな。「内側」の定義の問題になると思うのだけど。

○┐□□
□│○┐
□○ a.│
□□□○

たとえば、上の a のマスは、「角の内側」と言っていいものかどうか。

○○○○□□□
││││□□□
││││ b.□□
○○○└──○
○─────○
○─────○
○─────○

上の b ならどうか。とか、さ。

つーか漏れ()も「内側」の定義は気になってたんだけど、
外に直接つながってる白マスに面するのは内側じゃない、とかする
必要がありそうですかね。
262 [sage] 05/01/16 23:42:10:jyzKL2QU
結論から言うと関西解の探索で角の定理が使えるのは2方向だけ。
262 [sage] 05/01/20 22:39:01:URAtPJaU

短絡解=関西解=通らないマスがあり自明な他の解がある解(を含む問題)
別  解=(自明な他の解を持たない場合も含み)作意解以外の解(を含む問題)
完全解=短絡解を含まない(別解は含んでも良い?)問題の解
唯一解=完全解が1つある問題
で良いのかな?
あまり意識せずに使ってたけど人によって解釈が違ったりするので
きちんと定義した方が良さそうですね。
□7×7=4□□ [sage] 05/01/22 05:56:50:9vBCkDLU
関西解と言うのは関西のローカルルールでは許される解だったとか
そんなエピソードでそう呼ばれてるのでしょうか
□7×7=4□□ [sage] 05/01/22 07:16:39:bkLklyh+
もっぱら関西人によって作成や指摘がなされたかららしい。
262 [sage] 05/01/23 14:25:09:ian4Q6sf
ふと思ったのだがこれは関西解と呼ぶのだろうか?

1 □1 □□□□8 □8
2 □2 □6 7 □9 □9
3 □□□□□□□□3
4 □4 □6 7 □10□10
5 □5 □□□□11□11

関西解の定義を
線の通らないマスがあり、ある空白マス群に隣接する線のうち同じ数字に属する物が2箇所以上にある解
とすればこれも関西解に含まれる事になるのだが
┌┐
┘└
とか
┌─
│□
とかのパターンが存在するという条件だと関西解ではなくなってしまう・・・
進可 ◆Sinka1my5k [sage] 05/01/23 16:44:00:GWvAXM8W
自分の定義は「線の通らないマスがあるパターンで全部の数字をつなげられるなら関西解」としてます。
262 [sage] 05/01/23 17:07:43:ian4Q6sf
全てのマスを通らずに且つ唯一解の問題もあるからその定義は違うような・・・
角の定理を封印する目的で淵に□□1□2□□というようなパターンを作って
──1□2──と引かせる等といった問題も作れるので。

完全解と全てのマスを通らない解1つが存在する問題(あればの話だけど)も関西解と呼べるのか微妙なラインです

僕が考える関西解の定義は「自明な別解を持つ全てのマスを通らない解」で、
何を持って自明とするかの線引きで悩んでいるといった感じです。

進可 ◆Sinka1my5k [sage] 05/03/06 23:01:07:WPh7KXpU
やっと書き込めた。

ナンリンソルバーのバージョンアップしました。
>264でチェック。パソは同じ。

 10112215回探索 0分5秒157
           ↓
  3865353回探索 0分2秒093

ほぼ半分以下の短縮です。

メールで教えてもらった法則を追加したんだけど、よく見たら>292あたりでやってるのと同じ理論っぽい。
□7×7=4□□ [sage] 05/03/08 00:25:13:paSnaFMq

いただきました。
手持ちの15×15を2つほど解かせてみたところ、
正確な時間は忘れましたが、
・9秒→7秒
・約11分→3分40秒
と、それなりに大きな短縮を見せておりました。

盤面反転ボタンとかあると嬉しい、と言ってみたりして。
進可 ◆Sinka1my5k [sage] 05/03/13 04:57:37:uuxNuJce
うりゃ!っとバージョンアップ。
ttp://www.interq.or.jp/moonstone/person/numlink/index.html
片方だけ枝狩りしていたのを両方で枝狩りに。
>264でチェック。パソは同じ。

 10112215回探索 0分5秒157 (初期)
           ↓
  3865353回探索 0分2秒093 (前回)
           ↓
1332705回探索 0分0秒828 (今回)

時間のかかる>263だと
1308783250回探索 13分1秒156
でした。これだけできればほぼ1時間切ると言えるかな?
(片方だけ枝狩りだと30分かかってました)

>308 オプションから反転を選択できるようにしました。

いや、最初の時点でつけるか止めようか悩んだんだけどね。
悪意があれば、既出の問題を反転回転の数字変更で捏造新規が可能だし。
でも最近は大型の面は対象形が多くて、捏造してもバレやすいってことに
気がついたんで機能追加させることにしました。
□7×7=4□□ [sage] 2005/04/08(金) 00:29:41:L9n8UiPG
┌─┐│
│ 1││
││││
││ 2│
│└─┘
この手の無駄な経路を検出できるいい方法はないかなあ
□7×7=4□□ [sage] 2005/04/23(土) 17:36:04:rLACeJ7x
進可氏のページや、このスレを参考に自作したナンバーリンクソルバーで、
ジャイアント17号の4の関西解を見つけた。
ペコンとして編集部にメールしますた。
□7×7=4□□ [sage] 2005/04/24(日) 15:42:23:rwanAH3Q
ほんとだ。
□7×7=4□□ [] 2005/05/16(月) 15:03:53:9dhaLpVP
進可タン生存問い合わせage
進可 ◆Sinka1my5k [sage] 2005/05/16(月) 17:34:07:7jwTDW4t
ノシ
おれんじ ◆6VPOTSCLM. [sage numberlink@yahoo.co.jp] 2005/05/17(火) 02:14:35:YxV1w/E3
>314
サイト上に書かれてない&メール載せてないんで
ぶっちゃけここで聞いちゃうけど、進可タソのサイトってリンク可?
進可 ◆Sinka1my5k [sage] 2005/05/17(火) 16:59:32:xVniCAx7
リンクOKっす。メールは、サイトにうpしてあるファイルには載せてあります。
無差別広告メールが嫌なのでサイトにはメルアドを載せてませぬ。
おれんじ ◆6VPOTSCLM. [sage] 2005/05/18(水) 16:36:25:xe7V9GtW
>316
ありがd
みんなを唸らせられるようなナンリンをがんがって作ってみるよ。
□7×7=4□□ [sage] 2005/05/25(水) 19:02:40:bN01Sf4k
gamedev.orgって消えたの?
□7×7=4□□ [sage] 2005/05/27(金) 00:19:01:J+4JoA+g
ニコリストヲチスレで感銘wを受けて書き殴ってみました。

サムラインを簡単に作るツール(VB6ソース付)
ttp://www.geocities.jp/jyokun_geo/

むー、適当なあぷろだが見つからなかった。
しょうがないので塩のアカウントとっちゃったよ。
進可 ◆Sinka1my5k [sage] 2005/06/05(日) 12:57:56:kZu/nRoI
保守&チラシの裏。今はオセロのAIに挑戦中。
□7×7=4□□ [sage] 2005/06/05(日) 14:34:10:6hVCkJsH

AIっていうことは、定石・手筋はあまり前もって教えずに
ひたすら対戦しゅみれーと(←なz)して、
勝ちパターンデータベースを作る、っていう方向?
進可 ◆Sinka1my5k [sage] 2005/06/05(日) 16:47:39:kZu/nRoI
できればそういう形にしたいねぇ。
ルールを変更して既存の定石は役にたたなくするつもりだから
定石を教えるようなことは、どっちみちさせないつもりです。

変更内容はマス目ごとに点数が違う所。+3点のマスや-1点のマスがあったりする。
例えば、カドだけが-9点だとしたら、取るべきか取らざるべきか難しくなるよね?
□7×7=4□□ [] 2005/07/05(火) 22:49:49:f5Rzok+O
ttp://www.geocities.jp/m_hiroi/puzzle/index.html
これを縦型探索に変更したらどんなプログラムになるんだろう・・・
□7×7=4□□ [] 2005/08/09(火) 01:52:01:8pwEXGKn
前回反応なかったけどめげずにうp

数独解析アプレット
ttp://www.geocities.jp/jyokun_geo/sudoku/index.html

数独を解くプログラムはネット上に山ほどおちてますが、
今更晒す理由(ウリ)は
「人が解く場合の手順を示してくれる」
ってとこです。

まあ、数独の場合人によって解く手順が分かれるんで、
「俺の解き方と全然違う」ということもあると思いますが。
進可 ◆Sinka1my5k [sage] 2006/04/09(日) 02:17:21:hEpS5/RU
沈黙メンゴ&ホシュ雑談

数独が流行ってるようだけど、解析まで手を出してる人が少ないのは
こってり頭を使うのが流行らないからなんだろうなぁ。
□7×7=4□□ [sage] 2006/04/11(火) 18:21:36:Q7JmFGVw
解析に手を出すような人はブームになる前に手を出してるでしょ
プログラミングの基本的な例題として有名だし
□7×7=4□□ [sage] 2006/08/04(金) 17:20:00:cm1mbhA2
パズルプログラミングで参考になるページないかな。
使えるアルゴリズムとかデータ構造とか。
□7×7=4□□ [] 2006/08/04(金) 17:20:52:cm1mbhA2
下から三番目なので、上げておこう。
□7×7=4□□ [sage] 2006/08/04(金) 18:23:35:1aXQUwyq

□7×7=4□□ [] 2006/08/05(土) 14:24:08:W4VrPUeA
昔 (12年前) ナンリンソルバーつくりました。
引っ張り出して、1GHzのノートで実行してみた。
15x15がチェッカーモード (関西解探索) で 11分ぐらい、
ソルバーモードで0.01秒ぐらい。

俺、なかなかやるな。いまさらどっかにあげてみようか。

□7×7=4□□ [sage] 2006/08/05(土) 17:15:15:+GYVPayR
Core 2 Duoで試すのだ
□7×7=4□□ [sage] 2006/08/05(土) 19:30:57:W4VrPUeA
もってないっす。
っていうか、関西解がある問題でチェッカはしらせたら、
1時間かかったっす。だめだこりゃ。
基本方針としては進可さんのと同じなので、入れてる heuristicsの差だな。
□7×7=4□□ [sage] 2006/08/05(土) 20:01:48:X1J8iVGP
heuristics?
□7×7=4□□ [sage] 2006/08/05(土) 23:14:17:iUcTjEzT
横レスだが、
アルゴリズムとかパラメータを人間の勘とか経験で適当に決める方法をヒューリスティック、と言う。
□7×7=4□□ [sage] 2006/08/06(日) 03:35:22:WTA8OIrO
GAとか、演繹的に作ってるとは思えない
330 [sage] 2006/08/06(日) 08:02:53:XFjT1+0y
つづり間違えちゃったかとヒヤッとしたじゃねーか

heuristics
【名】ヒューリスティックス◆経験則

だよな。

□7×7=4□□ [sage] 2006/08/06(日) 09:41:40:UxUObhtr
すまん。オンライン英和では文字が見つからないし
翻訳の方でも「発見的教授法」とか出たりでサッパリだったもんで。
進可 ◆Sinka1my5k [sage] 2006/08/18(金) 20:52:53:UL/gV14P
盆休みを利用して、テトリミノの敷き詰めプログラムを作って遊んでるぜ。
ただし複数個敷き詰めで同じのが隣り合わせにならないルール。
でかいと解答遅いので高速化方法を思考中。
□7×7=4□□ [sage] 2006/08/18(金) 21:08:16:W8r5Gv/a
使うピースの順番を変えるだけでかなり変わる。
一本棒を一番最初に入れちゃうと多分それが一番遅い探索になると思う。
なるべく複雑な形のピースから入れてくと速い。
□7×7=4□□ [sage] 2006/08/18(金) 21:27:44:W8r5Gv/a
理由は複雑なピースを先に置いていくと
探索の速い段階で(探索の枝の根元の方で)
孤立した小さい穴が出来たりして(それ以上やっても無駄なのが明らか)
早い段階でその探索枝を断ち切れるから。
また、大きくても孤立した穴のサイズが4の倍数でなければ探索を打ち切れる。)

例:左上にS字のピースを置いたらサイズ1の穴が出来るのでこれ以上探索の必要なし。
_■■
■■
□7×7=4□□ [sage] 2006/08/18(金) 23:51:11:hy04RqNt
小さな領域に分割して答えを憶えるとかは?
□7×7=4□□ [] 2006/08/19(土) 00:26:32:iH9V22wO
配置するピースの順番を固定するよりも、左上の空いたマスを埋めるようにピースを
配置していったほうが速いんじゃないかな。

テトロミノに限れば、この方法で埋めてけば、孤立した島が出来てもサイズ1の
島しか出来ないから(多分)、枝刈りも楽かもしれない。

盤面をビットフィールドで実装していれば、大きさ1の島が出来ているかどうかは
board != board & ((board >> 1) | (board << 1) | (board >> width) | (board << width))
で判定できそうだし、きっと速い。
□7×7=4□□ [sage] 2006/08/19(土) 00:42:26:5lOkNLAH

> 孤立した島が出来てもサイズ1の島しか出来ないから

いや、残念ながら

■■■■■■
■■■
■■
■■

  ↓

■■■■■■
■■■□□□
■■      □
■■

  ↓

■■■■■■
■■■■■■
■■□    ■
■■□□□

  ↓

■■■■■■
■■■■■■
■■■    ■
■■■■■
□7×7=4□□ [sage] 2006/08/19(土) 00:50:18:5lOkNLAH
サイズ3もあるね
342 [sage] 2006/08/19(土) 01:46:09:iH9V22wO

そっか(´・ω・`)ショボーン

サイズ3の島が出来るときは、右側に島が出来るケースしかないと思うので
次のピースを配置するときに必ず失敗するから妥協するとして
サイズ2の島があるかどうかの判定を書き下してみたんだが、

b!=b&((b shl 1)&((b shr 1)|(b shl (+w))|(b shr (-w))|(b shl 2)|(b shl (1+w))|(b shr (-1-w)))|(b shr 1)&((b
shl (+w))|(b shr (-w))|(b shr 2)|(b shl (-1+w))|(b shr (1-w)))|(b shl (+w))&((b shr (-w))|(b shl (1+w))
|(b shl (-1+w))|(b shl (+2*w)))|(b shr (-w))&((b shr (-1-w))|(b shr (1-w))|(b shr (-2*w))))

とでてきた。全然速そうな気がしないな。
サイズ3に至っては、条件式だけで1kbyte超えた。
□7×7=4□□ [sage] 2006/08/19(土) 02:40:27:5lOkNLAH
どうなんだろ、サイズ2や3の島ができる場合って少ないので
いっそヒューリスティックで乗り切るほうが早そうな気もする

というか、サイズ1の島ができる場合のことも含めて、たとえば
「最も左上の空きマス」を左上とする5×3くらいの領域の
現時点までに埋まっているマスの配置模様(たぶん1G通りくらい)
に応じた「可能な次の手一覧」を作成するっていう方針はどうかな
□7×7=4□□ [sage] 2006/08/19(土) 03:18:26:iH9V22wO

なるほど。良さそうだ。

左上であわせるよりも、6x3の領域を作って
    ↓「最も左上の空きマス」
■■□□□□
□□□□□□
□□□□□□
みたいにしたほうが、チェックの効率がよくなるかな。
高々 2^(3*6-3)通りだから10Mもメモリがあれば足りるかな。
進可 ◆Sinka1my5k [sage] 2006/08/19(土) 07:20:01:b9SQ1Ph3
なんか話が飲み込めないなと思ったら、探索順が
1234
5678
だったのか。自分は
15
26
37
48
でやってるから、何事かと思ったよ。

■■□□□□
□□□□□◆
◆□□□◆◆

◆の位置は影響ないからもっと少なくすむんじゃない?
チェック位置本体も開いてるはずだから、実質2^11で2048通りかな?

まぁ今やってるのは、はるかにそれ以前の段階だけど(汗
進可 ◆Sinka1my5k [sage] 2006/08/19(土) 09:53:58:b9SQ1Ph3
ちなみにこっちを参照にした。
ttp://karetta.jp/book-node/cpuzzle-recursion/001628
全部2個ずつ使って7*8に敷き詰めたら509通り。
奇数なのは左右対称ぶんのせいだろう。

全数探索に12秒ぐらいかかってるから、これをなんとか
縮めないといかんけど、盆休み終わる方が先だなorz
□7×7=4□□ [sage] 2006/08/19(土) 19:19:59:5lOkNLAH
ああそうか、新しく置いたピースが
「最も左上の空きマス」より左方へ来ることもあるんだな


いや、その◆の位置は確かに「既存のピースと重なるか」には
関係ないんだけど、「シマを作らずにすむか」には関係してくるよ

たとえば左下の◆が埋まっていると、
  ■
  ■
■■
この形のピースは置けない(シマができてしまう)

本当に影響ないのは一番右下の◆◆だけじゃないかな

結局この範囲を見ることになるかと思う
単純計算なら2の13乗で8K通りか
■■◎□□□
□□□□□□
□□□□

□7×7=4□□ [sage] 2006/08/19(土) 19:22:36:5lOkNLAH
あー、やっぱこうかな

■■◎□□□
□□□□□□
□□□□□
□7×7=4□□ [sage] 2006/08/20(日) 01:37:52:tIejvaHp
よく考えたら、大きさ3以下の島が出来ないようにしながらなので
これくらい必要な気がしてきた。

■■■■◇□□□□□
□□□□□□□□□◆
◆□□□□□□◆◆◆
□7×7=4□□ [sage] 2006/08/20(日) 02:01:08:dlVSLJpU
いや、左上から埋めていくという制約があるからそこまではいらないよ

#もちろん、長方形でないような盤面でやるなら話は別だけど

■■■■●□□□□      ■■■■●□□□□
■□□□●□□□□      ■□□□●□□□□
■■■●●□□□□      ■□■●●□□□□

たしかに上の左図で黒丸のピースを置くと破綻するのに対し
右図では置いても破綻しないから区別が必要なように思える

でも実は右図のような状況はありえないから考慮しなくていい

■■■■○□□□□
■□□□□□□□□
■□★□□□□□□

上は黒丸のピースを置く前の状況だけど、星で書いたマスが
もしすでにピースで埋まっているのだとすれば

  そのピースは、○のマスを埋める前に置かれた

つまり、○のマスが空いているという状況下で、他の、○より
優先順位の高いマスにピースを置こうとしてその結果埋められた
としか考えられないわけだ

■◎■■○□□□□      ■★■■○□□□□
■□□□□□□□□  →  ■★□□□□□□□
■□□□□□□□□      ■★★□□□□□□

つまり★のマスは絶対に上辺の黒マスと繋がってる

■■■■●□□□□
???□●□□□□
??★●●□□□□

だから上みたいな状況で?がわからなくても、★がすでに埋まってて
そこへ●を置いたとしたら、それだけで破綻ってわかるわけ
進可 ◆Sinka1my5k [sage] 2006/08/20(日) 22:04:54:50DYZK1t
あ、この可能性があるな・・・

■■◎●●□■
□□□□●■■
□□□□□
□7×7=4□□ [sage] 2006/08/20(日) 23:58:16:VJNTi/5Q
置いたパーツの外周を順番に辿って、空きマスが分断されていたら盤面の分断。
□7×7=4□□ [sage] 2006/08/21(月) 00:06:54:5rXduWi0
そうだけど、それは最初に一覧表を作るときに一回だけやればおk
□7×7=4□□ [sage] 2006/08/21(月) 01:30:47:8+EnFCRi

角が接しているパターン等を考え出すと最初に一覧を作るのは無理があるぞ。
それに、すべての分断パターンを網羅した一覧表を作るのも現実的じゃない。
■■●●●1
    9 ●6 ●2
    8 7 5 4 3

1234565789の順でブロックの有無を調べて
ブロックが無い領域が2箇所に分断されていたら
分断されていると判定するのが楽。
ただし、テトロミノの場合でも残念ながら4の倍数チェックは必要
■■●□□□□■
□□●●●■■■
357 [sage] 2006/08/21(月) 01:32:54:8+EnFCRi
ズレたorz
■■■●●●1
    9 ●6 ●2
    8 7 5 4 3
357 [sage] 2006/08/21(月) 01:44:47:8+EnFCRi
連投失礼。
よく見たら上の4マス空き図間違ってる・・・4マスの島はありえないのか。
ただ、壁際では矢張り4の倍数チェックが必要になる。
それと、テトロミノである事が前提の枝刈を入れすぎると
ペントミノ等に応用しようとした時に苦労するからやめた方が吉。
テトロミノの敷き詰めプログラムを限界までチューンナップする必要があるとも思えないし。
□7×7=4□□ [sage] 2006/08/21(月) 01:50:56:5rXduWi0
いや、そこであたりからの流れなんだよ
肝心なところは、「左上から順に配置していく」っていうところで
これによって「既存のピース」の配置状況がだいぶ狭められる

新たに置いたピースと既存のピースとによって島ができるとすると
その既存のピースというのは、当然のことだけど
「新たに置いたピース」より前に置かれたピースなわけだ

ここで、「左上から順に配置していく」という制約というのは
すべてのマスに左上からの優先順位がついていて
現時点で空きマスであるマスのうち最も優先順位が高いマスを
埋めるようにピースを置くということ

「既存のピース」は、「新たに置いたピース」より早く置いたのだから
「新たに置いたピース」が埋めたかった空きマスよりも
優先順位の高いマスをそのピースは含んでいるということ

たとえば、

■■■■■■■■
■■■■■■■■
■■■○????
????????
????????

○のマスが現時点で一番優先順位の高い空きマスだとする
?の部分はとりあえず不明ということで

このとき、新たに置くピースは○を含むように置くわけだ

じゃあ?の部分について、こういう状況はありうるか

■■■■■■■■
■■■■■■■■
■■■○□□□□
□□□□□□■□
□□□□■■■□

これはありえない
なぜなら、右下のピースは既存のピースではありえないから

「こんなとこに置いてる暇があったら、もっと優先順位の高い
○のマスとかを埋めるように置いてるだろ」というわけだ


つまり、既存のピースというのはすべて

■■■■■■■■
■■■■■■■■
■■■○????
????????
????????

この図で言う■のマスを少なくとも1マス含むように置かれている

それが「島は3マスまで」の根拠であり、「13マス調べればいい」の
根拠でもあるのですわ
簡単に言えば今から埋めようとしている○のマスの右下方向というのは
ほとんど埋まってるマスが無いので、「実は遠くでつながってる」的な
可能性というのは考えなくてよくなるっていう感じかと
□7×7=4□□ [sage] 2006/08/21(月) 01:53:34:5rXduWi0

あーレスが前後したごめ

壁際については、左右どっちが壁の場合も大丈夫だと思うんだけど

> それと、テトロミノである事が前提の枝刈を入れすぎると
> ペントミノ等に応用しようとした時に苦労するからやめた方が吉。

これは確かになあ。言われてみればもっともだ
□7×7=4□□ [sage] 2006/08/21(月) 06:16:53:R8Y8kvmT
下手に分断判定とかいれずに、左上からとにかくどこにも重ならないパーツを置いていって、
まだ盤面が余っているのに置けるパーツがなくなったらハタン、で十分な速度出たよ。
進可 ◆Sinka1my5k [sage] 2006/08/21(月) 11:14:11:e3qyqNhK
狭いうちはそれでいいけど、10*10を越すぐらいの広さになってくると
高速化はどうしても必要になるよ。

今の自分は枝狩り以前の構造的な高速化してる段階だけど。
□7×7=4□□ [sage] 2006/08/26(土) 23:20:28:l20SFcmz
今、さめがめソルバー作ってるんだけど、速度的に実用レベルには程遠い。
なんかいいアイディアないかな。

ちなみに、途中で同色のピースが1個しかなくなったら
探索中止という枝刈しか入れてません。
□7×7=4□□ [sage] 2006/08/26(土) 23:31:49:rFXtw3Al
盤面をたくさん憶えて参照するとかは?
どうせ手順前後で同じになることはかなり多いと思う

あとは盤面を分割してそれぞれで考えて後で合併するとか
364 [sage] 2006/08/27(日) 01:01:38:RMpZojXj
ありがとう。
盤面の分割は結構いけるかも。
やってみる。
□7×7=4□□ [sage] 2006/08/27(日) 12:15:25:/JMXCU4O
全検索を捨ててGAみたいな山登り系の探索ルーチンを使用した方が良い。
最も得点が高くなる手順を発見するプログラムを書きたいのなら・・・
まぁ頑張れ。
□7×7=4□□ [sage] 2006/08/27(日) 15:24:17:cABPbdx5
逆に、何でもGAで解かせてみたくなる罠にはまる
進可 ◆Sinka1my5k [sage] 2006/08/27(日) 18:44:22:N8hcla7e
全消し攻略をちょっと検索してみたら

*先に消しにくい両端を消し、全体を山形にする。
*横繋がりがあるのを優先(下が消えるとズレる)
*孤立しそうなコマに注意する

コマ消しに優先順位をつければ多少は解きやすくなるかも。
消した後に形が悪くなったり、孤立するコマが増える手は
探索の評価を低くしたほうがいいだろうね。
進可 ◆Sinka1my5k [sage] 2006/09/22(金) 18:27:47:NkbydKQl
擬似的に量子コンピューターを仮想設計して、それでパズルが解けないだろうか?と考えている。
例えば0と1になる確立が50%ずつの状態を、0=50と1=50のような要素にして計算する感じ。

敷き詰めパズルでは、それぞれのマスでどのピースの一部が置かれるかを
確率的な数値要素にしておいて、隣との相互干渉で、確率を上下させる。
矛盾が無い置き方に収束していけば、そのうち答えが出てくるのでは?と思っている。

ただしこのやり方は、解があるか?の判断はできるが
何通りあるかの計算はできないし、答えが収束しないからといって
解が無いと判断することもできないのがネックだ。

むぅ、単なる山登り式の方が効率いいかも。
□7×7=4□□ [sage] 2006/09/22(金) 20:49:08:TjqizHmD
単に、同値のアルゴリズムをよりコストのかかる方法で計算するだけなのでは
進可 ◆Sinka1my5k [sage] 2006/10/02(月) 19:08:07:dWTK27jF
あーやっぱりそうか。量子コンピューターが出るまで待ちだな。

話は変わるけどナンリンソルバー。久々に見直したら
色々短縮できるところが見つかって、数パーセント速くなったよ。
まだまだなんかできそうだ。
進可 ◆Sinka1my5k [sage] 2006/10/02(月) 19:19:47:dWTK27jF
>264でチェックしたら
929828回探索 0分0秒578

>309の
>1332705回探索 0分0秒828
と比べると、数パーセントどころか30%近く短縮できてた。
□7×7=4□□ [sage] 2006/12/13(水) 10:09:11:pPu7l5K4
ナンプレ(ナンバーズプレイス、数独)の解法プログラムを作っています。
ナンプレの解説などは ttp://hobby8.2ch.net/test/read.cgi/puzzle/1158485888/l50
いまのところEXCELのVBAです。
さて、下記のような盤面の場合、下の可能性リストが得られます。
   A  B  C  D  E  F  G  H  I
 ┏━┯━┯━┳━┯━┯━┳━┯━┯━┓
1┃  │  │ 6┃  │  │ 1┃  │ 3│ 5┃
 ┠─┼─┼─╂─┼─┼─╂─┼─┼─┨
2┃ 9│ 3│  ┃ 7│  │  ┃  │ 8│ 1┃
 ┠─┼─┼─╂─┼─┼─╂─┼─┼─┨
3┃  │  │  ┃ 8│ 3│  ┃  │ 9│ 4┃
 ┣━┿━┿━╋━┿━┿━╋━┿━┿━┫
4┃ 7│ 5│  ┃ 6│  │  ┃ 1│ 2│ 9┃
 ┠─┼─┼─╂─┼─┼─╂─┼─┼─┨
5┃  │ 2│ 8┃  │  │  ┃ 4│  │ 7┃
 ┠─┼─┼─╂─┼─┼─╂─┼─┼─┨
6┃  │ 9│ 1┃  │ 7│ 2┃ 3│  │ 8┃
 ┣━┿━┿━╋━┿━┿━╋━┿━┿━┫
7┃ 5│  │  ┃  │ 6│ 7┃  │ 4│ 2┃
 ┠─┼─┼─╂─┼─┼─╂─┼─┼─┨
8┃  │ 6│  ┃  │  │ 4┃  │ 7│ 3┃
 ┠─┼─┼─╂─┼─┼─╂─┼─┼─┨
9┃  │ 4│ 7┃ 2│  │  ┃ 5│ 1│ 6┃
 ┗━┷━┷━┻━┷━┷━┻━┷━┷━┛
このF列に56のペアがありますが、これを2国同盟と呼んでいて、同様に3国、4国などあります。
3国の例 12 23 13
2国はプログラム化する事もそれほど難しくないと思いますが、3国以上、何か妙案はありますか。
     A      B       C      D       E      F      G      H      I
 ┏━━━━┯━━━━┯━━━━┳━━━━┯━━━━┯━━━━┳━━━━┯━━━━┯━━━━┓
1┃248 . . . . .│78 . . . . . .│ . . . . . . . .┃49 . . . . . .│249 . . . . .│ . . . . . . . .┃27 . . . . . .│ . . . . . . . .│ . . . . . . . .┃
 ┠────┼────┼────╂────┼────┼────╂────┼────┼────┨
2┃ . . . . . . . .│ . . . . . . . .│245 . . . . .┃ . . . . . . . .│245 . . . . .│56 . . . . . .┃26 . . . . . .│ . . . . . . . .│ . . . . . . . .┃
 ┠────┼────┼────╂────┼────┼────╂────┼────┼────┨
3┃12 . . . . . .│17 . . . . . .│25 . . . . . .┃ . . . . . . . .│ . . . . . . . .│56 . . . . . .┃267 . . . . .│ . . . . . . . .│ . . . . . . . .┃
 ┣━━━━┿━━━━┿━━━━╋━━━━┿━━━━┿━━━━╋━━━━┿━━━━┿━━━━┫
4┃ . . . . . . . .│ . . . . . . . .│34 . . . . . .┃ . . . . . . . .│48 . . . . . .│38 . . . . . .┃ . . . . . . . .│ . . . . . . . .│ . . . . . . . .┃
 ┠────┼────┼────╂────┼────┼────╂────┼────┼────┨
5┃36 . . . . . .│ . . . . . . . .│ . . . . . . . .┃1359 . . . .│159 . . . . .│359 . . . . .┃ . . . . . . . .│56 . . . . . .│ . . . . . . . .┃
 ┠────┼────┼────╂────┼────┼────╂────┼────┼────┨
6┃46 . . . . . .│ . . . . . . . .│ . . . . . . . .┃45 . . . . . .│ . . . . . . . .│ . . . . . . . .┃ . . . . . . . .│56 . . . . . .│ . . . . . . . .┃
 ┣━━━━┿━━━━┿━━━━╋━━━━┿━━━━┿━━━━╋━━━━┿━━━━┿━━━━┫
7┃ . . . . . . . .│18 . . . . . .│39 . . . . . .┃139 . . . . .│ . . . . . . . .│ . . . . . . . .┃89 . . . . . .│ . . . . . . . .│ . . . . . . . .┃
 ┠────┼────┼────╂────┼────┼────╂────┼────┼────┨
8┃128 . . . . .│ . . . . . . . .│29 . . . . . .┃159 . . . . .│1589 . . . .│ . . . . . . . .┃89 . . . . . .│ . . . . . . . .│ . . . . . . . .┃
 ┠────┼────┼────╂────┼────┼────╂────┼────┼────┨
9┃38 . . . . . .│ . . . . . . . .│ . . . . . . . .┃ . . . . . . . .│89 . . . . . .│389 . . . . .┃ . . . . . . . .│ . . . . . . . .│ . . . . . . . .┃
 ┗━━━━┷━━━━┷━━━━┻━━━━┷━━━━┷━━━━┻━━━━┷━━━━┷━━━━┛
sink100 [] 2006/12/13(水) 17:16:48:sFErC4Fg
単純に2を3にすればいいのでは、と思いますが
2国の場合はどんな方法でやっていますか?
□7×7=4□□ [sage] 2006/12/13(水) 20:44:54:pPu7l5K4

まだ2国もプログラム化してないですが、
[12]の2国の場合[12][12]しかありませんが
[123]の3国の場合、[123][123][123],[123][123][12],[123][123][13],
[123][123][23],[123][12][123],[123][12][13]......と
膨大な数の組合せがありうるのである種のアルゴリズムを考えないと
見つけ出せないと思います。
sink100 [] 2006/12/13(水) 20:53:58:sFErC4Fg
私はflashで作ったのですが、
1,2,3の数字で出来ている所が3つあれば3国という形ではだめですか?
□7×7=4□□ [sage] 2006/12/13(水) 22:25:24:pPu7l5K4

それをアルゴリズム化するところが難しいのです。

 ┏━━━━┯━━━━┯━━━━┳━━━━┯━━━━┯━━━━┳━━━━┯━━━━┯━━━━┓
1┃248 . . . . .│78 . . . . . .│ . . . . . . . .┃49 . . . . . .│249 . . . . .│ . . . . . . . .┃27 . . . . . .│ . . . . . . . .│ . . . . . . . .┃
 ┠────┼────┼────╂────┼────┼────╂────┼────┼────┨

上の例で1行目を取り出せばこのようになり、9つのますから3つを取り出すパターンを網羅するアルゴリズムを
作るということになります。
□7×7=4□□ [sage] 2006/12/13(水) 22:29:23:pPu7l5K4
もしかして
for i=1 to 7
 for j=2 to 8
  for k=3 to 9
   判定処理
 next
 next
next

これでいきそうな気もする
□7×7=4□□ [sage] 2006/12/13(水) 22:44:42:pPu7l5K4
for i=1 to 7
 for j=i+1 to 8
  for k=j+1 to 9
   debug.print i,j,k
  next
 next
next

で試してみます
sink100 [] 2006/12/13(水) 22:48:21:sFErC4Fg
vbは以前かじった程度なので思い出せないのですが
それだと、同じパターンが何度か出てくるのでは?
□7×7=4□□ [sage] 2006/12/13(水) 23:02:47:hfneG7B6
候補をビットフラグで管理してるとして
a1〜a3:選んだマス
b1〜b6:制約範囲(行列囲み)の他のマス
f:立っているビット数を返す関数

陽的3国同盟(同じ制約範囲の候補が消える)の判定
f(a1 | a2 | a3) == 3

陰的3国同盟(該当マスの他の候補が消える)の判定
(a1 | a2 | a3) & (b1 | ... | b6) == 0

伝統的な再帰ソルバしか書いたことがないから間違ってるかも。
□7×7=4□□ [sage] 2006/12/14(木) 06:28:00:SW3G1gX7

陰的3国同盟の意味について考えていました。
2個表出、7個未確定の場合なら陰的3国同盟は陽的4国同盟に等しいのではと
思うのですが
[abcd][abc][acd][bcd][abcxyz][bcxz][abxy][8][9]
0個表出、9個未確定の場合、陽的6国同盟なんてちょっとしんどいから
陰的3国同盟を探したほうがいい、という考え方であってるのかなー
□7×7=4□□ [sage] 2006/12/14(木) 08:40:09:b3+WIoR6
bitでそんな記事を読んだ気がする
□7×7=4□□ [] 2006/12/15(金) 10:13:25:N3nnhkKL
あるマスに入る可能性のある数値をビット列で返す関数pを用意しておく。
たとえば、1,2,3,5のどれかが入るなら、p=000010111
制約範囲(行列囲み)の全てのマスに対してp1〜p9を求める。
[123]の3国同盟を調べたいなら、
f(123)=000000111というフラグを用意しておき、
(pn|f)=fとなるpの個数が3なら、3国同盟成立。

f(123)〜f(789)の全てを調べれば、全ての3国同盟が調べられるし、
4国でも5国でも同じやり方でできる。
□7×7=4□□ [sage] 2006/12/16(土) 02:04:04:tMAK0+2n
9×9行列を考える
縦列にマスの番号、横列に1〜9の各数字をとって、
その交点に「マスに数字が入るか否か」を書き込むと
Boolean を成分にもつ9×9行列になるよね

その行列に、行の入れ替えと列の入れ替えを施して
 A B
 0 C
の形に変形できるか? ということなんだと思う

(そのとき、Bの部分が0になる、ということ)

なんか相関関係の分析とかでこういうのあった気がするし
こういう見方からだと色々あるんじゃないか
□7×7=4□□ [] 2006/12/16(土) 13:39:24:Y1/jKXXs
彼は三重の近辺らしいです。三重県の女性の方気をつけてください。

夏、彼氏が出会い系にはまってることがわかりすぐに別れました。
怖くなったので念のためHIV検査を受けると陽性でした。まだ症状は出てません。

そのあと、彼は秋にまた出会い系で三重の21歳ぐらいの女を拾ったと自慢して連絡してきました。


すぐに彼にも検査を受けるようにすすめました。彼は、受けなくてもわかってる。と答えました。
彼は自分がHIV感染者だと理解した上でセックスしていました。
私だけではありません。出会い系で知り合った人たちとしているそうです。
感染させるために。 今も続けています。

私は今後いつ発症するかわかりません。
好きな人ができても結ばれることはありません。子供も産めません。
私だけではありません。
彼から感染した女性はたくさんいるはずです。 彼の行為は殺人罪に値しないのでしょうか。

彼は三重の近辺らしいです。三重県の女性の方気をつけてください。
出会い系で知り合った男とは別れなさい!
進可 ◆Sinka1my5k [sage] 2007/04/22(日) 18:02:56:yJAbmotj
実生活が忙しくて何も出来てないけど保守
□7×7=4□□ [sage] 2007/08/11(土) 03:05:33:Dx0ojxHC
hoshu
□7×7=4□□ [] 2007/09/01(土) 20:12:47:9bR79Gyx
数独解析アプレットを作られた方、
もう一度アップお願いします。

本当にお願いします
□7×7=4□□ [sage] 2007/09/01(土) 21:25:14:q4KjazVK
数独解析アプレットってどんなのだっけ?
□7×7=4□□ [sage] 2007/09/01(土) 21:28:47:9bR79Gyx
です
□7×7=4□□ [sage] 2007/09/01(土) 22:08:29:9bR79Gyx
おぉ、移動してたのか。サンクス

独り言(四角の対角線や浜田ロジックに対応してくれうると嬉しいな……)
□7×7=4□□ [sage] 2007/09/01(土) 23:26:25:KKn2YfcB
人には解けない数独の手筋ってどんなのだろう
□7×7=4□□ [sage] 2007/09/02(日) 00:21:26:RWk4F8QG
人には解けない、というかパズル的でないのなら、試行錯誤(背理法)でしょう

一方が駄目ならもう一方が正解、っていうのはパズルの場合、一方が正解なら
他方の解が非解であるかどうか確かめる物好きって滅多におりませんし
□7×7=4□□ [sage] 2007/09/02(日) 01:49:56:V3QH75bB
仮定のスタックがあんまり深くなるのは解けない
□7×7=4□□ [sage] 2007/09/28(金) 22:47:49:PoO4skAR
ほす
□7×7=4□□ [] 2007/11/06(火) 18:08:24:cYNyDF6I
ttp://www5e.biglobe.ne.jp/~hosiza/skenew.html
ツールは確か他にもあった気がするけど・・・
□7×7=4□□ [] 2007/11/15(木) 09:12:32:8hFnaI6H
ナンプレ 数独 Sudoku 3
ttp://hobby10.2ch.net/test/read.cgi/puzzle/1180026462/253-256
□7×7=4□□ [sage] 2007/11/15(木) 23:02:08:2ysBzy/4
手筋をいくつか用意してレベルを設定して、
低いレベルの手筋だけ使って探索して、
解けない時に手筋のレベルを上げる

という方法で解くソフト
□7×7=4□□ [] 2007/11/16(金) 07:49:32:spov+9Rb
エクセルでいくらでもある
□7×7=4□□ [] 2007/11/30(金) 09:33:06:WrhTVr9D
ナンバーリンクの関西解チェッカ作りました
ttp://http://www5e.biglobe.ne.jp/~jyokun/numlin/

自分で書くのもなんですがかなり速いです
ほとんどの15x15で1秒以内
25x25でもほぼ数十秒から数時間以内に終了します

このスレや進可さんのページが大変参考になりました
ありがとうございます
進可 ◆Sinka1my5k [sage] 2007/12/02(日) 21:19:38:BqSbr2Di
速いなー。何かオリジナルの手法でも取り入れたんだろうか?
それともDELPHIが遅いのかな?
402 [sage] 2007/12/03(月) 03:27:15:TfJJ8XSA
「左上から順に仮定」っていうのは同じですが、
そのあと、各ステップごとに自動で決まる線はどんどん引く、
二種類の数字が必ず交差するようなら戻る、
などの手法が入ってます。
DelphiとVC++って速度は、
精々二倍ぐらいしか変わらなかったような(良く知らない)。
□7×7=4□□ [sage] 2007/12/03(月) 06:25:18:raSaMq66
最強アルゴリズム
間違っても気にしない
進可 ◆Sinka1my5k [sage] 2007/12/03(月) 23:06:23:d4kZZboA
>404
>二種類の数字が必ず交差するようなら戻る

これ、取り入れようとしてあきらめたんだよなー
うまい方法でもあるんですか?

>405
気にしろよw
402 ◆VR3jyokun6 [sage] 2007/12/04(火) 05:46:54:C5QBotNc
トリ付けとこ


基本的には、
外枠と確定マスをまとめて「壁」とみなし、
壁沿いに数字を拾っていって、
ABA'B'って順に現れたらダメ、
って考え方で実装してます。
進可 ◆Sinka1my5k [sage] 2007/12/04(火) 21:49:56:SeE70HGk
なるほど。壁沿いに数字があったら一気に速くなりそうな方法だ。
□7×7=4□□ [] 2007/12/14(金) 22:01:20:NjnPb1Y6
誰かフィルオミノの問題自動作成ソフトつくって公開してください。
いっぱい解きたいです。
□7×7=4□□ [sage] 2008/01/03(木) 19:31:33:bfO7WCcd
おめー
□7×7=4□□ [sage] 2008/03/05(水) 14:24:56:5/e884NR
a
進可 ◆Sinka1my5k [sage] 2008/04/05(土) 23:54:24:qB3ThooW
実生活にやっと余裕が出来て保守。
しばらくは気力のガソリンの補充だ。
進可 ◆Sinka1my5k [sage] 2008/04/28(月) 21:45:44:DuS4NgK4
こんな本が・・・
ttp://http://www.amazon.co.jp/exec/obidos/ASIN/4797340207/zapanet-22/ref=nosim/
□7×7=4□□ [sage] 2008/04/28(月) 21:50:32:m5wfyjsj
鉛筆パズルって…。

でも専門書なみのお値段だなあ
□7×7=4□□ [sage] 2008/04/29(火) 00:17:48:TTGHQFej
スケコンが載ってたら買う
おれんじ ◆6VPOTSCLM. [sage] 2008/04/29(火) 02:05:05:kFG94AHu
ナンリンソルバーを携帯アプリ用にアレンジするのって、
スペック的に可能な範囲なんでしょうか?
電車の中や日常で思い付いたのをささっと手軽にチェック出来たらいいなあ。
紙と鉛筆で記録するのってめんどいから携帯にメモをしてるんだけどね。
進可 ◆Sinka1my5k [sage] 2008/04/29(火) 16:51:21:+/07U+3J
調べてみた。
P501iのCPUクロックは9.2MHz
P900iのCPUクロックは192MHz

一般のパソのCPUが2GHz程度として考えると
約10倍の解答時間がかかると予想。

10*10は可能かな?15*15は厳しいと思う。
□7×7=4□□ [sage] 2008/04/29(火) 19:45:17:m+RpN2jd
最新のP905iやN905iなんかはどうなんだ?
倍以上になってる気がするんだが
□7×7=4□□ [sage] 2008/04/29(火) 20:04:11:m+RpN2jd
330MHzだった
□7×7=4□□ [sage] 2008/04/29(火) 21:24:04:TTGHQFej
携帯もPS3みたいなことになっとるな
おれんじ ◆6VPOTSCLM. [sage] 2008/04/29(火) 21:43:24:kFG94AHu

参考になりますた
ありがd

ソフバンの携帯にはWindowsが入ってるのもあるし、進化してるんだねえ
□7×7=4□□ [] 2008/07/25(金) 20:10:38:G1c0l+0y
上のほうにある数毒解析プログラムって今はどこにあるんですか?
プログラムほしいですお願いします
□7×7=4□□ [] 2008/07/25(金) 20:32:24:G1c0l+0y
すみません。検索したら見つかりました。スレ汚しすみませんでした。
片山博文MZ [katayama.hirofumi.mz@gmail.com] 2008/07/29(火) 12:59:34:dac8N+iu
数独が簡単に解ける! 数独ソルバーで数独を解く!

数独ソルバー
ttp://http://www.geocities.jp/katayama_hirofumi_mz/sudoku/
□7×7=4□□ [sage] 2008/07/29(火) 15:42:59:7gVRV0ab
え、バカなの?
□7×7=4□□ [sage] 2008/07/29(火) 21:47:08:23g5QxIR
           
パシャッ    パシャッ
   パシャッ
      ∧_∧ パシャッ
パシャッ (   )】Σ
.     /  /┘   パシャッ
    ノ ̄ゝ
片山博文MZ [katayama.hirofumi.mz@gmail.com] 2008/07/31(木) 12:36:14:5x25Jsbt
アップデートしたよ
数独ソルバー ver.1.1
ttp://http://www.geocities.jp/katayama_hirofumi_mz/sudoku/
□7×7=4□□ [sage] 2008/07/31(木) 14:57:37:KY1NDk+k
プログラムも変わったの?
□7×7=4□□ [] 2008/07/31(木) 17:56:04:azOtNRc6
ベクターで「ナンプレ 解答 フリー」で検索

買わなくても
□7×7=4□□ [] 2008/07/31(木) 18:40:03:keUUb0Ua
富山DQN男の家族消えろ 富山DQN男の親消えろ 富山DQN男の子供消えろ 富山DQN男の親戚消えろ
富山DQN男の家族消えろ 富山DQN男の親消えろ 富山DQN男の子供消えろ 富山DQN男の親戚消えろ
富山DQN男の家族消えろ 富山DQN男の親消えろ 富山DQN男の子供消えろ 富山DQN男の親戚消えろ
富山DQN男の家族消えろ 富山DQN男の親消えろ 富山DQN男の子供消えろ 富山DQN男の親戚消えろ
ニヤニヤ(・∀・) ニヤニヤ(・∀・) ニヤニヤ(・∀・) ニヤニヤ(・∀・)
死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね
苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね
苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね
苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね
死ぬとき このレスの事思い出してから地獄へ行けよ
ニヤ(・∀・)ニヤ(・∀・)
片山博文MZ [katayama.hirofumi.mz@gmail.com] 2008/08/03(日) 11:15:20:eKPlrd/0
ロジックソルバーもあるよ。
ttp://http://www.geocities.jp/katayama_hirofumi_mz/logic/
□7×7=4□□ [sage] 2008/08/03(日) 11:39:54:7i4YDQlu
宣伝だけならノーサンキュー
片山博文MZ [katayama.hirofumi.mz@gmail.com] 2008/08/03(日) 11:50:41:eKPlrd/0
はっきり言って、あのソフトより断然賢くて速いから。
□7×7=4□□ [sage] 2008/08/03(日) 12:01:31:VjHD7+cp
イラロジのことを単にロジックという奴にろくな奴はいない説
□7×7=4□□ [] 2008/08/03(日) 12:33:15:eKPlrd/0
海外のサイトを見ると「イラストロジック」で良いみたいだな。別名大杉
□7×7=4□□ [sage] 2008/08/03(日) 12:58:52:IdIMzhFz
そもそも「イラストロジック」自体が別名な訳で
□7×7=4□□ [] 2008/08/04(月) 12:49:06:lc7mAE1k
Yahoo!検索では、お絵かきロジックが一番多い。

ピクロス で検索した結果 1〜10件目 / 約363,000件 - 0.33秒
イラストロジック で検索した結果 1〜10件目 / 約534,000件 - 0.03秒
お絵かきロジック で検索した結果 1〜10件目 / 約874,000件 - 0.05秒
ピクチャーロジック で検索した結果 1〜10件目 / 約32,500件 - 0.16秒
□7×7=4□□ [sage] 2008/08/04(月) 22:13:00:y30LA1Ls
ただURL書くだけじゃ宣伝にしか見えないから
遅い速い以前に、誰もリンク踏もうなんて思わないぞ。

どうやって高速化したとか、賢くしたとか、そういう話題を振るなら
その成果を確認するために他の人も覗いてみる気が起きるだろ?

ロジックが得意なら、そういうロジックも考えた方がいいぞ。
□7×7=4□□ [] 2008/08/05(火) 12:23:36:ny4f9O6j

無料のソフトでも、0.1秒以下で解けますよ。
□7×7=4□□ [] 2008/08/05(火) 12:51:17:gQukaBz8

ロジックアーティストで試してみたら、サイズ35x35で、6秒以上かかるみたいですよ。
□7×7=4□□ [sage] 2008/08/05(火) 13:23:02:gQukaBz8

数独のことを言っているのか。イラロジと間違えた。
片山博文MZ [katayama.hirofumi.mz@gmail.com] 2008/08/05(火) 14:44:48:yFpvvNGs
世の中の数独は全て解けます。
とても価値のあるソフトと思います。
□7×7=4□□ [] 2008/08/05(火) 14:51:30:yFpvvNGs

使ってみましたが、とても便利でした。
他の新しいソフトも期待しています。
□7×7=4□□ [sage] 2008/08/05(火) 15:47:11:HBeTLth+
ID:yFpvvNGs
□7×7=4□□ [sage] 2008/08/05(火) 16:04:31:ny4f9O6j

たいていの数独ソフトは、世の中の数独を全部解けるでしょ。
□7×7=4□□ [sage] 2008/08/05(火) 16:06:06:ny4f9O6j

あれ?
おまえはふだんは俺のIDを書くのに。
まちがえた?
□7×7=4□□ [sage] 2008/08/05(火) 16:45:41:RSB4ImKC

多数解の問題には対応してないみたいだな
単純な例では5マス四方の問題で縦横ともに(1,1)(1,1)(0)(0)(0)
の問題だと2通りの答えがあることは明らかだがどちらか一方の解しか表示されない
世の中にあるこの手の問題がすべて1通りだと思うなよ

数独ソルバーは難しい問題だと解いてくれないし
ついでに言うと数独はニコリ社の商標登録だ
その名前を勝手に使って商売してるということは・・・どうなるかはわかるよな?

パズルで小遣い稼ぎするんならもっとパズルのことを調べろ、勉強不足だ
□7×7=4□□ [sage] 2008/08/05(火) 18:31:01:+W+gzzyl
馬鹿にいろいろ教えてやるなんてみんなやさしいなぁ
□7×7=4□□ [sage] 2008/08/05(火) 20:40:26:F51uSqJ8
どうすれば理解するか?もまたパズルです。
片山博文MZ [katayama.hirofumi.mz@gmail.com] 2008/08/07(木) 12:34:07:QDXw62tA
ナンプレソルバーに解明しました。

ナンプレソルバー
ttp://http://www.geocities.jp/katayama_hirofumi_mz/numplace/

大きなナンプレソルバー
ttp://http://www.geocities.jp/katayama_hirofumi_mz/numpla2/

イラストロジックソルバー
ttp://http://www.geocities.jp/katayama_hirofumi_mz/ilogic/
□7×7=4□□ [sage] 2008/08/07(木) 17:51:59:9Lo0hQ0w
「ナンプレ」や「イラストロジック」の商標は確認しないのか。

まあ、「ナンプレ」は雑誌だけかもしれんが、
「イラストロジック」のプログラム関連はハドソンが持ってるんじゃなかった?
□7×7=4□□ [sage] 2008/08/07(木) 20:38:39:n3LsouVE
ナンプレとお絵かきロジックの無料ソルバーいっぱいあるよ!

ttp://search.vector.co.jp/search?query=%83i%83%93%83v%83%8C
ttp://search.vector.co.jp/search?query=%82%A8%8AG%82%A9%82%AB%83%8D%83W%83b%83N
□7×7=4□□ [sage] 2008/08/08(金) 09:25:39:YcLHiGrp
>>片山様

Killer Su Doku(サムナンプレ)の
新作問題自動作成ソフトを作ってくれたら神
□7×7=4□□ [sage] 2008/08/13(水) 12:58:16:8pFp1FNW

ハドソン持ってるね。お金が絡んでるからきちんと対応しとかないと後でまずいかも。
□7×7=4□□ [] 2008/08/13(水) 15:19:34:fj9BVyA4
厳密には、無料配布でも違法だけど、
有料なら、かなり高い率で刑務所行きかもね。
□7×7=4□□ [] 2008/08/13(水) 20:21:05:Yv3Y8EJv
馬鹿はすぐホラを吹いて社会を不安に陥れる
□7×7=4□□ [sage] 2008/08/14(木) 16:45:01:rfEZ31YG
馬鹿をからかってるだけだろ。

いい加減すれ違いだと思うのだがみんな寛容だな。
□7×7=4□□ [sage] 2008/10/25(土) 02:09:35:IOf6BrGR
イラロジは自作で作ったものがあるぞ。VB6で作ったんで汎用性がイマイチだけどw
速さは雑誌掲載の最大サイズのもので20秒前後。早いのか遅いのかは分からない。
仮定法込みだと1.5倍くらい?
□7×7=4□□ [] 2008/10/25(土) 15:11:36:nvmGBqF+

それは解くためのソフト?
□7×7=4□□ [sage] 2008/10/26(日) 00:45:33:JvJQQF0r

解く為のソフトだけど、自分で解けるようにもしてある。
問題点は入力にものごっつい時間が掛かること。
巨大サイズの場合、1ライン平均5個として、×200×100=100000。この個数を打ち込まないといけないw
□7×7=4□□ [sage] 2008/10/26(日) 00:48:43:Dt8YyZnT

行ってる意味が良く分からない。5*(100+200) ではないのか。
□7×7=4□□ [sage] 2008/10/26(日) 02:02:19:Xkyey/mF
解くため、でも意味が確定しないけど、
要は人間が脳を使ってパズルを解くのを紙の代わりにPCでやれて、
必要ならいろんなヒントも出せる的なソフトだと仮定して

そういうのの数独用でいいのない?
□7×7=4□□ [sage] 2008/10/26(日) 03:40:06:JvJQQF0r

うん、それで合ってる。自分がバカでした。大体1〜2時間位掛かる。

掲載されているイラロジを入力して、紙の代わりにPCでもやれるし、コンピューターに解かせる事もできるだけです。

数独って自分は殆んどやらないから詳しくないです。
自分で組むんじゃ総当りにしてしまいそう。コツが分からないし。
□7×7=4□□ [sage] 2008/10/26(日) 14:45:13:qdMLH8V/
フィルオミノの問題を大量に自動作成するソフトを作ってください。
有料でもいいです。よろしく。
□7×7=4□□ [sage] 2008/10/26(日) 17:06:29:Xkyey/mF
数独を人間が解くアシストプログラムとして、
同じ数字だけ色を付ける、とかの軽いヒント情報から、
初歩的な手筋から入ることが確定する数字を表示するとか、
手筋に順位を付けて、最も簡単な手筋で解ける部分を示すとか、
それでも判らない場合は、手筋の種類や、関連するマス等を
小出しにヒントを表示する、チュートリアル的な機能もあるソフトキボン
□7×7=4□□ [sage] 2008/10/26(日) 19:14:05:8RyMdRN3
>464
手で作る場合、どうやってんの?
464 [sage] 2008/10/27(月) 14:52:49:C9gt39Ir

作りたいけど作れないの。
□7×7=4□□ [sage] 2008/10/27(月) 20:24:42:Zn4Tjrnd
それが判らないのにプログラム組めるはずが無いw
予想してみると、こんな感じかな?

削岩タイプ
 全部埋まっている答えの状態を作っておいて、答えが出るように削っていく。

盛り土タイプ
 数字を置いて手解きしながら隣のマスが判明するように、初期位置数字を置いていく。
□7×7=4□□ [sage] 2008/10/27(月) 22:30:15:k4B2MIKC
削岩タイプでまともに問題を作れるペンパの例があるのだろうか。
□7×7=4□□ [sage] 2008/10/27(月) 23:56:54:G0puWTJN

は欲しい人で作りたい人じゃないんじゃない?
ぱっと思いつくのは、適当なマスを選んで再帰掛けて決まった個数分だけ埋め込んでいくやり方。
これだけだと重そうなんで、最初に少しだけ↑の方法で埋め込んでから、全マスを端から調べて埋めていく。
□7×7=4□□ [sage] 2008/10/28(火) 19:23:05:aQYXxtDN
判ってる数字の位置が綺麗に並んでいる面を作るには削岩は無理だな。
□7×7=4□□ [sage] 2009/07/27(月) 22:04:54:Zmb9AVaz
ちょうどいいスレを見つけたと思ったら9ヶ月止まってる・・・
□7×7=4□□ [sage] 2009/07/27(月) 22:45:34:Tbpip/c9
潜在的に見てる人は多いから何かネタがあれば一気に伸びると思う
□7×7=4□□ [sage] 2009/07/27(月) 22:59:21:Zmb9AVaz
おお、そうなのかー
Eternity II Puzzle解き始めたからここで何かないかなーって思ってたとこ
おれんじ ◆6VPOTSCLM. [sage] 2009/07/30(木) 23:09:10:a1f/ZtGm
自分もブクマして定期的に見てる
□7×7=4□□ [sage] 2009/07/31(金) 01:26:31:kWoZgqTl
おれもブクマクマヤコンしてる
□7×7=4□□ [sage] 2009/07/31(金) 01:33:29:q3MhuDwi
結構たくさん人いそうだねー といっても自分の持ってきたのだとここと趣旨が合わなそうだけど
ペンシルパズルのも興味あるから自分もブクマしておこっと
□7×7=4□□ [sage] 2009/09/29(火) 12:48:31:7kIKMpC8
ttp://www.conceptispuzzles.com/
ここのFill-a-Pixの支援(解答)ソフトってないかな?
ルールが同じで違う名前ってのが探し辛いから…
あればうれしいのですがなければ自力で解答なのかな〜
□7×7=4□□ [] 2009/11/06(金) 15:13:45:aOEloiPa
たしかに、Eternity U(16×16)は、解くのがおもしろそう
サンプルパターンを入手したので、気長に挑戦しようと思う
□7×7=4□□ [sage] 2009/12/08(火) 22:12:38:RLUNlzn6
ましゅ、ぬりかべ、美術館……
この辺のパズルを思う存分遊びたいので、自動で問題作成してくれるソフト
お願いします。
って書くと「自分で作れ」って返されると思うので、違うことを言います。
各マス(10×10、20×20)で一意の解答が得られる組み合わせって言うのは有限ですよね?
それを効率的に抽出するにはどうしたらいいと思いますか?
□7×7=4□□ [sage] 2009/12/08(火) 22:54:42:JqSEbWJr

一番興味を持っている人が考えるのが良いと思う。
□7×7=4□□ [sage] 2009/12/09(水) 00:41:06:m2NcqNcF
まず自分でガンバレ。応援するぞ。

っていうか自動的な問題作成だと味が無いという話を聞くが
それほどまでに違うのだろうか?
□7×7=4□□ [sage] 2009/12/10(木) 02:58:05:XH16J/YL

求めているものはひとつくらいここにありそうだが英名わからん
ttp://www.chiark.greenend.org.uk/~sgtatham/puzzles/
□7×7=4□□ [sage] 2009/12/10(木) 16:29:22:7efB55uv
480

ありがとう。「Light Up」が美術館でした。他のは知っている奴やルールの分からないパズル……
面白そうです。
プログラミング能力がほぼゼロなので作れませんw
が、やってみたいことは……
有限のパズル面を全部抽出、すべてにIDを付与、難易度別に一覧表示などなど
夢は尽きませんねw
ちょっと調べると、「ぬりかべ」は難易度評価が出来るようです。他は不明
ドイツあたりに自動生成ソフトがあるようですが、例によってドイツ語わからんw
しかも日本名以外パズルの名前も分からんwww
□7×7=4□□ [sage] 2009/12/10(木) 19:53:07:psJY7LO9
パズルが解けるならパズルを作れる。
パズルを作れるならプログラムも作れる。

法則がわかれば意外とできるもんだぞ。
480 [sage] 2009/12/27(日) 17:26:36:qoKNaz77
10×10の「ましゅ」を100桁の数字として考えてみる。
012の100桁の重複順列とする事が出来る。
なんか色々考えてみたけど、処理速度がすごいことになる(超遅いw)
角に1は無い。辺に3個0は並ばない……とか条件付けても
条件付けただけ遅くなるw

うまく10桁づつに分割して計算したり、気の利いた方法は無いのだろうか。

5×5で25桁の重複順列を出力するだけでもきびしいw
ファイルサイズが4Gを超えた時点で諦めたwww
□7×7=4□□ [sage] 2009/12/28(月) 00:27:24:3Q/XJN+D
どういう考え方で何を求めたいのかイマイチ不明。
□7×7=4□□ [sage] 2009/12/29(火) 21:36:36:0Mc2p0DQ

考えていることは判るけど,5x5でも3**25になる。
3**25は8472億って膨大な数。
ましてや10x10だと3**100になります。
全部虱潰すのは無理ではないですか。
現実的に出来ることは,作った問題をDB化することぐらいでしょうか。
□7×7=4□□ [sage] 2009/12/29(火) 22:53:31:0Mc2p0DQ

ましゅの場合,自動生成は以下のようにしてはどう?
1.内部に輪(解答)を生成する。
2.それに合わせて○●を配置する。
3.解いてみる。唯一解ならば問題として成立。
4.1へ戻る。

解けないとき1へ戻るのでなく,輪の一部を修正していくっていうのも一つの考え方。
3で解けたとして,○●の配置を変えたり,数を減らしたりしても問題として成立してしまうのが悩みの種か。
10x10だとそこそこの確率(100回に1回くらい?)で作成できると思う(今やってみたら75回で唯一解の問題が出来た。
複数解が出るのはもっと多い)。

5x5で自動生成した問題。

●____
___○○
_○__○
_____
●_○__

右の○4つはどれか一つを除いても問題として成立。
左上の●は代わりに右と下に○を置いても問題として成立。
左下の●は代わりに上に○を置いても問題として成立。

問題として面白いのはどれだろう?

□7×7=4□□ [sage] 2009/12/29(火) 23:09:15:4WIdmDGK

ちょっと違うんじゃないかな.
にあるような置き方制限があるから
端から順に置いていくとそれなりに枝狩りはできる.
あとは回転対称は省略するとか,●●●が禁止とか,
○だけの3xA(A≧3)の長方形が無いとかの制限も考えられる.
とはいえ5x5で3**15〜3**20程度までしか抑えられないと思うけど.
(ちなみに3**20≒3.5Gパターンなので予想が正しければDB化もギリ可能)

でも結局キチンと解答できるプログラム作らないと
最終的な唯一解判定ができないな.



とりあえず,5x5(10x10)のフィールドで唯一解になるましゅの
全パターン出力だと思われ.
480 [sage] 2010/06/11(金) 22:38:31:mroE9OCT
おひさしぶり
ttp://cl-informatik.uibk.ac.at/software/puzzles/
ここにあるソフトが問題の自動作成と自動解答を備えている・・・

自動解答は、ベーシックソルバーとトライアンドエラーソルバー
 確定探索と背理法探索?

自動作成は5段階のレベル設定付き

JAVAのソース見ても意味わからんけどね。しかも変数名がドイツ語w
自分の都合の良いようにソースの編集とかできる能力が欲しいね。
進可 ◆Sinka1my5k [sage] 2010/11/03(水) 00:59:51:DiH369Kf
言語をHSPに変えてみたけど、この言語、どうやら計算速度が遅いらしい。
答え解析に向いてなさそうだ。ちょっと失敗だったかなぁ。
□7×7=4□□ [sage] 2010/11/03(水) 01:15:29:t0nVl8yK
HSPはスクリプト言語なので、コンパイルしてexeができるような言語よりは
遅くなるだろうねー…
□7×7=4□□ [sage] 2010/11/03(水) 08:21:10:czNL6Csv

まあ中間コードに変換するからいくらなんでもBASICよりは速かろう・・・
いやコンパイルするBASICもあるか
□7×7=4□□ [sage] 2011/03/05(土) 22:10:53.41:IyeO416E
ttp://www.oct.zaq.ne.jp/woodside/mash/

MashPlayer すごいね・・・。
□7×7=4□□ [sage] 2011/03/07(月) 02:08:01.08:rDObKlMA

MashPlayer.jarファイルが見つからないんだけど・・・
□7×7=4□□ [sage] 2011/03/07(月) 21:54:17.40:ko8eGe8V
ttp://www.oct.zaq.ne.jp/woodside/mash/MashPlayer.jar

画面中央に
ダウンロード
本体(MashPlayer.jar ver 0.57 : 実行jarファイル 182kbyte)

って出てるけど・・・。
□7×7=4□□ [sage] 2011/03/08(火) 00:16:37.31:SEA1QRQU

それの中身に入ってないみたいなんだよ
せっかく面白そうなのに・・・
□7×7=4□□ [sage] 2011/03/08(火) 00:26:33.16:SEA1QRQU
なぜかDLするとzipになる
.jarにリネームしたら動いたよ
□7×7=4□□ [sage] 2011/03/08(火) 00:30:31.28:96cbe15F

そりゃjarってzipで固めたものですしおすし
□7×7=4□□ [sage] 2011/03/22(火) 16:09:24.41:dxYHictM
MashPlayer.jarのソース見ても意味が分からないんですが、誰か解説していただけませんか?
□7×7=4□□ [sage] 2011/11/12(土) 14:48:27.43:yREyQ+MI
ttps://twitter.com/#!/imos/status/135172910125039616
@imos Imo / Kentaro Imajo
ナンバーリンクソルバーをアップしてみた bit.ly/tprX41 [要出典] [Espeon]

ttps://github.com/imos/Puzzle/tree/master/NumberLink
□7×7=4□□ [sage] 2011/11/25(金) 10:35:42.66:/jO8WYIo
浮上!
□7×7=4□□ [sage] 2012/04/13(金) 03:47:47.31:cGMA8oce
25x25の数独で300個程度のブランクがある問題を、自作ソルバー書いてみたんだけど、
かなり時間掛かってる。一問解くのに1日くらいは余裕で掛かりそうな感じ。
高速なソルバーだとどれくらいで解けるもんなんだろう。
□7×7=4□□ [sage] 2012/04/13(金) 09:57:09.12:y8sA6qV1
どんなアルゴリズムで解いてるか書いてくれないと何とも言えん
□7×7=4□□ [sage] 2012/05/30(水) 22:45:51.70:0IZLXxbe
ttp://http://www.geocities.jp/takeiteasy_idontthinkso/puzzle/numple/index.html
数独解くのなんだけど
このアルゴリズムどう?
□7×7=4□□ [sage] 2013/01/11(金) 16:23:34.36:Dl18PuDv
うーむ
□7×7=4□□ [sage] 2013/01/13(日) 01:28:35.25:2rNJRiqF
cross plus A ってソフトがほぼ全てのパズルに対応していて問題も自動生成できるようですね。
残念ながらシェアウエアみたいですが
□7×7=4□□ [sage] 2013/01/14(月) 23:52:31.29:4qyytc2L
ttp://cl-informatik.uibk.ac.at/software/puzzles/
ここのmasyu.jarに外部プログラムから問題データを流し込んで解答ソルバーを自動実行させて、問題が解けるかどうかの返り値を得る。

そんなプログラムって作れる物ですかね?
□7×7=4□□ [sage] 2013/01/18(金) 22:55:16.31:DvQBIvmd

問題の自動生成については、質ははっきり言ってしょぼい。
ソルバーも使いにくいし。

まあ、アプリのメニュー等の日本語翻訳に協力すれば、
謝礼としてライセンス無料でもらえるみたいだし。
(翻訳すべきところはすべて1つのファイルに納められてる)
□7×7=4□□ [] 2013/07/25(木) NY:AN:NY.AN:+2H7Glyh
age
片山博文MZ ◆0lBZNi.Q7evd [] 2013/07/25(木) NY:AN:NY.AN:B61xxat9
「クロスワード ギバー」Windows用フリーソフト
ttp://http://katahiromz.web.fc2.com/xword/

無料でクロスワード自動作成。二重マス対応。高速化。
□7×7=4□□ [] 2013/07/25(木) NY:AN:NY.AN:B61xxat9
クロスワード自動作成のネ申ソフトあらわる!
7x7があっという間に作成できる!?
□7×7=4□□ [sage] 2013/07/25(木) NY:AN:NY.AN:izll4+Z/
ID:B61xxat9
□7×7=4□□ [sage] 2013/07/25(木) NY:AN:NY.AN:87fICYTg
IDがwww
□7×7=4□□ [] 2013/07/26(金) NY:AN:NY.AN:bGIUnfuI
クロスワードの作り方(ずぼらな人向け)
ttp://http://katahiromz.web.fc2.com/xword/guide.html
□7×7=4□□ [] 2013/07/26(金) NY:AN:NY.AN:bGIUnfuI
何かしゃべろうよ
□7×7=4□□ [] 2013/07/26(金) NY:AN:NY.AN:BW47XJRv
何でそんなにパズルソフトの宣伝に必死なの?
□7×7=4□□ [sage] 2013/07/26(金) NY:AN:NY.AN:5BTAOh0S
雑談スレでフルボッコにされて逃げて来たから。
□7×7=4□□ [sage] 2013/07/27(土) NY:AN:NY.AN:+9zAQwoo
生活が一番
□7×7=4□□ [sage] 2013/07/27(土) NY:AN:NY.AN:buxj9hoY
そのレベルで神ソフトとかハードルを上げるから相手にされないんだよ
それと仲良く会話したいならTwitterでもしなよ
□7×7=4□□ [sage] 2013/07/27(土) NY:AN:NY.AN:VY2iezyN
やはりパズルの作成に関しては人間の方が優れている
□7×7=4□□ [sage] 2013/07/27(土) NY:AN:NY.AN:1gkm0NvB
例のソフト否定してる人は●クリエーショ●も嫌いなの?
片山博文MZ ◆0lBZNi.Q7evd [] 2013/07/27(土) NY:AN:NY.AN:+9zAQwoo
レビューしてくれよ!
お願いします。
□7×7=4□□ [sage] 2013/07/28(日) NY:AN:NY.AN:f3teeYdB

少なくともループコースパズルは解く気になれない
□7×7=4□□ [sage] 2013/07/29(月) NY:AN:NY.AN:KK+5x6hD

ver1.0にしてから来い
あとソースコード読みにくい
□7×7=4□□ [sage] 2013/08/03(土) NY:AN:NY.AN:CZx0fJgl
そんなとこまで読んであげてるんだ
□7×7=4□□ [sage] 2013/08/04(日) NY:AN:NY.AN:EqU0Zmy0
自動で生成してくれるのはありがたいけどGUIはこれくらい欲しい
ttp://http://xword.squares.net/
片山博文MZ ◆0lBZNi.Q7evd [] 2013/08/21(水) NY:AN:NY.AN:dsaFCNXJ
「クロスワード ギバー」Windows用フリーソフト
ttp://http://katahiromz.web.fc2.com/xword/
英和単語データ追加。二重マス単語がタイトルバーに表示されるようになりました。
片山博文MZ ◆67pssKZj2HDg [sage] 2013/08/23(金) NY:AN:NY.AN:zmcYt1Ge
ajitakさん、論評ありがとうございます。
片山博文MZ ◆0lBZNi.Q7evd [sage] 2013/08/23(金) NY:AN:NY.AN:zmcYt1Ge
ajitakさん、論評ありがとうございます。
片山博文MZ ◆T6xkBnTXz7B0 [] 2013/08/26(月) NY:AN:NY.AN:6RHbuoL5
生まれ変わりました。よろしく。
□7×7=4□□ [sage] 2013/08/26(月) NY:AN:NY.AN:o/OnHS30
トップ画像に不快用語が入っているようなソフトって……
□7×7=4□□ [sage] 2013/08/26(月) NY:AN:NY.AN:6RHbuoL5
ドカタがそんなに不快なの?
□7×7=4□□ [sage] 2013/08/27(火) NY:AN:NY.AN:hhHYm0Ls
ふつうそういう言葉は使用しない
パズルに限った話ではない
何でもかんでも辞書から持ってこればいいってもんじゃない
クロスワード雑誌買って使われている言葉を見てみなよ
□7×7=4□□ [sage] 2013/08/27(火) NY:AN:NY.AN:lTaK+Hjj

マスコミで書き換え対象になっている言葉を
わざわざ出さなくてもいいんじゃないかな。
そのソフトでいくつでも盤面は作れるのだろうから
きれいな言葉が並んだものを選んで載せておいた方がいい。

うまくない例えだけれど、食品のパッケージに虫の絵を使っているような感じ。
気にしない人は気にしない、だけど絶対に手に取らない人も出てくる。
ユーザを増やしたいならそういうところに気を遣っても損じゃない。
□7×7=4□□ [sage] 2013/08/27(火) NY:AN:NY.AN:ur/HbbCt

お前なんか勘違いしてるけど、
ギバー同梱の単語リストには日本語・英語毎に二種類(「ドカタ」等もアリな自由Verと謹慎Ver)あるからな?
実験用と実践用に分けて用意してくれるだけ良心的だろ

そもそも10x10の時点でかなり重い(=ミニサイズ用途にしか使えない)から、投稿用の単語フィルタとか考慮する意味は薄いけどね
□7×7=4□□ [sage] 2013/08/27(火) NY:AN:NY.AN:lTaK+Hjj
いや、トップ画像にはその謹慎Ver.とやらで作った盤面を載せたほうが
印象がいいんじゃないかという話なんですけれど…
どうやら関わらないほうがいいようですね。
□7×7=4□□ [sage] 2013/08/27(火) NY:AN:NY.AN:hhHYm0Ls
謹慎verにドカタが入ってる件
□7×7=4□□ [sage] 2013/08/28(水) NY:AN:NY.AN:7UOMDOQX
何の話をしてるんだ
□7×7=4□□ [sage] 2013/08/28(水) NY:AN:NY.AN:7coKTZOW

のソフト
TOPページの画像に放送禁止用語
□7×7=4□□ [sage] 2013/08/28(水) NY:AN:NY.AN:lK6MQ9s3
おまえら優しい奴ばっかだな
そんなソフトなら何も言わないか嘘のレビューして淘汰されるのを待てよ
□7×7=4□□ [sage] 2013/08/28(水) NY:AN:NY.AN:/V7InDw9

冷静に考えると些細な問題だよな……
□7×7=4□□ [sage] 2013/08/28(水) NY:AN:NY.AN:7UOMDOQX
なるほど
そんなにいいソフトなのか
□7×7=4□□ [sage] 2013/08/28(水) NY:AN:NY.AN:/V7InDw9


>10x10の時点でかなり重い(=ミニサイズ用途にしか使えない)
片山博文MZコスモ ◆T6xkBnTXz7B0 [] 2013/08/28(水) NY:AN:NY.AN:Y8bmEOQR
今、単語データの精査してる。ver.1.0は印刷機能が付く予定。
片山博文MZコスモ ◆T6xkBnTXz7B0 [] 2013/08/29(木) NY:AN:NY.AN:f8w3fF27
2ちゃんねる消えたら、おーぷん2ちゃんねるに移住します。
□7×7=4□□ [sage] 2013/08/29(木) NY:AN:NY.AN:YlH1JjKS
ここは片山さん専用スレ?
□7×7=4□□ [sage] 2013/08/29(木) NY:AN:NY.AN:5A86W9RV

別に俺の美術館ソルバーを事細かく紹介してもいいけど、
この状況でそこまで暇なことはできないよね……
片山博文MZコスモ ◆T6xkBnTXz7B0 [sage] 2013/08/29(木) NY:AN:NY.AN:/W4kPNCu
ver.1.0公開しました。印刷機能がついて便利!
ttp://http://katahiromz.web.fc2.com/xword/
片山博文MZコスモ ◆T6xkBnTXz7B0 [sage] 2013/08/30(金) NY:AN:NY.AN:c7AxjlgP
ver.1.1から黒マスの配置を決めてから解を求めることができます。
線対称や点対称の凝った黒マス配置もできますよ。詳しくは
付属の技術文書をご覧ください。


黒マス配置してからだと10x10でもすぐ作成できることがありますよ。
□7×7=4□□ [sage] 2013/08/31(土) NY:AN:NY.AN:Hyh/uyfn

単に他の話題がないだけ
□7×7=4□□ [sage] 2013/09/05(木) 19:36:41.67:L/ip4VCK

黒マスだけでなく、文字についても初期配置できるようにしてほしいです(特定ワードを埋め込みたい時に)
□7×7=4□□ [sage] 2013/09/05(木) 19:41:24.20:xc5vpacQ

このソフト使う気?
個人で楽しむ分には良いだろうが、これで投稿しようと思わない方が良いぞ
片山博文MZコスモ ◆T6xkBnTXz7B0 [] 2013/09/06(金) 21:19:57.63:GP5LIJ6x

今作成中です。1週間ほどお待ちください。
□7×7=4□□ [] 2013/09/07(土) 04:12:27.16:9DbbxZdY
年長組(23kg±6kg)、年中組(17kg±4kg)、年少組(14kg±2kg)、幼児(9kg±1kg)
を大型体重計に一人ずつ乗せていってその都度重さを確認しながら総重量500kg±1kgにできる確率が一番高い手順を求めたいのですが
どうすればよいでしょうか?なお上限を40人とし、体重のキログラム未満は考えないものとし誤差分布は平等としています。
□7×7=4□□ [sage] 2013/09/07(土) 07:11:21.77:nKzHSDNS
1GBくらいあるファイルをいくつかまとめてDVD-Rに焼く時に、
無駄が出ない組み合わせを計算させたりしてたな

普通にナップサック問題だけど、数が少なければ力業で解ける
ちょっと数が増えるとすぐに解けなくなるけど、
厳密解である必要も無いので、適当に数を絞れば簡単に解ける
□7×7=4□□ [sage] 2013/09/07(土) 08:18:59.95:Iuf02Qge

それって最小二乗法的な解答を求めてるんかね?
±を無視してナップサック問題を解くと「14+9×54」(皆の価値が均等)か「23×21+17」(価値が体重比例)
になっちまうから難しい……
□7×7=4□□ [sage] 2013/09/07(土) 09:20:48.43:nKzHSDNS
40未満を満たす解はそもそもあるのかで場合分けして、
あればその中で誤差最小

無い場合の評価が難しいな
まあ、あるんだけど
□7×7=4□□ [sage] 2013/09/07(土) 11:38:56.47:9DbbxZdY
ありがとう。
人力で考えれば、大きい子供で選択肢を温存しながら総重量を増やしていって、500kgか40人に近付いてきたら誤差の少ない小さい子供に切り替えていく方法が一番良さそうですがちから任せ探索かバックトラックでも大丈夫です。
その場合上の例ではどのようなプログラムになるのでしょうか?誤差を評価しながら枝刈りしようとしてつまずいてしまいました
□7×7=4□□ [sage] 2013/09/07(土) 12:05:27.06:nKzHSDNS
それぞれ0から40までとして、組み合わせの数は40^4=2560000
この程度の数なら一瞬で解ける
□7×7=4□□ [sage] 2013/09/07(土) 12:13:34.63:nKzHSDNS
結果
14*28+9*12が最小
計算は2秒かからない
□7×7=4□□ [sage] 2013/09/07(土) 12:29:11.85:nKzHSDNS
あ、違う
ぴったり40人で計算してた

17*2+14*32+9*2 かな
□7×7=4□□ [] 2013/09/07(土) 13:03:38.09:9DbbxZdY
おおお36人で誤差最少が出るのですね!ありがとうございます
ちなみに500±1kgに収まる確率はどう出たでしょうか?
よろしければプログラム拝見して参考にさせて頂きたい
□7×7=4□□ [sage] 2013/09/07(土) 13:21:46.13:nKzHSDNS
誤差の見積もりは単純に足すだけなら、やっぱりだと思う

$min = 100;
for ($n1 = 0; $n1 <= 40; $n1++) {
 for ($n2 = 0; $n2 <= 40; $n2++) {
  for ($n3 = 0; $n3 <= 40; $n3++) {
   for ($n4 = 0; $n4 <= 40; $n4++) {
    next if $n1 + $n2 + $n3 + $n4 > 40;
    next if $n1 * 23 + $n2 * 17 + $n3 * 14 + $n4 * 9 != 500;
    $score = $n1 * 6 + $n2 * 4 + $n3 * 2 + $n4 * 1;
    if ($score < $min) {
     print "$n1 $n2 $n3 $n4 $score\n";
     $min = $score;
    }
   }
  }
 }
}
□7×7=4□□ [] 2013/09/07(土) 14:04:40.71:9DbbxZdY
あっ私が求めたいのは誤差最少の組み合わせではなく総重量を確認しながらの最適解なんです
例えばで14±2kgを25人乗せた時点で最大値である400kgだったら次から9±1kgを乗せたほうがいいんじゃないかとか
バックトラックでも厳しい計算量でしょうか?
□7×7=4□□ [sage] 2013/09/07(土) 14:45:43.54:nKzHSDNS
実際の重量が測ってみないと判らないなら、それは事前には解けない
チェスの対戦プログラムみたいな感じで、その場で入力しながら、
最善手を探すような実装になるのでは
片山博文MZコスモ ◆T6xkBnTXz7B0 [] 2013/09/08(日) 13:54:57.99:8OM1clLl

ver.1.2で未登録単語の処理を追加しました。

未登録単語を使うときは、きちんと端を黒マスで閉じてください。
□7×7=4□□ [sage] 2013/09/08(日) 14:37:06.91:/sUiWQcZ

乙でした!
ttp://up3.viploader.net/pc/src/vlpc014174.png
片山博文MZコスモ ◆T6xkBnTXz7B0 [sage] 2013/09/08(日) 14:56:38.50:8OM1clLl

「フケ」はまずかったかな?
片山博文MZ ◆T6xkBnTXz7B0 [sage] 2013/09/08(日) 22:31:31.02:MaM8UD+c
どんどんご意見・ご要望をお寄せ下さい。待ってます。
□7×7=4□□ [sage] 2013/09/09(月) 16:13:16.47:bV6eySQP
ヒコウシ
ヨウケン
ウレツコ
カイケン
□7×7=4□□ [] 2013/09/09(月) 16:14:51.86:bV6eySQP
ヤクシヨ
キンユウ
メリツト
シンケン
□7×7=4□□ [sage] 2013/09/09(月) 16:21:17.53:bV6eySQP
おもれー

キユウジツ
ヨウキユウ
ウシ■ウチ
チヨウシヨ
ヨクジヨウ
□7×7=4□□ [sage] 2013/09/09(月) 19:43:58.61:dO1ujJNr
もじぴったんの難問にみたいなのあったな
右下が「ん」の4×4のフィールドに同じ文字を使わずに4文字の言葉8個作れとか
□7×7=4□□ [sage] 2013/09/09(月) 23:23:33.64:FAhTIbpm

(あれ、これって数え切り問題にならね?)
片山博文MZ ◆T6xkBnTXz7B0 [sage] 2013/10/06(日) 19:29:47.29:mzhgcHFE
何かネタないの?
□7×7=4□□ [sage] 2013/10/06(日) 20:54:47.83:MKALIK4g

あなたは逆コンパイラを作る作業に戻って下さい
□7×7=4□□ [sage] 2013/10/12(土) 09:27:37.56:nYoDnnR3
アッカーマン数字の11で1の位の数を求めてて下さい
□7×7=4□□ [sage] 2014/01/27(月) 10:52:35.09:8d6v1OaW
6
6
aaaabb
cccdbb
ccceef
gggeef
hhhiii
hhhiii
2
0
1
-1
0
-1
2
2
2


こういう形式の、へやわけの問題ファイルを拾ってきたけどペンシルボックスで動くように書き換えるスクリプトってありますか? 3000問あるんですが・・・。
□7×7=4□□ [sage] 2014/01/27(月) 12:17:49.99:8d6v1OaW
ttp://http://www.dotup.org/uploda/www.dotup.org4829887.zip.html
片山博文MZ ◆T6xkBnTXz7B0 [] 2014/01/27(月) 15:52:11.13:8A9BOnwT
連続生成も可能になりました。

「クロスワード ギバー ver.1.4」Windows用
ttp://http://katahiromz.web.fc2.com/xword/
□7×7=4□□ [sage] 2014/01/28(火) 00:17:43.85:hTBMiwU1

簡単そうなら作るけど
ペンシルボックス形式ってどんな形式だっけ?
片山博文MZ ◆T6xkBnTXz7B0 [sage] 2014/01/28(火) 00:31:18.18:3c5R27Cb
バグがあったようだ。
すぐ修正する。
□7×7=4□□ [sage] 2014/01/28(火) 00:33:40.02:hTBMiwU1
あー仕様分かった
今日はもう夜遅いけど数日待ってくれるなら作るよ
□7×7=4□□ [sage] 2014/01/28(火) 01:36:42.74:hTBMiwU1

出来た
ttp://www1.axfc.net/u/3156448.zip?key=sage
使い方は中に説明書があるけどわからなかったら聞いて
□7×7=4□□ [sage] 2014/01/28(火) 15:39:00.00:HGSB7Uws

ありがとうございます。変換できました。
また何かありましたら、よろしくお願いします。
片山博文MZ ◆T6xkBnTXz7B0 [sage] 2014/01/28(火) 16:33:43.48:e4Fr8vXP
バグ修正しました。

「クロスワード ギバー ver.1.5」Windows用
ttp://http://katahiromz.web.fc2.com/xword/
□7×7=4□□ [sage] 2014/02/03(月) 22:30:10.45:IwO0RcKg
ttp://http://www.menneske.no/hashi/eng/

「橋をかけろ」 366474問って何だよww
□7×7=4□□ [sage] 2014/02/11(火) 21:53:32.93:1VlBnsuh
このスレに人が居ない。このパズルの解答は・・・。
□7×7=4□□ [sage] 2014/02/12(水) 16:46:52.00:zjXC36T1
話題がなければ自分で作る
□7×7=4□□ [] 2014/02/17(月) 11:18:57.20:KWxlPn+D
イラストロジック(廃刊)
お絵かきロジック・ソルバーを作っていますnekoppy3と申します
僕のレベルはどれくらいか腕試しにきました
OSはウブンツですが
twitter : @nekoppy3000
mail: nekoppy@gmail.com
HP: ttp://logic777.web.fc2.com/
よろしくお願いします
□7×7=4□□ [sage] 2014/02/26(水) 22:19:42.44:j3hFw8KC
ググれば他にも作っている人がいるから同じ問題試してみたら?
PCのスペックの問題なのか解くの遅いような気がする
nekoppy3 [] 2014/02/27(木) 09:14:23.29:FY2eB8ar

loginekoとロジック・アーティストを試したことあります
彼らにはかないませんでした
□7×7=4□□ [sage] 2014/02/27(木) 17:13:18.32:+8VZqff+
ttp://www.puzzle-bridges.com/task.php?id=1&size=11
「橋をかけろ」の問題画像データ(PNG)からテキストデータに変換する。
ピクセル単位の色情報を取得して型にハマったら「1」とか変換すればいいのかな?
幸い画像上の数字の大きさとか形状は同一のようなので融通は利きそう。

HSPで「美術館」画像のOCRなんてのもあるみたいですね。
□7×7=4□□ [sage] 2014/02/27(木) 18:12:58.05:Ql8Y5O87

loginekoって謎の速さだよね……
データインポート辺りが割りと糞だけど
苛ついた挙句、仕様書ひっくり返してこんなものを作ってしまったレベル
ttp://http://www.vector.co.jp/soft/win95/game/se497399.html
□7×7=4□□ [sage] 2014/02/27(木) 18:14:12.09:Ql8Y5O87

ちな、そのOCR作ったの俺。最近じゃソルバの方もうpしたから試してみてちょ
ttp://http://www.vector.co.jp/soft/win95/game/se503886.html
□7×7=4□□ [sage] 2014/02/27(木) 19:53:10.91:+8VZqff+
もう落としてたり・・・。
サイトからデータを抜く話をしてると本人がいる可能性もあるのかぁ。

おっぱい研究お疲れ様です!。
□7×7=4□□ [sage] 2014/02/27(木) 20:13:16.85:Ql8Y5O87

それは音伎さんに言ってやれよ。まあどうやって労えばいいか分からないのが残念だが
あれの元ネタは御存知の通りWebアプリだが、ソースが酷すぎたのにキレて書き直した記憶がある……
ttp://http://ysrken.blog.fc2.com/blog-entry-43.html(注:サイト更新してなくてスマン)
ttp://http://ysrken.blog.fc2.com/blog-entry-44.html(同上)

ちなみに、このアプリ(と元ネタ)に言えることだが、パラメータの根拠に疑義があるようだ。
詳しくは以下のレスを参照。祇条さんかわいいよ祇条さん(ID:qR2KRckzが俺)
ttp://toro.2ch.net/test/read.cgi/gal/1369674241/637-644
片山博文MZ ◆T6xkBnTXz7B0 [] 2014/03/02(日) 14:22:18.26:pQLG0hqT
高速化しました。

「クロスワード ギバー ver.1.6」Windows用
ttp://http://katahiromz.web.fc2.com/xword/
nekoppy3 [] 2014/03/30(日) 14:20:57.29:YHvZ1lnh
ドット絵エディタ作って、簡単にドット絵編集出来るようにして
イラストロジックの問題に変換出来るようにして、出版社にイラロジ問題の
アマチュア投稿作品として連投すればいいのでは?というアイデアが浮かんだ
□7×7=4□□ [sage] 2014/03/30(日) 14:27:41.14:CCfUd+js

おっとドット絵(白黒)→イラロジ変換は俺が既に作ったのがあるぞ
ttp://http://www.vector.co.jp/soft/win95/game/se497399.html
とは言え、LogiNeko等の編集ソフトを使って調整しないとマトモな問題にならないがな……
せめて、「唯一解が出る」「人類が解ける程度の難易度」であることは確認しようぜ
nekoppy3 [] 2014/03/30(日) 14:49:30.31:YHvZ1lnh
おおお、実は僕も拙作ですが作りたてホヤホヤなんですよ
WINじゃなくてLINUXなのがネックですけど
ttp://logic777.web.fc2.com/
>>「唯一解が出る」「人類が解ける程度の難易度」であることは
このへんはクリアできると思います
□7×7=4□□ [sage] 2014/03/30(日) 15:03:21.05:CCfUd+js

なんだ、既に出来たドット絵を変換したいんじゃないのかよ……
□7×7=4□□ [sage] 2014/03/30(日) 15:20:42.28:CCfUd+js
WineでLogiNekoとか走らんの? 試したことはないから正確には分からんが……
と言うか試しにDLしてみたがファイル数多すぎワロタw
ソースも67ファイルある&中身がマジックナンバーだらけだから解析するのが大変でござるorz
nekoppy3 [] 2014/03/30(日) 15:33:23.97:YHvZ1lnh
DLありがとうございます!
メインのプログラムは、白黒解析がm246j.c
白黒データファイルがmno(解析はそんなに難しくないはず)
bmm.cがランチャーです
Wineとか多分無理&マシンが非力と思います
忍法帖【Lv=3,xxxP】(4+0:8) nekoppy3 [sage] 2014/03/30(日) 16:05:28.80:YHvZ1lnh
test
□7×7=4□□ [sage] 2014/03/30(日) 16:13:04.61:CCfUd+js

ところでソッチの環境ってC++もコンパイルできる?
ちょっとC++で*.mnoを解析するプログラム書いてみようかと思うんだが
忍法帖【Lv=3,xxxP】(5+0:8) nekoppy3 [sage] 2014/03/30(日) 16:20:35.74:YHvZ1lnh
gccですけど。WINは昔パソコンが壊れて今DynabookAZ(CPU=ARM)です
m246j.cのなかにvoid mno_open1()見たら解析できると思います
そろそろ帰らなくちゃ。家ではネット環境がないもので・・・
608 [sage] 2014/03/31(月) 03:41:24.92:Nk5O2XwR

遅くなったがとりあえず完成。標準入力からファイル名を読ませるだけの簡単仕様だよ!
まあ最適化はまだしてないから遅いけど、全部C++だから覚悟してね!
ttp://http://codepad.org/aOQa0tXh

ちなみに開発環境はVS2013、64ビットコンパイルして実行。i5-3210M・シングルスレッドで121118C.mnoを
29.001ミリ秒で解く程度の能力がある感じ。これってやっぱり遅いのかな?
……ところで、なんでコメントでの説明では数字区切りがカンマなのに実際のファイルはピリオド区切りなんですかね(憤慨)
nekoppy3 [] 2014/03/31(月) 09:30:55.75:ucZ9HIZE
いろいろとありがとうございます。でもうちVisual C++とか
入れられないです。
16年前PC-9821で作ってころはカンマでやってて、ここ3年間で
再開したときに外付けテンキーボードがピリオドだったため
if(ch==','||ch=='.')とすれば回避できます。スマソ

昨晩、親父のネットブック借りてx86のatom1.6Ghzで前もって作って
おいたmno->lgdコンバーターでloginekoさんとの比較してみた

131313A.mno〜131313G.mnoまで70x180のサイズが僕のやつは30〜50秒
loginekoさんは0.3〜0.8秒違いすぎる

mno->lgdコンバーター(log2.cの方がloginekoさん
          ;log1.cはロジック・アーティストさん)

ttp://logic777.web.fc2.com/logineko_conv.zip
nekoppy3 [] 2014/03/31(月) 09:38:11.27:ucZ9HIZE
while(getline(csvin, BoardNumberString, ',')||getline(csvin, BoardNumberString, '.')){
でうまくいくかな?
nekoppy3 [] 2014/03/31(月) 15:19:15.94:ucZ9HIZE
codepad.orgのソース貰いました
家帰ってbcc5.5で試してみます
Visual C++ 6.0 もう捨てたかも知れんね3万円も、したのに
最近のVS環境はネットひいてないとインストールできなかったと思う
□7×7=4□□ [sage] 2014/03/31(月) 15:25:36.31:6P2KJ11s
よろしい。ならば戦争だ!
□7×7=4□□ [sage] 2014/03/31(月) 15:32:34.04:Nk5O2XwR

・今時ネット環境はあった方が便利だと思われ(やっぱり無いと不便)

・今時Borland C++ Compiler 5.5は「古い」(規格準拠的な意味で)
ttp://http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10119943595

・いまどきのVSは無料(ネットからDLする形)。iso形式ならネットワーク無しなPCでも
 インストールできる(isoファイルを別途ダウンロード→CDかDVDに焼く→インストール)
 から、そちらを使ってみては?
参考:ttp://http://homepage2.nifty.com/nonnon/Chinamini/20110001/20110308.html
    ttp://http://www.microsoft.com/ja-jp/download/details.aspx?id=40787
・ただしVSは世代によって使えるVerが違うから注意。そちらの開発OS(Windowsの)は
 知らないが、VS2012以降はWin2008ServerR2・Win7以降でしか使えない。
 要するに古いOSならVS2010が限界なはず。
 (ちなみにVC++6.0はVista以降では使えない)
参考:ttp://https://www.microsoft.com/ja-jp/dev/support/tools.aspx

・そもそもgcc使えるんならg++でC++のコードをコンパイルできるんじゃね?
 しかも今は規格準拠度が高いClangがあるじゃん……
参考:ttp://http://kaworu.jpn.org/cpp/g++
    ttp://http://ja.wikipedia.org/wiki/Clang
    ttp://http://katze.hatenablog.jp/entry/2014/01/07/180330

の改良版はもうちょっと待っててね
nekoppy3 [] 2014/03/31(月) 15:41:57.56:ucZ9HIZE


ネットブックのOSはXPです
そうですよね。g++使ったことないけど試してみます。manとかしたり
ここのネット環境でいろいろ調べてみます
参考URLありがとうございます!
□7×7=4□□ [sage] 2014/03/31(月) 15:58:07.68:Nk5O2XwR

ふと思ったんだけど大学とかでネットしてんの?それともネットカフェ?
nekoppy3 [] 2014/04/01(火) 09:29:01.07:oUarTq9F
統合失調症、患って病院の施設からですわ。あんまりいいたくないが
はうまくいかない

while(getline(csvin, BoardNumberString, '.')){
で。mno問題のほとんどがピリオドでカンマはめったにないです
getline関数はcsvinを一度読みこむと次の読み込み位置に移動するみたい

Linux mint 14, atom1.6GHz NECのネットブック((デュアルブートでwin XP))

$ g++ -o solver solver.cpp -std=c++11 -O2 -lGL
でいけました

121118B.mno 30x30 クリリン 1145674ms
121118C.mno 30x30 ロイ・マスタング 147112ms
121118D.mno 30x30 スニフ  193859ms
121118E.mno 30x30 ねずみ男 965241ms
go46.mno 25x25 マジンガーZ ,を.に置き換えが必要 464685ms
120718A.mno 40x35 トトロ 3分間放置
110814A.mno 70x80 屋台 3分間放置
110818H.mno 50x50 犬はりこ 3分間放置
110529b.mno 40x45 オフロードバイク 3分間放置
110614a.mno 20x20 イチゴのショートケーキ 37792ms

40x40のあたりが壁のようですね。僕も最初のころはこのへんが壁でした
□7×7=4□□ [sage] 2014/04/01(火) 13:02:56.15:u6x0ibnd

micro second(マイクロ秒)をms(ミリ秒)と間違えてないですかねそれ……?
確かに大きな問題になるとキツいので改良は必須でしょう。頑張ってみます
nekoppy3 [] 2014/04/01(火) 13:15:48.74:VHK9GASv
すいません。間違えてます
□7×7=4□□ [sage] 2014/04/01(火) 19:47:32.58:Ax4BZSaG
ttp://www.pro.or.jp/~fuji/puzzlestudy/HashioKakero.C
このコードをJAVAに移植しようと考えている。
C言語もJAVA言語も全くのド素人初心者なのですが、
特に、private void LinkBridge( void ) で何を行っているのか意味不明です。

元もg++でコンパイルできないしw
□7×7=4□□ [sage] 2014/04/01(火) 22:07:51.30:u6x0ibnd

>C言語もJAVA言語も全くのド素人
じゃあなんで移植しようとしたんだよ……
>g++でコンパイルできない
なにそれkwsk
と言うかコメントに偽りありじゃん……ありじゃん……
□7×7=4□□ [sage] 2014/04/01(火) 22:20:48.90:Ax4BZSaG
コード何となく分かったかも。
何だろう C/C++ が出来る気がしない。次に早そうなのがJAVAだからw
拾ってきたコードの C/C++ エラー率が高い。意味が分からないから直せない。の悪循環

時代はJAVAですよね。
□7×7=4□□ [sage] 2014/04/01(火) 22:23:31.01:u6x0ibnd

それは流石に甘えというもの
と言うか本気で動かしたいならエラーでググるぐらいするだろと
□7×7=4□□ [sage] 2014/04/01(火) 22:41:14.20:Ax4BZSaG
C/C++の根本的な所が理解できていない感じ。
いろいろやってみたけど、JAVA、Ruby、Python、Perl、D、とかは何となく動いたw
□7×7=4□□ [sage] 2014/04/01(火) 22:52:22.84:u6x0ibnd

まあリンク先のは拡張子が.cなクセに思いっきりC++の文法で書いてるしね……
(しかもC++なのに「iostream.h」等と書いている。これは時代のせい?)
void HashioKakero::LinkBridge( void )は日本語にすると
「HashioKakeroクラスの、外部からアクセスできない引数・返り値なしの関数」
なんだが、JavaもC++も分からんかったらちんぷんかんぷんだろうなw
その状態じゃ、移植どころか読み解くことすら無理だから、
先に入門書買うか入門サイト読むとかして勉強するべきかと

ちなみにHashioKakero.Cだけじゃ当然動かないよ。書いてあるとおりHashioKakero.hも必要
(そもそも#includeすら分からないって、本気でC言語も勉強してないんだな……)
□7×7=4□□ [sage] 2014/04/01(火) 23:07:17.90:Ax4BZSaG
いやクラスじゃ無くて中身の配列のポインタが意味不明だったw
ポインタが怪しいのにポインタのポインタは・・・・。
どっちが行でどっちが列なのかが。

iostream.h iostream <> ”” は、確かに違いがわからない。
□7×7=4□□ [sage] 2014/04/02(水) 00:18:28.29:3dVQfSMt
2001年のプログラムだし古いから自分で新しく作ったら?
□7×7=4□□ [sage] 2014/04/02(水) 00:35:48.95:JJm9rTT9
ゼロからアルゴリズムを作る能力が無い。
そこで移植ですよ。ネットで構文検索しながらJAVAに移していく。
動かなくても移し終わる頃にはパズルの考え方が理解できて他にも応用が利くはず!

動かないけどw
□7×7=4□□ [sage] 2014/04/02(水) 00:45:18.85:Ib6kHOs8

言語に関する知識が足りないのに移植とかテラワロスwwww
□7×7=4□□ [sage] 2014/04/02(水) 06:28:10.43:lat9MqxM

大文字の.CはC++だし.hは時代のせい


ところでそのコード使っていいの?
著作権表示だけがある状態だから原則上は使えない
その人の会社はパズルのアルゴリズムに関して特許取ったらしいし
この分野に関わる人は見てはいけないものかもしれない
ttp://http://puzzle.gr.jp/show/Japanese/Event/2007AkibaPress
□7×7=4□□ [sage] 2014/04/02(水) 10:57:27.09:Ib6kHOs8

1から作れば移植する必要はないよ!やったね
□7×7=4□□ [sage] 2014/04/02(水) 11:24:48.00:JVVedOFT
HashioKakero.Cざっと見たけど、HTMLとJavaScriptでよくね?
tableとonClickでやるどこかに似たようなGUIのやつあったべ。
あえてJava使ってそのうちAndroidアプリにしたいとかならあえて止めないけど
□7×7=4□□ [sage] 2014/04/02(水) 13:27:36.05:Ib6kHOs8
暫定的な修正版。別のページを参考にしたらあっさりできた(もちろん改良予定
608 [sage] 2014/04/02(水) 13:28:56.40:Ib6kHOs8
はミス。。。

暫定的な修正版。別のページを参考にしたらあっさりできた(もちろん改良予定)。背理法最強伝説
ttp://http://codepad.org/RYBb423Y

参考:ttp://http://infosys.sys.i.kyoto-u.ac.jp/~ken3/IL/index.html
nekoppy3 [] 2014/04/03(木) 13:01:59.39:dVN0oEmN


病院来るときは、DynabookAZです
Dynabook AZ (ARM Tegra250 1.0Ghz, Lubuntu13.04)

マイクロ秒は「us」と表記していいみたい
24,689,813usと書いていれば24秒と見えるようわかりやすく書きます

               Ver.1(), Ver.2()
121118B.mno 30x30 クリリン  2,005,498us, 6,549,043us
121118C.mno 30x30 ロイ・マスタング 218,733us, 1,364,396us
121118D.mno 30x30 スニフ   381,746us, 2,490,666us
121118E.mno 30x30 ねずみ男  1,637,525us, 6,814,192us
go46.mno 25x25 マジンガーZ ,を.に 813,404us, 3,088,609us
120718A.mno 40x35 トトロ  計測せず, 24,689,813us
110814A.mno 70x80 屋台   計測せず、計測せず、長くなる?
110818H.mno 50x50 犬はりこ 計測せず、計測せず、長くなる?
110529b.mno 40x45 オフロードバイク 計測せず、2033,137,185us(34分)
110614a.mno 20x20 イチゴのショートケーキ 125,230us, 353,486us
110612a.mno 40x40 あをによし奈良 10分放置、233,249,645us(4分)

のソース見て、今までc++書いたことないけど、見よう見まねで
いじくってみようと思う
608 [sage] 2014/04/03(木) 13:20:20.72:hHK3WeAE
をちょっと改良しただけで大幅に速度アップ!
ttp://http://www2.ocn.ne.jp/~minui/illulogi/index.htmlを書いた
apostata氏(?)に差し入れしたいレベル。
ttp://http://codepad.org/qTPWXDa7

速度計測結果:
問題         サイズ マイクロ秒
121118B.mno.   30x30  13,000
121118C.mno.    30x30  7,000
121118D.mno.   30x30  10,000
121118E.mno     30x30  16,000
go46.mno.      25x25  29,001
120718A.mno.   40x35  21,001
110814A.mno.   70x80  555,031
110818H.mno.   50x50  587,033
110529b.mno    40x45  113,006
110614a.mno    20x20  2,000
110612a.mno    40x40  37,002
□7×7=4□□ [sage] 2014/04/03(木) 13:29:30.38:mYeSDT8y
精神って単語と、クリリン・ねずみ男って単語で咄嗟に「ヤバイ」と信号が出た。

問題の絵の名前か・・・と思い至ったときホッっとした。
nekoppy3 [] 2014/04/03(木) 13:31:34.26:dVN0oEmN
 おおお〜、すげー
今からソース貰って試してみますわ。ありがとう!
608 [sage] 2014/04/03(木) 13:46:18.41:hHK3WeAE
おお、今試したら120918A.mno(「イタリア・ゴンドラ.2490sec」、175x110)ですら
38,949,227[us]で解いたぞ……メモ化の威力が凄すぎる
nekoppy3 [] 2014/04/03(木) 14:47:33.15:dVN0oEmN
Dynabook AZ (ARM Tegra250 1.0Ghz, Lubuntu13.04)

70x180サイズに挑戦

さんの Ver.3

131313A.mno 39.48秒 スキューバ・ダイビング
131313B.mno 6.92秒 花火大会
131313C.mno 49.06秒 ガリバー旅行記
131313D.mno 82.31秒 ロミオとジュリエット
131313E.mno 82.75秒 赤毛のアン
131313F.mno 74.67秒 ハロウィン
131313G.mno 151.08秒 アダムの創造

僕のnekoppy3のmx46j(ARM)

131313A.mno 31.08秒 スキューバ・ダイビング
131313B.mno 19.02秒 花火大会
131313C.mno 27.96秒 ガリバー旅行記
131313D.mno 35.65秒 ロミオとジュリエット
131313E.mno 43.66秒 赤毛のアン
131313F.mno 44.82秒 ハロウィン
131313G.mno 41.53秒 アダムの創造

もう、ガブリ4つじゃん
Cacheに相当する変数、僕も入れているはずなんだけど
C++って速いんだな〜驚愕する
□7×7=4□□ [sage] 2014/04/03(木) 18:03:11.96:mYeSDT8y
よく見るHP
ttp://www.ic-net.or.jp/home/takaken/nt/logic/index.html

ここのは古い感じなの?
608 [sage] 2014/04/03(木) 19:00:28.95:hHK3WeAE

>C++
まあC++使うのは趣味も半分ですけどねw
カプセル化とかに慣れれば(C言語よりは)良い言語ですよ……

そうでもないと思いますよ。ぶっちゃけググって上の方に出ていたページを
参考にしただけですからw

 私が使ったアルゴリズムは普通に背理法で、
「列または行毎に、『あるマスが■だとして矛盾が出れば×。あるマスが×だとして
矛盾が出れば■。そうでない時は放置』として確定させる」というものです。
 矛盾の判定は、「ヒント数字の置き方が1通りでも存在すればOK」といった感じなので、
そこだけより良いアルゴリズムに差し替えても構わない仕様になっています。
 ttp://http://www2.ocn.ne.jp/~minui/illulogi/index.htmlの場合、その判定を
キャッシュ(メモ化)によって大幅に高速化しています。これがカラーイラストロジックに
使えるかまでは分かりませんが、スマートな発想だと言えます。
608 [sage] 2014/04/03(木) 19:02:04.56:hHK3WeAE
そう言えば、まだバックトラックは組み込んでなかったな……
(そうしないと超難問に対応できないと思われる)
□7×7=4□□ [sage] 2014/04/03(木) 22:03:56.34:JSptBqJj
更に人間が解くみたいに「更新があったマスを含む行列を優先的に見る」ということができればもっと速くなりそう
nekoppy3 [] 2014/04/04(金) 09:37:21.00:Jil5ruml


>>更に人間が解くみたいに「更新があったマスを含む行列を優先的に見る」
それ必須と(出来れば、過去の行列の時間測定から速い順で行列を行う)

ある行が10こヒントデータがあるとして
1〜3番目と8〜10番目が既に確定している場合
4〜7番目のみ調べるようにする

僕のは実装してますけど608さんのは、まだまだ速くなりますよ
□7×7=4□□ [sage] 2014/04/04(金) 12:23:03.83:L1Omg7V6
確定探索で、(sum数字0〜数字n)+(n-1)==問題幅or高さ。なら確定。
ってのは無駄な計算かな?

手作業で解くときはよく使うけど。
nekoppy3 [] 2014/04/04(金) 12:38:01.27:Jil5ruml
の言いたいことに追随して、


@:黒
x:白
_:未確定で

12345678901234567890
xx__@__xxxxxx

のときに3〜7まで4つ入るって分かってたら

12345678901234567890
xx_@@@_xxxxxx

なんてのを実装すれば速くなりますよ
nekoppy3 [] 2014/04/04(金) 14:03:52.96:CJ0nuyf4
「イラストロジック 演繹法」でググって
トップに出てくるサイトの
「Section 4 存在仮定法」っていうの僕のには実装していないから遅いのかも。
演繹法は、やっています。
608 [sage] 2014/04/04(金) 19:45:47.96:tjf+RAbm
ふと思ったんだが、背理法って演繹じゃないのだろうか……?

皆さんの意見も参考にして、とりあえず組み直してみますね。
ちなみに私、イラストロジックの問題ファイルを相互変換する
ソフトを作ったことがあったりしますw
ttp://http://www.vector.co.jp/soft/win95/game/se497399.html
608 [sage] 2014/04/04(金) 19:51:54.99:tjf+RAbm
:::::::::::.: .:. . ∧_∧ . . . .: ::::::::   ごめんなさい間違えました……
:::::::: :.: . . /彡ミ゛ヽ;)ヽ、. ::: : ::  で既に書いてあるのに宣伝がましくてごめんなさい
::::::: :.: . . / :::/:: ヽ、ヽ、i . .:: :.: ::: 言い訳ついでに書くと、アレを作った時はパズルを解く方がメイン
 ̄ ̄ ̄(_,ノ  ̄ ̄ヽ、_ノ ̄    でして、幾つかソフトがあるのに互換が効かないのに戸惑った
                   から作ったという経緯があります。一番面倒だったのはLogiNeko形式で、
目一杯容量を削った代償にチョー複雑なファイルフォーマットに四苦八苦しながら開発しました。
そのかいあって、画像インポート機能がないLogiNeko相手にも、こいつを噛ますことで擬似的に
画像インポートさせることができるんですよエッヘン、というのがささやかな自慢です。
まあ勝手に作ったソフトなので各ソフト作者からは連絡も何もありませんが、ちょっと寂しい気もしますね。
608 [sage] 2014/04/05(土) 03:20:34.61:tAL4hRcK
当面の目標。今の自分のコードじゃ完全には解けない強敵。つまりバックトラックしないと無理……
ttp://http://codepad.org/ZC3MxCc9 (注:mno形式)

注:元データは、昔某所に貼られていた問題をテキスト化したものです。
--------------------------------------------------------------------------------
【けいおん!】田井中律は目指せハッピー100%【ドラム】
ttp://changi.5ch.net/test/read.cgi/anichara2/1254827509/">ttp://changi.2ch.net/test/read.cgi/anichara2/1254827509/

38 :名無しさん@お腹いっぱい。:2009/10/06(火) 20:31:45 ID:2Pg/phyn
ttp://nagamochi.info/src/up39860.jpg


解答
ttp://nagamochi.info/src/up39861.jpg

49 :名無しさん@お腹いっぱい。:2009/10/06(火) 20:37:07 ID:2Pg/phyn

プログラム作って唯一解であることを確認済みです

難易度は上級です(いわゆる上級テクニックが必要)
--------------------------------------------------------------------------------
ttp://http://www.syu-ta.com/blog/2009/10/07/015131.shtml
(ttp://http://web.archive.org/web/20130426174102/http://www.syu-ta.com/blog/2009/10/07/015131.shtml)
問題画像:ttp://i.imgur.com/KepEOB8.jpg
正解画像:ttp://i.imgur.com/IEIA0RH.jpg
608 [sage] 2014/04/05(土) 03:25:02.79:tAL4hRcK
そう言えばこんなの見つけました。データは案の定biglogic_j140330a.zipに入ってましたが(grepして発見)
ttp://http://plaza.rakuten.co.jp/nekoppy3/diary/201208100000/
□7×7=4□□ [sage] 2014/04/05(土) 06:36:27.56:Et8rMr1/
組み合わせ爆発お姉さんを助けるアルゴリズム。とか
中学生がスパコンで魔方陣を解いたアルゴリズム。とか

中身を見ても居ないし想像もつかないけどワクワクするね。
□7×7=4□□ [sage] 2014/04/05(土) 11:42:17.81:tAL4hRcK

>中身を見ても居ないし想像もつかない
いや見ろよ

前者のJavaコード付き解説:
ttp://http://d.hatena.ne.jp/nowokay/20120911
ttp://http://d.hatena.ne.jp/nowokay/20121015#1350267331
ttp://http://d.hatena.ne.jp/nowokay/20121016#1350351212
ttp://http://d.hatena.ne.jp/nowokay/20121017#1350435805
ttp://http://d.hatena.ne.jp/nowokay/20121018#1350528607
ttp://http://d.hatena.ne.jp/nowokay/20121019#1350607290

後者の解説:
ttp://http://pc.watch.impress.co.jp/docs/news/yajiuma/20140303_637771.html
ttp://http://www.ccs.tsukuba.ac.jp/pr/media/140228_press
□7×7=4□□ [sage] 2014/04/05(土) 20:20:11.58:pZfHc8Ht

それ作った本人参上
大まかに説明すると、解き方は大きく3段階に分けられて
まずは1段階だけで解き、完成しなかったら次の段階へ行く
3段階で解けなければ不成立か重解
どの段階まで使ったかを見れば難易度も分かる

GUIの部分が今の自分の環境では動かないから試せないけど、10秒程度で解けてた
あとカラーロジックにも対応している
□7×7=4□□ [sage] 2014/04/05(土) 20:58:35.23:tAL4hRcK

>それ作った本人
      _人人人人人人人人人人人人人人_
        >    な なんだってー!!    <
        ̄^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄
        _,,.-‐-..,,_       _,,..--v--..,_
    /     `''.v'ν Σ´        `、_,.-'""`´""ヽ
    i'   / ̄""''--i 7   | ,.イi,i,i,、 、,、 Σ          ヽ
.     !ヘ /‐- 、u.   |'     |ノ-、 ' ` `,_` | /i'i^iヘ、 ,、、   |
    |'' !゙ i.oニ'ー'〈ュニ!     iiヽ~oj.`'<_o.7 !'.__ ' ' ``_,,....、 .|
.   ,`| u       ..ゝ!     ‖  .j     (} 'o〉 `''o'ヽ |',`i
_,,..-<:::::\   (二> /      !  _`-っ  / |  7   ̄ u |i'/
. |、 \:::::\ '' /        \ '' /〃.ヽ `''⊃  , 'v>、
 !、\  \. , ̄        γ/| ̄ 〃   \二-‐' //`

……キャラ物作る時はとにかく目の部分がキツいんですがコツはありますかね?
最近作ったもの1:
 ttp://i.imgur.com/11pOciw.jpg(元絵)
 ttp://i.imgur.com/fhWpz5E.png(問題)
 ttp://i.imgur.com/F71MutP.png(解答)
最近作ったもの2:
 ttp://i.imgur.com/rMqisle.jpg(元絵)
 ttp://i.imgur.com/eQRDIWB.png(問題)
 ttp://i.imgur.com/vOp1hgq.png(解答)
nekoppy3 [] 2014/04/06(日) 12:06:26.30:9vH5DfYq
存在仮定法、まだうまくいってない
理論をちゃんと理解してないのか

Dynabook AZ (ARM Tegra250 1.0Ghz, Lubuntu13.04)

田井中律 100x100 ()

僕の mx46j 14.99秒 だけどお腹のあたりが未確定で解けない
さんのVer.3 5.30秒 だけどお腹のあたりが未確定で解けない

けいおん 60x100 120819E.mno

僕の mx46j 11.11秒
さんのVer.3 8.60秒



110x175サイズに挑戦(学研のロジックパラダイス・年末年始に解く問題)

僕のmx46j(2014年3月30日版)

120810A.mno 38.77秒 ナポレオンと馬
120918A.mno 81.29秒 イタリア・ゴンドラ(僕のは今82秒で解けます)
121227A.mno 82.99秒 スペイン
121228A.mno 106.26秒 カブキ・5人か?
131226P.mno 77.53秒 阿吽
131227A.mno 41.59秒 ドガのエトワール

さんの Ver.3

120810A.mno 100.19秒 ナポレオンと馬
120918A.mno 218.33秒 イタリア・ゴンドラ
121227A.mno 326.38秒 スペイン
121228A.mno 487.05秒 カブキ・5人か?
131226P.mno 292.37秒 阿吽
131227A.mno 42.51秒 ドガのエトワール

Ver.3 は背理法を白から始めているせいか
白っぽい絵は解くのが早いけど
黒っぽい絵は遅い傾向があるんじゃないかと思う
□7×7=4□□ [sage] 2014/04/07(月) 02:47:08.30:al1atFq6
やったー! 大幅な高速化に成功したよー!
ttp://http://codepad.org/4OeSJgsI

機種:ASUS K55VD-SX3210B
OS:Windows 7 Ultimate 64bit
その他:メモリは8GBまで増量

問題           旧版[us]   新板[us]  倍率
110529b.mno      98,005.    30,001.   3.3
110612a.mno      36,002.    15,000.   2.4
110614a.mno      4,000     1,000    4.0
110814A.mno.     494,028   136,007  3.6
110818H.mno.     581,033   122,007  4.8
120718A.mno.     24,001.    7,000    3.4
121118B.mno.     19,001.    8,000    2.4
121118C.mno.      8,000     3,000    2.7
121118D.mno.     8,000     4,000    2.0
121118E.mno       15,000.    7,000    2.1
go46.mno           26,001.    10,000.   2.6
131313A.mno.     4,943,282  775,044  6.4
131313B.mno.     810,046   152,008  5.3
131313C.mno.      6,265,358  962,055  6.5
131313D.mno.     10,597,606. 1,739,099 6.1
131313E.mno       10,404,595. 1,610,092 6.5
131313F.mno       9,552,546  1,377,078 6.9
131313G.mno.      18,595,063. 5,253,300 3.5
120810A.mno.     12,370,707. 1,945,111 6.4
120819E.mno       1,187,067  224,012  5.3
20091007k-on01.mno 662,037   167,009  4.0
20091007k-on02.mno 35,002.    17,001.   2.1

バックトラックはまだ実装できません……と言うより、組み込んだら遅すぎて使えませんでしたorz
608 [sage] 2014/04/07(月) 02:54:48.78:al1atFq6
ちなみに、20091007k-on01.mnoはで、20091007k-on02.mnoは次の問題です。
ttp://http://codepad.org/95H0X1Cb (注:mno形式)

注:元データは、昔某所に貼られていた問題をテキスト化したものです。
--------------------------------------------------------------------------------
けいおん!紅茶715杯目
ttp://changi.5ch.net/test/read.cgi/anime2/1264864946/">ttp://changi.2ch.net/test/read.cgi/anime2/1264864946/

24 logic sage 2010/01/31(日) 00:39:52 ID:hFZ5c2QD
 キャラスレが過疎ってるようなのでこっちにうp
 イラストロジック

 ttp://changi.5ch.net/test/read.cgi/anime2/1264935488/">ttp://changi.2ch.net/test/read.cgi/anime2/1264935488/

410 logic sage 2010/01/31(日) 23:55:52 ID:hFZ5c2QD
 問題
 ttp://nagamochi.info/src/up59052.jpg (cache)
--------------------------------------------------------------------------------
ttp://http://www.syu-ta.com/blog/2010/02/01/004724.shtml
(ttp://http://web.archive.org/web/20130426200910/http://www.syu-ta.com/blog/2010/02/01/004724.shtml)
問題画像:ttp://i.imgur.com/fd908c0.jpg
正解画像:ttp://i.imgur.com/uK23uxW.jpg
nekoppy3 [] 2014/04/07(月) 11:15:32.20:4FedLW2H
Dynabook AZ (ARM Tegra250 1.0Ghz, Lubuntu13.04)

(Ver.4)

Ver.4のソース27行23番目
typedef uint16_t uint

uintはg++側で他に定義されているらしく
別の名を名乗れとエラーが出る

typedef uint16_t uintt

と定義し、以下uintをuinttに置き換え
これでコンパイルが通る

問題           [us]
110529b.mno       574,321
110612a.mno       287,072
110614a.mno       32,804
110814A.mno.     1,152,207
110818H.mno.      923,005
120718A.mno.      216,086
121118B.mno.      125,806
121118C.mno.       72,869
121118D.mno.      88,082
121118E.mno        182,625
go46.mno           281,405

ここから、単位は秒です
131313A.mno.      5.922秒
131313B.mno.      1.469秒
131313C.mno.       7.225秒
131313D.mno.     13.580秒
131313E.mno       12.565秒
131313F.mno       10.376秒
131313G.mno.      41.844秒

120810A.mno       14.975秒
120819E.mno        1.654秒
120918A.mno.      35.714秒
121227A.mno       33.163秒
121228A.mno       34.148秒
131226P.mno.      55.084秒
131227A.mno        7.047秒

ここから単位は[us]

20091007k-on01.mno 1,182,964[us] (未確定あり)
20091007k-on02.mno 298,231[us]


の言うバックトラックは、20091007k-on01.mno のような解けない問題に
Ver.4のソースの後にバックトラック・プログラムを追加すればいいと思う
□7×7=4□□ [sage] 2014/04/07(月) 17:40:00.79:pPtpWS31
ソルバーは1秒を切らないと役に立たないってよく聞くよね。
高速化でよく聞くのは、1次元配列化・ビット演算。

何かすごい計算方法が眠って居るんだろうなぁ。
縦・横ときたらナナメ! 上下に分割して! 意味不明
608 [sage] 2014/04/07(月) 19:05:39.10:al1atFq6

ソースのコメントにも書いてますが、下手にCに近くすると(コードを最適化しすぎると)、
デバッグが大変になるので(まだ)やる気はありません。それにこのパズルの場合、
盤面をビット表現すると縦横が65マス以上になった際を考慮するのが面倒くさいということもあります。
また、アルゴリズムの良し悪し(オーダ)>コードの最適化具合(係数)なので、
C++でバッチリ決めた後にボトルネックを最適化しようかと思います。
(あるパズルで)

ところで、ソルバーは1秒云々のソースはどこにあるのでしょうか?
608 [sage] 2014/04/07(月) 21:05:01.88:al1atFq6
に小細工(既に解いた列・行は解かない)を施して微妙に高速化。
平均して2割ぐらいは速くなる、はず
ttp://http://codepad.org/N2UwGvhq
608 [sage] 2014/04/07(月) 23:05:43.87:al1atFq6
バックトラック対応に行き詰まったので、現在は他形式にも対応できるように拡張中です。
とりあえず「イラロジヘルパー」(ttp://http://www6.ocn.ne.jp/~b-lab/txt_lib/)の「*.lgs」形式には対応させました。
□7×7=4□□ [sage] 2014/04/07(月) 23:43:33.72:EaFa2u8s
ソルバーじゃないけど、将棋の対戦ソフトのアルゴリズムが凄かったな
パターン認識みたいなことをやってた
656 [sage] 2014/04/08(火) 21:20:08.78:pQTeMnhP
バックトラック(縦横同時に考える上級テクニック)についてヒントを

あるマスが決定すると他のマスも次々に決定する時、「影響度が高い」と言う
この「影響度」を未決定の各マス毎に計算し、高い順に仮決定していく
影響度の計算式がカギ
608 [sage] 2014/04/09(水) 00:59:55.04:m3a9/KQB
に、拡張子「*.lgs(イラロジヘルパー)」「*.txt(ロジック・ピクチャー)」
「*.lgc(LogicLand)」への対応を追加し、更にバックトラックを試験的に導入しました。
その影響でコマンドライン引数が微妙に仕様変更されましたのでご了承下さい。
(ファイル名のみだとバックトラック無し、ファイル名の後に正数を書くとその段階までバックトラック)
ttp://http://codepad.org/byX1WiQJ


影響度ですか……実装を検討してみます。
608 [sage] 2014/04/09(水) 01:00:45.60:m3a9/KQB
2段階までバックトラックしないと解けない小さな問題があればいいのに……
608 [sage] 2014/04/09(水) 01:12:29.77:m3a9/KQB
あ、には結構痛いバグが見つかりました(LogicLandのファイルを読み込む時のもの)。
修正版を上げておきます。
ttp://http://codepad.org/3PzprA51
nekoppy3 [] 2014/04/09(水) 09:42:28.28:IBSI3Ewd
存在仮定法を使ってC言語で書いたら、今まで作ったものより遅かった
美しいソースじゃないからなのかな〜?
それともC++には高速演算に向いているのか、僕にはわからない世界

でも今まで解けなかった問題が存在仮定法を使うと2問ほど解けた
(2つとも70x180位のサイズで)
nekoppy3 [] 2014/04/09(水) 09:52:26.99:IBSI3Ewd

その2問の問題。「先生たち」と「ポケモン、ジオリジン」

ttp://logic777.web.fc2.com/i/140408a.zip
608 [sage] 2014/04/09(水) 15:39:08.23:m3a9/KQB

相変わらず凄まじいコードだな……
書き方が違いすぎてまるで暗号だぜHAHAHA(別に悪い意味は無い)

さて、のおまけとして、ファイルコンバータを上げておきます。
具体的には、*.mno・*.txt・*.lgc・*.lgsを相互変換できます。お試しあれ
(まあヒント数字以外の盤面情報はlgc形式しか保存できないんですけどね……)
ttp://http://codepad.org/mCPTln3E

ちなみに当方のプログラムはUnicodeを考慮していません……ご了承下さい
608 [sage] 2014/04/09(水) 15:40:27.59:m3a9/KQB
ちなみに、製作中、前回上げたファイルフォーマットに関するメモに
誤りがあることが発覚しました。謹んで訂正いたします。
修正版:ttp://http://codepad.org/cyziWoZX
608 [sage] 2014/04/09(水) 16:47:26.31:m3a9/KQB
・自PCでの測定結果
             130226A.mno 131221C.mno
LogiNeko[s]        3.374       4.821      ※131221C.mnoは録画コマ送り測定
[s]            2.878164  .  2.884165 .  ※バックトラックは使用せず
ロジック・ピクチャー[s] 0.751       0.751      ※録画コマ送り測定


なお、時間計測機能が無いソフトでの測定方法は、
「AmaRecTVで録画(59.94fps)してコマ送り」という原始的なものです。
また、で変換できない形式については、
拙作「イラロジ相互変換」で変換しています。

……なんでこんな時に「イラロジ相互変換」のバグに気づくんだよ畜生め!
自分の昔のコードを呪いたくなるんだぜorz
(訳:全然変換できないようわああん!)
608 [sage] 2014/04/10(木) 02:37:35.43:WB1fGxr1
やったー!
画像から自動的にトレースして検算結果も出せるエディタできたよー!
ttp://i.imgur.com/l01KL4k.jpg

……手動編集機能はまだ付けてない。とりあえず試験的にうp
インターフェースが使いづらいだろうけど今は我慢してくだしあ
(エンターキーで出力画面を画像としてセーブ可能)
ttp://http://www1.axfc.net/u/3219410.zip
nekoppy3 [] 2014/04/10(木) 11:07:41.68:7fl4Jdci
さんの未解決問題
111105A.mno ジーニー
111213E.mno カウボーイ
120318D.mno 佐川急便
120319O.mno 怪物くん
120321G.mno コブラ
120321L.mno 救助犬?
120416T1.mno コンパス
120426D.mno ハガレン
121109A.mno ガンジー

608さんから教えてもらったHPに
京都大学の/~ken3/の図3.3論理積演繹法

あるいは、OCNの/~minui/さんのアルゴリズム解説にある
多項式時間で解く方法の解説の図を参考にして

普通の人が最初に思いつく演繹法を考えたらいいんじゃないかと思う

この演繹法を応用したのが存在仮定法でそこがいきなり出来たので
ぼくもあなたも戸惑ってるような気がする

存在仮定法を少しいじれば普通の演繹法が出来るはず
ぼくも頑張って608さんのプログラムいじって作ってみる

配置成功の時、
初めての場合、CacheX={(1)Unkown,(2)Black,(3)White}を置く
二番目以降は、CacheX={(1)Unkown,(2)BlackにBlack以外が上塗り->Unkown,
(3)WhiteにWhite以外が上塗り->Unknown}

だったと思う。間違えてたらごめん

普通の演繹法の内部で背理法が存在仮定法で
普通の演繹法の外部で背理法を行ったのが僕のやり方でなんとか解いた
(いきあたりばったりで滅茶苦茶だけど強引に解いた)
nekoppy3 [] 2014/04/10(木) 11:11:12.63:7fl4Jdci
Unknownの綴り間違えて恥ずかし
□7×7=4□□ [sage] 2014/04/10(木) 12:05:20.24:TfTOr8Vs
黒マスはヒントで与えられているけど、
白マスも幅・高さ・ヒントからある程度の推定が出来ますよね
白マスの推定ってのは強力な枝狩りにはなりえない?

縦の可能性・横の可能性から接点の可能性を絞るってのは無駄?
nekoppy3 [] 2014/04/10(木) 13:02:13.22:7fl4Jdci


X:白
@:黒
_:未確定で
3〜12の間に@が3つ入るって分かっていたら
この場合わかりやすいよう3つの後は30ことかで30こは3〜12
に入らないものとする

123456789012345
XX___@______XXX


123456789012345
XXx__@__xxxxXXX

小文字のxが新たに入る白マスってわかります



二番目以降は、CacheX={(1)Unkown,(2)BlackにWhiteの上塗り->Unknown,
(3)WhiteにBlackの上塗り->Unknown}

だったか。

演繹の終わりに、1回以上配置成功の場合
CellList=CacheX(ただし、Unknownはコピーせず、BlackとWhiteをコピー)

また間違ってたら、ここに書きこむわ
nekoppy3 [] 2014/04/11(金) 13:28:14.44:XMVD1Svh
うまくいかない。一部を書いておきます
C++初心者でわからん


celllist Check1(CellListSize);
celllist Check2(CellListSize);

HintListPosition[Index] = Position;

(省略)


//再帰
if (Position >= CellListSize) return false;
if (Cache[Index][Position] != 2) return Cache[Index][Position];
bool isPossible = false;
bool SameFlg = false;
bool flgflg = isPutPosition(CellList, HintList, Index, Position, CellListSize);
if(flgflg != false &amp;&amp; Index == HintListSize){
for(uintt k = 0; k < CellListSize; ++k){
Check1[k] = Check2[k] = White;
}
for (uintt j = 0; j < HintListSize; ++j){
for(uintt k = HintListPosition[j]; k < HintListPosition[j] + HintList[j] - 1; ++k){
Check1[k] = Check2[k] = Black;
}
}
for(uintt k = 0; k < CellListSize; ++k){
if(CellList[k] == Black) Check1[k] = Black;
}
for(uintt k = 0; k < CellListSize; ++k){
if(Check1[k] != Check2[k]) SameFlg = true;
}
if(SameFlg == false){
if (FirstFlg == false){
FirstFlg = true;
for (uintt k = 0; k < CellListSize; ++k){
CacheX[k] = Check1[k];
}
}
else{
for (uintt k = 0; k < CellListSize; ++k){
if(CacheX[k] == Black &amp;&amp; Check1[k] == White) CacheX[k]=Unknown;
if(CacheX[k] == White &amp;&amp; Check1[k] == Black) CacheX[k]=Unknown;
}
}
Print3();
}
}
if (flgflg != false){
isPossible = isNormalAvailablePosition(CellList, HintList, Index + 1, Position + HintList[Index] + 1, CellListSize, HintListSize, Cache, Pass, FirstFlg, CacheX, HintListPosition);
}

(省略)
□7×7=4□□ [sage] 2014/04/11(金) 13:37:15.55:Mx+5Rbr5
絵から数値データにするのは簡単なのに、数値から絵にするのは難しい。
いったい絵から数値に変換したときにどんな重要な要素が抜け落ちたんだろう。

あぁ白マスの数か・・・。
nekoppy3 [] 2014/04/11(金) 16:13:44.15:XMVD1Svh
僕のプログラム、gccに-O2のスイッチ付けてなかった
つけると半分の時間で解けるようになった。

もっときれいに書き直そう。自分のやつ
608 [sage] 2014/04/11(金) 19:36:06.35:YRY+QOFm

そりゃどう見たって情報量減ってるからなぁ……

>gccに-O2のスイッチ付けてなかった
!!!?
□7×7=4□□ [sage] 2014/04/13(日) 06:47:06.44:6N8GvIsn
酸素が足りなくて息切れしてたんですね
nekoppy3 [] 2014/04/13(日) 09:10:17.70:SVRq3Rq1
誤解が生じたかもしれないけど、m246j.c(mx46j.c)の方ねそれは
gcc(g++)で-O2をつけるとSSE(x86),NEON(ARM)に最適化するらしい。
mx46j.c(ARM)は速くなったけどm246j.c(x86)は、さほど速くならなかったなあ
【中国電 76.7 %】 川c ’∀´) [sage] 2014/04/13(日) 14:18:32.56:03ZWkzXk

横から申し訳。猫 7(2012)(←tegra3)Ubuntu13.04 で引数の場所を変更
$ gcc -O2 bmm.c -o bmm -lm

ARMLinuxだと高速化出来なかった
-O2付けても付けなくても「妖怪」が55sec程

ずっぱつVAIO(C2DT7250)RAM4GBで引数-O2無しで妖怪27sec
icc(インテルのコンパイラ)で18sec後半
gcc で-O2 (-O3は無くても良かった) の引数付け(18secちょい)
□7×7=4□□ [sage] 2014/04/13(日) 15:15:19.95:fRQEwya2
コンパイルオプションは最後の手段ってばっちゃが言ってた。
608 [sage] 2014/04/13(日) 15:22:21.75:FKEdmCCc

え?リリースビルドって普通-O2にするもんじゃないの?
……まあ、コンパイラによってデフォでの最適化方向は違う()けどね
nekoppy3 [] 2014/04/13(日) 16:17:04.68:SVRq3Rq1
中国電力さん、bmmはランチャーだってば。
メインプログラムがm246j(mx46j)ね。リア友じゃん
【中国電 81.1 %】 [sage] 2014/04/14(月) 08:08:51.08:miyzVE5m

やっぱバレたか
一応、irx86 と irarm とir の引数も変えてますがこれじゃ不味いすか??
【中国電 83.6 %】 [sage] 2014/04/14(月) 08:36:12.78:miyzVE5m

僕は猫さんに怒られながらrenice でプロセス優先度を-20にする時があります
邪道と言われますw
つか、猫さんのあずにゃんで動かしたさんのぷろぐらむ見せて貰ったけど爆速吹いたす
猫さんに書いちゃダメて言われてたけど、約束破って書いちゃったす

木曜日に1人じゃねえとプログラム書けねえつーから早退したす

猫さんが2ちゃんねる書いて楽しそうにしてるからROMるの楽しいす
アンパンマン嫌いです
608 [sage] 2014/04/14(月) 08:52:48.25:vjM+0EfD
==の言っていることが分からないっ……!

それはともかく、の改良版が出来ました
ttp://i.imgur.com/tFXuP8b.jpg
ttp://i.imgur.com/qobsjHo.jpg
動作原理としては、自動トレース→盤面データをdllに送って解析→
結果を元に手動で修正、といったところ
2枚目のように、未確定部分は黄色で表示されるので楽に書けるのが(・∀・)イイネ!!
真面目にVectorに上げる予定なのでここにうpするのは難しいかな……
【中国電 85.0 %】 [sage] 2014/04/14(月) 09:13:11.51:miyzVE5m

おはようございます
サムネ見たら凄すぎふいたす

$ ./irx86
or
$ ./irarm
の初期でbmm or armbmm のlauncherを作り、
その後、ir から必要な.cを沢山引数をつけつつ、ずらーっとコンパイルする仕様なのです

バリバリ猫さんの俺様仕様す
猫さん、プログラムやめるて言ってたけどあずにゃんを無理矢理買わせ。汗

無理矢理開発させている
のはボクです(爆)

>>猫さん
ずっぱ●いわく、SSEはインラインアセンブラで書いた方が速いらしいす
nekoppy3 [] 2014/04/14(月) 09:19:29.91:2cyJDrLQ
Vectorに上がるの楽しみにしています

今日は、 の70x180>一万ドット越えの問題
(biglogicに収録してあるのは60〜70問、未収録は他に10問くらい)
の時間計測したり、
の未解決問題をすんなり解く方法の模索をしようと思っています

中電さん、ウチワ受けする話が多すぎです
バッチファイルのirの中身いじるだけでいいんじゃね?
nekoppy3 [] 2014/04/14(月) 13:44:33.51:2cyJDrLQ
Dynabook AZ (ARM Tegra250 1.0Ghz, Lubuntu13.04)

さんの (Ver.6)とmx46jl.c(ともにスイッチ-O2)

ttp://http://logic777.web.fc2.com/ にある、biglogic_j140330a.zip
に収録してある、1万ドット越えの問題の演算比較

時間単位は[s]    mx46jl    Ver.6

120810A 110x175   26.408   14.438   ナポレオン

120810B 70x180   28.593   5.420   盆踊り

120811A 70x180   28.572   11.918   オリンピック

120811B 180x70   19.285   4.263   スカイツリー

120818C 60x200   41.592   9.343   妖怪

120819D 60x200   29.156   3.347   キャラ8匹

120901A 70x180   25.040   4.170   平等院鳳凰堂

120915A 70x180   34.330   9.264   スイス

120917B 70x180   18.201   7.077   ロンドン

120918A 110x175   43.571   35.507   イタリア

120920A 70x150   20.575   7.544   ぷよぷよ

120922A 150x70   31.138   6.314   銀魂

120924A 70x150   20.409   6.649   ミッション・インポッシブル

120928A 70x150   15.253   8.087   フランス

121001D 60x200   33.268   9.511   海外ドラマ
nekoppy3 [] 2014/04/14(月) 13:59:44.77:2cyJDrLQ
Dynabook AZ (ARM Tegra250 1.0Ghz, Lubuntu13.04)

さんの (Ver.6)とmx46jl.c(ともにスイッチ-O2)

ttp://logic777.web.fc2.com/ にある、biglogic_j140330a.zip
に収録してある、1万ドット越えの問題の演算比較

時間単位は[s]    mx46jl    Ver.6

121003A 70x150   25.639   8.557   スターウォーズ

121007B 70x150   17.590   7.042   牛若丸

121009A 150x70   30.794   5.087   ブレーメンの音楽隊

121011A 70x180   16.502   3.562   ゴールデンゲートブリッジ

121012A 70x180   51.737   11.966   電車

121013A 70x180   23.087   7.336   テキサス

121114F 180x70   29.901   24.537   ミュシャの椿姫

121116A 70x180   19.469   6.428   七五三

121116B 70x180   22.019   8.366   アンコールワット

121118A 70x150   17.008   8.353   赤ずきん

121120A 70x150   35.262   11.383   プリキュア

121120C 70x150   22.830   15.646   海猿

121122A 150x70   17.606   14.375   アメリカ

121122B 70x190   35.198   5.910   オーケストラ

121227A 175x110   43.992   32.652   スペイン

121228A 110x175   51.207   32.916   歌舞伎、5人か?
nekoppy3 [] 2014/04/14(月) 14:35:45.97:2cyJDrLQ
書きこめない?もう書かない方がいいかも?
□7×7=4□□ [sage] 2014/04/14(月) 22:24:38.85:IBypCLJs

昔貼られてたヤツのソースを見つけました。
Simon Tatham's Puzzle Collection
ttp://code.ohloh.net/project?pid=6dCunV7fspU&cid=ZJt1JK_7eXs&fp=299756&mp=&projSelected=true

js版もありましたがコードが2万行もある;; わけわかめ
608 [sage] 2014/04/14(月) 22:31:39.74:vjM+0EfD

流石にjsで2万行とか頭おかしいとしか……
□7×7=4□□ [sage] 2014/04/15(火) 13:54:50.30:qOocNSff
変数が一文字とか連番なんで、
別の言語から自動変換して難読化とかしてあるんですかねw

ニコリのパズルの自動生成・自動解答への夢は遠い・・・
□7×7=4□□ [sage] 2014/04/15(火) 19:25:12.25:eqZg8GQE
自動解答はともかく、自動生成はパズルの良さを判定する必要があるからなー…
□7×7=4□□ [sage] 2014/04/15(火) 22:39:50.67:e/MxJsxa
自動ボツ
nekoppy3 [] 2014/04/16(水) 09:41:16.68:yagBLouI
未解決問題解決できました
20091007k-on01.mno(100x100,田井中律)攻略!

未解決の盤面に(X,Y)=Unknownを見つけ、n1=黒に仮置き背理法()&
n2=白に仮置き背理法()をする

n1,n2の戻り値は0=全部は解けないが矛盾せず、1=矛盾する、2全部解けた

n1=0&&n2=1の場合、黒ですすめる
n1=1&&n2=0の場合、白ですすめる
n1=0&&n2=0の場合、どちらか優先順位を決めて、黒優先のとき、黒を仮置き
して、後々矛盾した場合、白に仮置きする
n1=1&&n2=1の場合、明らかに矛盾、どっちでもよかった所まで戻って反転する

4つかどの背理法でどっちつかず(n1=n2=0)のとき、黒優先で黒から仮置き
4つかど以外の背理法でどっちつかずの(n1=n2=0)とき、白優先で白から仮置き
nekoppy3 [] 2014/04/16(水) 09:52:47.39:yagBLouI
田井中律、背理法トレース

(X,Y)
01:100,100,四つ角、どっちつかず、黒から仮置き

02: 98,100,黒で決定

03: 98,97,白で決定

04: 99,97,どっちつかず、白で仮置き

05:96,95,黒で決定

06:96,100,黒で決定

07:83,100,黒で決定

08:81,100,黒で決定

09:78,100,黒で決定

10:75,100,黒で決定

この後矛盾(n1=n2=1)が生じ、前にどっちつかずだった04:まで戻る

04:99,97,黒で仮置き

05:96,100,白に決定

06:95,100,白に決定

07:94,100,黒に決定

このあと全部解けた

今段取り悪くて1500秒かかるんですけど

双方向リストにして各ノードに盤面コピーして高速化を図りたいと思います
608 [sage] 2014/04/16(水) 09:58:02.28:OO0C8syb

つまりバックトラックは2段階で十分ということか……
ちょっとプログラム見直してくる
nekoppy3 [] 2014/04/16(水) 14:31:26.38:yagBLouI
双方向リストにして各ノードに盤面コピーして高速化を図りたいと思います
作ってみた



111105A.mno ジーニー    6.655[s]
111213E.mno カウボーイ   18.279[s]
120318D.mno 佐川急便    10.383[s]
120319O.mno 怪物くん    20.571[s]
120321G.mno コブラ     5.730[s]
120321L.mno 救助犬?    29.608[s]
120416T1.mno コンパス    3.427[s]
120426D.mno ハガレン    7.964[s]
121109A.mno ガンジー    23.638[s]


田井中律 背理法・トレース

No. (X,Y)

00: 0,0,黒(これはダミー)

01:100,100,どっちでも、黒から

02:99,97,どっちでも、白から

03:96,95,白で決定

04:96,100,どちらも矛盾で02:に戻る


02: 99,97,黒にする

03:96,100,白に決定

04:95,100,白に決定

05:94,100,黒に決定

06:81,100,黒に決定

で解けた。時間は、216秒
□7×7=4□□ [sage] 2014/04/16(水) 19:59:23.98:yRagSnAL
次は10秒目指そうぜ
□7×7=4□□ [sage] 2014/04/17(木) 02:56:43.05:tszemOhm
,701
昔というのは>483かな
そのページに書いてあるけど元がCで他はコンバートみたいよ
jsは見たら ttp://emscripten.org/ 使ってるみたい
nekoppy3 [] 2014/04/17(木) 14:38:37.32:Tepn1/DQ


4つかどの背理法でどっちつかず(n1=n2=0)のとき、黒優先で黒から仮置き
4つかど以外の背理法でどっちつかずの(n1=n2=0)とき、白優先で白から仮置き

訂正

4つかど以外の背理法でどっちつかずの(n1=n2=0)ときも、黒優先で黒から仮置き

田井中律90度回転させて4つ作ったんだけど
全部解析パターンも違うし、解く時間も違う

オリジナル   118秒
左90度回転  266秒
180度回転  262秒
右90度回転  途中で異常になって解けなかった

遅いのを速くするのは、またアイデア絞ってみます

解けない謎を解明したい
名無し [] 2014/04/17(木) 20:17:28.70:AWYKCBFs
柴山万里子は糞先生。氏ね。
nekoppy3 [] 2014/04/18(金) 09:18:09.06:nnU9xAbl
田井中律の90度回転の問題

ttp://logic777.web.fc2.com/i/muzu01.zip

難問データ集(mno)

101a.mno 田井中律オリジナル
101a.i オリジナル・イメージ
101b.mno 田井中律・左90度回転
101b.i イメージ
101c.mno 180度回転
101c.i
101d.mno 右90度回転
101d.i

rot.c イメージを左90度回転するプログラム $ ./rot 101a.i 101b.i

10a01.mno 矢口真里
10a02.mno ジーニー
10a03.mno カウボーイ
10a04.mno 佐川急便
10a05.mno 怪物くん
10a06.mno コブラ
10a07.mno 救助犬?
10a08.mno ミッキーマウス(背理法使わなくても解ける)
10a09.mno フラワー(スカンク)
10a10.mno コンパス
10a11.mno 鋼の錬金術師
10a12.mno ガンジー
nekoppy3 [] 2014/04/18(金) 09:25:47.28:nnU9xAbl


解けない理由(仮説)

誤った盤面(ノード)で(X,Y)=Unknownを見つけ出すから

仮置き背理法で、黒でも白でも大きな変化がない個所を
何回もつかまされると、リカバリーに苦労する

あらかじめ大きな変化があるところを探す

その場所とは、

(1)4つかど

(2)4つかど付近

(3)4つの辺

(4)2択・3択・4択

(5)その他
□7×7=4□□ [sage] 2014/04/18(金) 14:02:34.24:+EYWIPhx
俺が悪かった。ソースを見ても意味が分からない。

初心者がまず手を付けるべきパズルって何ですかね・・・。
608 [sage] 2014/04/18(金) 14:11:36.86:PXHNyPAp

いや、何が悪いのやら……(hissiで見ても他にレスが見当たらない)
>初心者がまず手を付けるべきパズル
自分が解きたいパズルを選べばいいと思うけど、
数独は9×9サイズならゴリ押し(バックトラックのみ)でも解けるから楽といえば楽かな?
□7×7=4□□ [sage] 2014/04/18(金) 14:27:13.90:+EYWIPhx
まずはCUI数独ソルバー・・・やってみようか。
動くという成功体験が大事ですよね。
□7×7=4□□ [sage] 2014/04/18(金) 21:08:24.75:Jyp8Lj+/
ナンバープレース(「数独」は登録商標)をバックトラックでやったら現実的な時間で解けないんじゃ?
ソルバーを作るならそのパズルが得意でないと手こずる
n国同盟とかX-wingとかが上級問題になると必要になってくる
608 [sage] 2014/04/18(金) 21:42:19.50:hDtYtLi5

いや、9x9なら普通に解けるよ。証拠にソースを上げておく(拙いものだが)↓
ttp://http://codepad.org/0sqgRLH3
それより大きくなると手筋必須。ttp://http://www2.tokai.or.jp/deepgreen/shortnotes/numberplace/algorithm.htm
に載ってたEnclosure関数を実装してみた結果がこちら↓
ttp://http://codepad.org/qThGei4K
□7×7=4□□ [sage] 2014/04/19(土) 13:31:45.21:fI34Rd1n
Cパズルプログラミング-再帰編
ttp://karetta.jp/book/cpuzzle-recursion

ここのナンバープレースをJAVAに移植し始めました。
第二段階の問題ファイルの読み込みでつまずいてますw
順番に理解していけば何とかなる・・・何とかなる。
608 [sage] 2014/04/19(土) 13:36:59.58:/NBCQyQ2

ぶっちゃけ知ってるならC言語流に読むよりC++風に読むほうが簡単でミスもない気が……
と言うか9x9前提でコード書いてるなこの人w
□7×7=4□□ [sage] 2014/04/19(土) 19:09:17.98:EyU0dVVm
再帰を説明することが目的だからな
ナンバープレースを解くことが目的なら
・サイズが9×9以外
・ブロックの形が正方形でない
・1〜9の数字が1つずつ入るマスの組が他にもある(対角線など)
がよくあるから、それに対応させないことにしても拡張しやすいように作る
608 [sage] 2014/04/19(土) 20:43:31.24:/NBCQyQ2

>ブロックの形が正方形でない
これを実現するために、ナンプレ自動生成エンジンでは
「マスの集合」を定義して認識する実装だと知った時は感心したものだ……
(つまり普通の数独では縦横ブロック合計27通りの集合、対角線も加えると29通り、
変形ブロックやカラー付きの場合はそれぞれに応じて定義可能)
片山博文MZ ◆T6xkBnTXz7B0 [] 2014/04/20(日) 00:30:56.65:RevNx0tL
「クロスワードギバー」の片山です。バグ混入申し訳ありませんでした。
新しいバージョンをお使い下さい。
ttp://http://katahiromz.web.fc2.com/xword/
片山博文MZ ◆T6xkBnTXz7B0 [] 2014/04/20(日) 00:49:45.37:RevNx0tL
関数のインライン化、constexpr対応、右辺値対応、マルチコア対応…、これ以上の高速化は可能なのか

知恵を貸してくれ
□7×7=4□□ [sage] 2014/04/20(日) 08:35:38.51:ZOT2sJOz
話の横からごめんなさい
イラストロジックの話が興味深くて少し実験していましたが
行き詰まってきたので公開することにしました
ttps://gist.github.com/anonymous/11100710
nekoppy3 [] 2014/04/20(日) 09:14:54.73:IKgqueXq
さん、イラストロジックでサイズが100x100くらいで
もし難問・奇問があれば欲しいです。よろしければください
90度回転させてもバックトラック(あれでも、っていうのかなあ??)
して解けるようになりました

あとはバクが潜んでいるか徹底的に見つけたいところまできました
nekoppy3 [] 2014/04/20(日) 13:26:00.53:IKgqueXq
ソース貰いました。今から見てみます。でもC++はよく知らないので
逆に勉強させてもらいます。

動かせたら、また感想なり述べさせていただきます
nekoppy3 [] 2014/04/20(日) 14:19:22.77:IKgqueXq
さん。御見それいたしました。瞬殺でした。師匠と呼んでもよろしいですか?
僕なんか下っ端ですね
□7×7=4□□ [sage] 2014/04/20(日) 14:57:02.94:7bG/3gud
レベルが高すぎて訳が分からんが、何でも聞いてくれ。
聞き流すから!!!
□7×7=4□□ [sage] 2014/04/20(日) 19:21:26.07:hbYbM0Mc
流すんかい!
nekoppy3 [] 2014/04/21(月) 09:50:30.69:KjuEzmp/
まだソース貰って勉強してないんですが、高速化するのに
面白い方法があります

各ヒントデータに可動領域があって可動領域の開始位置と終了位置を
常に計算させます

長さが10でヒントデータが1,1,1のとき

1234567890
a_b_cd_e_f

1(a-f),1(b-e),1(c-d)が可動領域です

今ヒントデータが3,4で

__20という意味
1122222222223
8901234567890
xxxxx_@_xx___

今ヒントデータが3,4で、可動領域の開始位置が3が(15)
4が(23)となっていると(23)から(25)は3つしか入らないから
開始位置を計算し直して3(23)4(28)と改めます

あと、ヒントデータが3,3,7,3,3,2,2のときは3が4つ7が1つ
2が2つと数えていて、7が唯一で

______abcdefg___
___xxx@@@@@@@xxx___

盤面の真ん中で7こ確定されれば、可動領域の開始位置と終了位置は
狭められます

初期段階では可動領域の開始位置と終了位置は、たいてい
他のヒントデータの開始位置と終了位置はかぶっていますが

どこともかぶらなくなると開始位置と終了位置は一意になります

演繹をするルーチンに開始位置と終了位置を渡すだけでずっと速くなると思います
nekoppy3 [] 2014/04/21(月) 10:10:22.66:KjuEzmp/
1234567890
a_b_cd_e_f

1(a-d),1(b-e),1(c-f)が可動領域です

の間違いですね

m246j.cで唯一の7を探すルーチンはuniqueing()

開始位置sst[]と終了位置eet[]を計算するルーチンは、qcheckt()です
汚いソースですいません。人に見られる前提で書けばよかったな〜
nekoppy3 [] 2014/04/21(月) 11:49:20.59:A6cZqWAn
uniqueing()じゃなくて、uniqt(),uniqy()だった。
念の為、確認してみた
□7×7=4□□ [sage] 2014/04/21(月) 18:41:21.50:2FaE1dv4
方程式に出来たりするんですかね?
マス=??????????

有限で一意なら出来るんでしょうね。意味ないだろうけど
□7×7=4□□ [sage] 2014/04/21(月) 23:11:12.55:HhyGC33B
何の言語が向いてるんだろう
LISPとか良さそうな気がするんだが
725 [sage] 2014/04/22(火) 19:45:45.73:LQvwnui8

いずれは公開するつもりだったのですが
テスト用に問題を回転させるアイデアに驚いて早めました

テスト問題ですがランダムなドット絵を使い始めました
安定的に1秒程度で判別できるのは50×50黒6割で
黒が減ったり問題が大きくなると極端に遅くなります
100×100を10秒以内はまだまだ先のようです

ところでとても速いものをみつけました
ttp://sourceforge.net/projects/jsolver/
ソースが読みづらく説明もなくてアルゴリズムがわからないのが残念です
【中国電 77.3 %】 [sage] 2014/04/22(火) 22:23:07.30:HN2HK1hp

さん
120818C.mno が確か一番時間の掛かる問題であったかと思います
しかし5年前の C2D で1秒切ってますよ
ARM(Nexus 7(2012)) だと3秒ほどで爆速過ぎます
nekoppy3 [] 2014/04/23(水) 12:47:41.73:qTz728eI
ランダムなドット絵、そのアイデアいただきます!
僕もランダムな絵の問題作ってみます
100x100は僕の力では100秒かかります。この辺が限界ですわ、C言語で
C言語よりC++の方が向いてると思います。こういうの
nekoppy3 [] 2014/04/24(木) 09:14:40.23:IGWrBaRM


ランダムなドット絵、裁縫のパッチワークをイメージした
元絵(131313A.mno〜131313N.mno,サイズ180x70)のイメージから
ランダムに20x20の布切れを切り取り、100x100のサイズに貼り合わせる
というもの。布切れはランダムに90度、180度回転している
昨晩、作っていた。問題がほぼ無限に作れます
nekoppy3 [] 2014/04/24(木) 09:26:34.37:IGWrBaRM
100x100のサイズのパッチワーク風の問題のある場所

ttp://logic777.web.fc2.com/i/paw_mno140424a.zip

00001.mnoは1000秒かかりました
00002.mnoはまだ解けていません

n1=n2=0(黒と白の仮置き、どちらでもOKのとき増え方がどちらも
200ドット以下の時、リスト構造を枝刈りしてもうまくいかないです
500ドット以下の時、枝刈りにしてみます
□7×7=4□□ [sage] 2014/04/24(木) 12:33:42.80:2Fm6dbfU
100*100サイズ固定で問題データの復元用の数値って作れないのかな?
データの受け渡しに便利ですよね。
608 [sage] 2014/04/24(木) 14:12:17.67:KtiK3nHw
最近忙しくてコードに手をつけていません……


理屈から言えば、長さがnある部分のヒント数字は
最大n/2個(nが奇数なら(n+1)/2個)必要なので、
100x100固定なら50×100×2=10000個の数字枠が必要になります
charでも10KBは必要ですね
nekoppy3 [] 2014/04/25(金) 10:49:52.66:ziNlGwWg
さんの教えてくれた jsolverで の内容物
00001.mnoから00010.mnoをtxtにコンバートして動かしてみた

$ ./js1 00005 // mno->txt converting, original program
$ ./jsolver -n 2 00005.txt

どれも2秒もかからない
nekoppy3 [] 2014/04/25(金) 11:01:02.97:ziNlGwWg
js1.c のある場所:

ttp://logic777.web.fc2.com/i/js1.zip
nekoppy3 [] 2014/04/25(金) 13:00:46.71:ziNlGwWg
00001.mno トレース

No.   (X,  Y)
 1   1   1 両方OK黒から 黒863ドット白0ドットの増加分
 2   1 100 両方OK黒から 黒1669白1514
 3  98  63 両方OK黒から 黒1634白1629

3は黒でこのまま続けるが、実際はここは白が正解

 4  83 100 白のみ    黒65白2
 5  82 100 黒のみ    黒120白164
 6  79 100 黒のみ    黒164白2
 7  78 100 白のみ    黒69白0
 8  77 100 白のみ    黒47白1
 9  76 100 白のみ    黒41白1
10  75 100 白のみ    黒1220白0
11  74 100 白のみ    黒33白0

Noはこの後11から19まで進むんだけど、No10で疑問に思わなければ
(プログラム的に)1万ドットのうち黒1220ドットも動いているのに
なんで白に決めるんかと。このへんを改良できれば速くなるような気がする
nekoppy3 [] 2014/04/27(日) 10:46:46.95:kJK5Dpla
さんの意見、心に留めておきましょう。今いろいろ忙しいです。
ちょっとゆっくりやってみます
□7×7=4□□ [sage] 2014/04/27(日) 21:55:20.71:mubuiqy6
Cパズルプログラミング-再帰編 > ペントミノ > 盤面の1次元配列化 をJAVAに移植中。
ポインタの++使われるときついわぁw

変換じゃなくて元から1次元配列のデータを持たせた方が楽かな。
動かんけどw
□7×7=4□□ [sage] 2014/04/27(日) 23:38:20.47:ARwYB3LB
Javaなら、Cのポインタ演算をエミュレートするクラスを作っておいて
その中で一次元配列なりなんなり使って実装すればいいんじゃね
608 [sage] 2014/04/28(月) 00:04:30.45:bgeglmxX

本当なら当該言語(今回はJava)に合わせたコードに
書き直せればいいんだけどなぁ……>ポインタの移植云々
俺?Javaはまだ勉強中で……
□7×7=4□□ [] 2014/04/28(月) 09:54:58.52:1coyLXtd
さんの意見で作ってみた

ttp://logic777.web.fc2.com/i/paw_mnx140427.zip

ファイルの中は、mnoファイルと拡張子が.1と.2のファイル
mnxファイル、そしてmnofix.cとmnoprint.cが入っていると思います
.1と.2はイメージファイルで、.1と.2が存在して.3のファイルが存在しない時
.2を読み込みます。このファイルの実装は解析時間が578秒だったとき
578/100+1=6で拡張子が「.6」100秒置きに100秒目で「.1」、200秒目で
「.2」、300秒目で「.3」の拡張子の中断ファイルを作っていた経緯からです。

イメージファイルの書式は、盤面のデータが未確定のとき「_」、
黒は「Q」、白は「x」です。ファイルの中身はその3つと改行とEOFの5つしかありません

mnofix.cはmnoファイルとイメージファイルを読み込んで、
さん用の復元用の数値のファイル.mnxを出力します

mnoファイルで
*Y10
*y001 5
で、イメージファイルが
___QQQQQxx
(未確定が3つ、黒が5つ、白が2つのとき)

mnxファイルでは
*y001 _3,5,x2

というように、数値の前に「_」や「x」が、つきます

例外的に
mnoファイルで
*Y10
*y001 0
のとき、イメージファイルは
xxxxxxxxxx  (白が10こ)になりますが、

mnxファイルでは
*y001 0
となる(?こういう仕様にしたはず、ちょっと自信がない)
いずれにしても、mnxファイルからmnoに、いつでも戻せるように
したかったです

mnoprint.cはmnxを読み込んで、実際に絵が出るかCUIで表示
*yのデータは盤面data[]に
*tのデータは盤面data2[]に
data[]とdata2[]に異常がなければ、未確定は「_」黒は「Q」白は「x」
異常があれば「E」を表示します
□7×7=4□□ [sage] 2014/04/29(火) 00:23:10.46:SKT6Qn4J
>Cのポインタ演算をエミュレートするクラスを作って
なんぞそれw

再帰の引数にポインタ+1しやがって・・・・・・。どうしろとw
□7×7=4□□ [sage] 2014/04/29(火) 13:12:47.54:w7oxn/VC

今更だが自己解決
って2009年かよ!書いたのw
検索すれば出てくるんでリンクはしない…
□7×7=4□□ [sage] 2014/04/30(水) 19:17:50.37:M1dqXkiH

考え方だけ参考にしてプログラムはJavaで書いてあるものを読んでみたら
例えば ttp://oku.edu.mie-u.ac.jp/~okumura/java-algo/ の Tetromino.java
【中国電 74.6 %】 [sage] 2014/05/01(木) 06:23:59.03:cuUObW46
おくぬら先生じゃないか
わろたw
□7×7=4□□ [sage] 2014/05/03(土) 12:38:57.17:FdF1eVCj
リスト構造と検索再帰が理解できれば・・・・。
□7×7=4□□ [sage] 2014/05/18(日) 21:07:39.73:sMCfOBJf
     ___
    /|   |
   ||. 彡⌒ミ|
   ||. (・ω・`| 誰かいる?
   ||oと.  U|
   || |(__)J|
   ||/彡 ̄ ガチャ


   彡 ⌒ ミ ♪
  (( (・ω・` ) 
♪  / ⊂ ) )) ♪
  ((( ヽつ 〈
   (_)^ヽ__)


  ♪  彡⌒ ミ
     (´・ω・彡⌒ ミ
   彡⌒ ミつ(´・ω・`) )) ♪
(( (´・ω・`) ( つ  )
   ( つ  ヽ  とノ  ♪
    〉 とノ )^(_)
   (__ノ⌒(_)

     ___
    /|   |
   || .彡⌒ ミ
   ||. (   )|
   ||oと.   |
   || |(__)J|
   ||/彡 ̄ ガチャ
□7×7=4□□ [] 2014/05/30(金) 09:16:18.37:4WfnTzis
ある知り合いから、virtual host に接続していると書きこめない
(実際書きこめなかった)Jimのやつめ・・・

ミラー:ttp://hello.2ch.net/test/read.cgi/puzzle/1092459010/l50
ここなら書きこめるかテスト
□7×7=4□□ [] 2014/05/30(金) 10:12:17.70:4WfnTzis
githubに貼り付けてみました

内容は、m246k.cで、biglogic_k140430a.zip と変わりませんが一応

ttps://gist.github.com/nekoppy3
□7×7=4□□ [] 2014/08/22(金) 22:28:36.54:ZN257wEY
おながいします

ttp://i.imgur.com/Wv1Fx2u.jpg

1〜16までの数字を一個ずつ入れて
各線上の4つの合計が
いずれも34になるように
□7×7=4□□ [sage] 2014/08/23(土) 01:17:42.20:GVLSUtl/
     13 
  1 2 3 4

  12     5
14         15
  11     6

  10 9 8 7
     16
[1,3,14,16,2,7,9,4,8,13,5,15,6,10,12,11]
□7×7=4□□ [] 2014/08/23(土) 14:57:27.93:+rB8LlQn
au予報言氷雨デモなぜ末端ディレクター戦争指名タイ米粉ステーキ万国ニューヨークブカ牛肉直輸出制限業者議論病院雇用市議しょうゆダシマクッロスさむらいエバコラア山雪光金ガンダム風ミックドラ社員あかうんとパズ豚骨のり野菜炒めラーメン

au予報言氷雨デモなぜ末端ディレクター戦争指名タイ米粉ステーキ万国ニューヨークブカ牛肉直輸出制限業者議論病院雇用市議しょうゆダシマクッロスさむらいエバコラア山雪光金ガンダム風ミックドラ社員あかうんとパズ豚骨のり野菜炒めラーメン

au予報言氷雨デモなぜ末端ディレクター戦争指名タイ米粉ステーキ万国ニューヨークブカ牛肉直輸出制限業者議論病院雇用市議しょうゆダシマクッロスさむらいエバコラア山雪光金ガンダム風ミックドラ社員あかうんとパズ豚骨のり野菜炒めラーメン

ニンニクヤーフォー低原価スマ金土地酒気帯びNHK公的私的支出トウデン教授嘘芸人横浜名古屋遅延電池切れ福岡損保新規駐車近代ゲームシェア回収フジ政権転職提案たれ巫女ラーメン
abk公式審判漏洩安保険王なにあげてんだよ?「わー!ふーう?」↓↓★★↓↓★↓★▼★宿題通調印鑑カウントダウンたまらんだけ労災募金額休日接待ゴルフ議員国会アイスブルームハンバーグ歌舞伎派大学生
片山博文MZ ◆T6xkBnTXz7B0 [] 2014/10/08(水) 13:19:25.58:LjbFvpMJ
Windows用フリーソフト「クロスワード ギバー」
ヒント直接編集機能が付いたよ!!!
ttp://http://katahiromz.web.fc2.com/xword/
片山博文MZ ◆T6xkBnTXz7B0 [] 2014/10/09(木) 15:17:20.90:nfoI1BGW
バグ修正しました。
片山博文MZ ◆T6xkBnTXz7B0 [] 2014/10/18(土) 17:21:02.56:9V3xWvL8
Windows用フリーソフト「クロスワード ギバー」
ver.2.2にバージョンアップしたよ!!!
ttp://http://katahiromz.web.fc2.com/xword/
片山博文MZ次期CEO ◆T6xkBnTXz7B0 [] 2014/11/30(日) 16:43:56.91:RLHclfWA
Windows用ソフト「クロスワード ギバー」
ver.2.4にバージョンアップしたよ!!!
漢字・英語クロスワードも作れるよ!!!
ttp://http://katahiromz.web.fc2.com/xword/
□7×7=4□□ [sage] 2014/12/01(月) 03:54:19.08:q0k/WMwV
     ___
    /|   |
   || .彡⌒ ミ
   ||. (   )|
   ||oと.   |
   || |(__)J|
   ||/彡 ̄ ガチャ
□7×7=4□□ [sage] 2015/04/25(土) 23:51:32.95:AFsw2VHO
ブラウザでペンシルパズルに毛の生えた程度のゲームを作ろうとする。

JAVAアプレット・フラッシュ・html5・・・・

色々選択肢があるのだろうが、無難なのはどれなんだろう。
アホ私大 [] 2016/11/11(金) 10:17:43.00:kBBzMlLV
スケルトンを自動生成するプログラムのヒントをください。
迷路作成アルゴリズムで迷路の直線長さを制限するとよいように思うがうまくゆかない。
□7×7=4□□ [] 2016/11/29(火) 17:41:22.51:ctNNl3EY
29日午前3時半ごろ、
逆走した軽乗用車が大型トラックと衝突。
計3人が死傷した。


認知症の過程は放射能汚染によって加速します。
注意欠陥障害(ADD)多動性障害(ADHD)、
若年性アルツハイマー病の原因となっており、
人々は肺炎やインフルエンザ、慢性疲労、癌、
HIV/エイズなどに抵抗できなくなっています。
免疫システムの崩壊の結果がアレルギーです。
死者の数は、他のいかなる原因よりも多いです。
河川の汚染は犯罪と見られなければなりません。

問題は、日本政府が何も認めないことです。
多くの人々が放射能の影響で死んでいるのに、
彼らは幻想の中に生きています。
日本の近海の食料は安全ではありません。
健康上のリスクは福島に近づくほど高まります。
福島の子供達は癌をもたらす被爆をしています。
福島県民は廃炉後1、2年で戻れるでしょう。

マイト レーヤは原発の閉鎖を助言されます。
マイト レーヤによれば、飛行機など
原子のパターンが妨害されると墜落します。
彼はいかなる人間よりも危険をよくご存じです。
マイト レーヤの唇からますます厳しい
警告と重みが発せられることを覚悟しなさい。

勢い5万以上のスレをメールでお知らせするサービス、実施中!!
憧れボディをGETしたい!その夢、ボニックで!

2ch勢いランキング 全部 1- 最新50 パズル板ランキング

凡例:

レス番

100 (赤) → 2つ以上レスが付いている
100 (紫) → 1つ以上レスが付いている

名前

名無しさん (青) → sage のレス
名無しさん (緑) → age のレス

ID

ID:xxxxxxx (赤) → 発言が3つ以上のID
ID:xxxxxxx (青) → 発言が2つ以上のID

このページは2ch勢いランキングが作成したキャッシュです。元のページはこちら。削除についてはこちら