暇ならさ、話そうぜ
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGhttp://www.transience.com.au/pearl2.html
http://www.transience.com.au/pearl3.html
を解くアルゴリズムをアルゴリズムに関する書物などを読まずに
自分の頭と、実験によって解こう。
作ろうと思ったけど俺は挫折した
参考にならないだろうけど一応ソース同封です。
ttp://dokuo-ha-hitori.dyndns.tv/~dokuo/cgi-bin/zuru/source/dokuo5450.lzh
0002一星 ◆Cppn/.YI3.
NGNG0003( ´ω`) ◆KABA/xqqBI
NGNG0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNG21 名前: Now_loading...774KB 04/01/23 08:44 ID:???
>>8
某所よりコピペ
http://www.transience.com.au/pearl.html
http://www.transience.com.au/pearl2.html
http://www.transience.com.au/pearl3.html
XOR(排他的論理和)を使うということみたいです
XORは簡単に言うと2進数で各桁どうしを足して、合計が奇数なら1、それ以外は0
ということなので、例えば4(100)と5(101)のXORは1(001)ということになります。
同じように1(1)と2(10)と3(11)だと0(00)ということになります。(カッコ内は2進数)
流れとしては・・・
・2進数にする→それぞれのXORをとる→値が0になるようにする→勝ち
例)玉の数が6個と7個と8個の3列の場合
6→2進数にする→110 7→2進数にする→111 8→2進数にする→1000
ここで大事なのは2進数で4桁になるのは8(1000)だけなので、減らすのは8個の
中から、ということになりますね。(4桁目をXORで0にすることが不可能なため)
なのでまず、6と7のXORをとります。
すると1(001)になるので、1とXORで0にするには1、つまり8個の列から7個取れば
いいわけです。このように常に各列のXORが0になるようにしていけば勝てる。
追記
もう1つの注意点としては、多数列の場合の終盤です。
例えば、終盤で4列の玉がそれぞれ1・1・1・2個の場合、単純にXORを0に
しようと思えば、2個の列から1つ取り各列1個ずつとすればXORは0になりますが
負けてしまいます。この場合勝つためには2個を取ることになります。
1個だけの列だけが残る場合、必ず奇数列にするということです。
0006デフォルトの名無しさん
NGNG0007デフォルトの名無しさん
NGNG一番上からライン1〜と呼ぶので
○○○ ライン1
○○○○ ライン2
○○○○○ ライン3
というようになります。
0008デフォルトの名無しさん
NGNG2 = 0010
3 = 0011
4 = 0100
5 = 0101
6 = 0110
7 = 0111
8 = 1000
9 = 1001
10= 1010
11= 1011
12= 1100
13= 1101
14= 1110
15= 1111
0009デフォルトの名無しさん
NGNG3
4
5
だとすると
二進数に変換して
0011
0100
0101
+
0212 となりますので、偶数は0、奇数は1にすると
↓
0010 になるので、このビットを全て0にするように数を減らします。
|
理想
↓
0000
この場合は一番上から二つとると
0011
↓
0001になり
0001
0100
0101 = 0202 → 0000
成功です
0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNG0012デフォルトの名無しさん
NGNG高房の漏れでも作れるが
0013デフォルトの名無しさん
NGNG管理者を脅迫する。
0014マイク ◆yrBrqfF1Ew
NGNGlocal exploit
0015デフォルトの名無しさん
NGNG定番だが藁タ
0016デフォルトの名無しさん
NGNGOS再インストール
■ このスレッドは過去ログ倉庫に格納されています