【プログラム】ライツアウトの解放が理解できない

1以下、名無しにかわりましてVIPがお送りします:2015/12/26(土) 02:18:57.01 ID:SeZLeUS4

解法1←わかる
全25マス、それぞれ2択(押すか押さないか)⇒2^25通りをすべて試す

解法2←???
端5マスのパターンを決める⇒残りのマスのパターンが自動的に決まる⇒2^5通りをすべて試す

残りのマスのパターンが自動的に決まる意味が全然分からんたしゅけて

2以下、名無しにかわりましてVIPがお送りします:2015/12/26(土) 03:11:54.70 ID:ekU60qti

スマンもうちょい説明が無いと容量を得ん

なんとなくだがボタンを押す順番に一定の制御を付けたパターンなんじゃ無いか?
(解法1は(1,1)→(1,2)→(1,3)...の総当たり)

例えば5*5なら5行あるわけだが
「1行目から順番に2行目、3行目とボタンを入力していく。
例えば3行目のボタンを押した後に1,2行目のボタンを押すといった逆戻りは禁止」
ってルールを付け加える(ライツアウトに順番は無関係なので問題なし)

すると、例えば2行目の入力が終了した時点で1行目は全て揃ってないとアカン
(3行目以降の入力は1行目に影響しないからな)

結論として1行目の入力パターンが決まったら2行目の入力は既に決まっている
なぜなら2行目の入力は「1行目の入力で埋まらなかったマスの穴埋めをしないといけないから」
同じ理屈で2行目→3行目,3→4,4→5と入力は全て上の行の穴埋めで一意に決まっていくので
結局全てのパターンが決まる。(5行目の入力でマスが余ったらすなわち解なし)
以上妄想なので合ってるかは知らん

3以下、名無しにかわりましてVIPがお送りします:2015/12/26(土) 03:12:16.85 ID:wesNGvUf

そのままだろ
隣接するマスが点いたり消えたりするのだから端が決まれば全て決まる

41:2015/12/26(土) 08:27:15.70 ID:SeZLeUS4

結論として1行目の入力パターンが決まったら2行目の入力は既に決まっている

1行目の入力で埋まらなかったマスの穴埋めをしないといけない

隣接するマスが点いたり消えたりするのだから端が決まれば全て決まる

なるほど全然わからんwwwwなんでだwwwww

5以下、名無しにかわりましてVIPがお送りします:2015/12/26(土) 09:50:56.78 ID:FJLbQPxP

・ボタンを押す順番は出来上がる点滅パターンに影響しない
・ボタンを二回押すと元に戻るので意味がない

なので各ボタンを押すか押さないかだけ決めていけばいい

まず1行めをでたらめに押す。すると当然手本とは一致しない
1行k列のマスの点滅を変えられるのはその直下のマス(2行k列)だけだから
1行k列のマスの点滅が手本と一致していなければ2行1列は押さなくてはいけない。逆もしかり

これを k=1...5 についてやると 2行めの押す/押さないパターンが確定する
同時に 1行めの点滅具合は手本と一致する

同じように、2行めを手本と一致させるために3行めを押し、3行めを…4行めを手本と一致させるために5行めを押す
6行めは存在しないので 5行めはこの時点ですでに手本と一致しなければいけない

61:2015/12/26(土) 10:17:08.90 ID:SeZLeUS4

・ボタンを押す順番は出来上がる点滅パターンに影響しない
・ボタンを二回押すと元に戻るので意味がない

なので各ボタンを押すか押さないかだけ決めていけばいい

まず1行めをでたらめに押す。すると当然手本とは一致しない

ここまではわかった


1行k列のマスの点滅を変えられるのはその直下のマス(2行k列)だけだから
1行k列のマスの点滅が手本と一致していなければ2行1列は押さなくてはいけない

実際
1 2 3 4 5
1○ ● ● ● ○
2○ ○ ● ○ ○

手本
1 2 3 4 5
1○ ○ ○ ○ ○
2○ ○ ○ ○ ○

この場合は一行三列(1行k列)の点滅を変えるために、二行三列(2行k列)じゃなくて、一行三列を押すことになるんじゃないのかって思って…よくわからん…

7以下、名無しにかわりましてVIPがお送りします:2015/12/26(土) 10:23:36.74 ID:FJLbQPxP

一行三列はもう押すか押さないか決めちゃったので押せない

一行三列が手本と一致しないからといって一行三列をもう一度押す(あるいは押さないと決めてたのに押す)と
別の解と重複しちゃう

81:2015/12/26(土) 10:27:51.90 ID:SeZLeUS4

一行三列はもう押すか押さないか決めちゃったっていうのは、
>>5
まず1行めをでたらめに押す。すると当然手本とは一致しない
っていう部分ですよね?さらに二回以上押すと意味がなくなるのもわかります

でもそもそも1行目をでたらめに押した場合、それは解答としてまちがってるわけだから、また押しなおさなければならないのでは?
つまり、1行目の解答が間違ってれば、二行目以降何しても手本にたどり着けないわけだから、2行め以降の押す/押さないパターンが確定する、とかいう前に、そもそもパターンが存在しないのでは?

91:2015/12/26(土) 10:28:59.23 ID:SeZLeUS4

くそ…なんてひどい日本語だ…すまぬ…

10以下、名無しにかわりましてVIPがお送りします:2015/12/26(土) 10:35:23.10 ID:FJLbQPxP

1行めをでたらめに押し、それが正解だと一旦仮定して、5行めまで行く
その結果手本と一致すれば良し
しなければ1行めの押し方が間違っていた(背理法)ということなので
また別の押し方を試す

1行めのでたらめな押し方は 2^5 なので最大 32 回の試行錯誤で終わる

111:2015/12/26(土) 10:42:23.49 ID:SeZLeUS4

>>10
そうか…間違ってたらやり直せばいいのか…盲点だった…なんとなく間違った答えは出してはいけないみたいな先入観が邪魔をしていたというのか…くそ…助かったぜ…


このスレッドは過去ログです。