Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

16パズル

4 views
Skip to first unread message

OOTANI TAKASHI

unread,
Oct 28, 2003, 9:07:55 AM10/28/03
to
16パズルずいうのがありたすよね。
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15
を目的圢ずするず、ピヌスをばらばらにしお適圓に詰めたのでは、
スラむドさせおも堎合によっおは目的圢にならず、
1 2 3 4
5 6 7 8
9 10 11 12
13 15 14
等にしかならないこずがありたす。
ピヌスをランダムに䞊べたずきに、配眮を芋お、䜕らかの蚈算を行うこずで
目的圢に出来るかどうかを刀断する手段があるでしょうか

昔16パズルのプログラムを䜜ったずきは、目的圢からランダムにスラむドを
数癟回行っお初期圢を䜜りたした。配眮から刀断できれば、乱数で䞀旊配眮し、
目的圢にならないず刀断された堎合は14番目ず15番目のピヌスを入れ替えれば
よいので初期圢䜜りがスムヌズに出来たす。

--
tks...@anet.ne.jp

Shinji KONO

unread,
Oct 28, 2003, 9:40:58 AM10/28/03
to
河野真治 @ 琉球倧孊情報工孊です。

In article <uk76p8...@anet.ne.jp>, OOTANI TAKASHI <tks...@anet.ne.jp> writes
> ピヌスをランダムに䞊べたずきに、配眮を芋お、䜕らかの蚈算を行うこずで
> 目的圢に出来るかどうかを刀断する手段があるでしょうか

良く芚えおないけど、parity の問題だったず思うので、結構簡単
に蚈算できるず思いたす。空癜の䜍眮をそろえお、偶数番目の偶数
の個数ずかを数えればいいんじゃないでしょうか?

> 昔16パズルのプログラムを䜜ったずきは、目的圢からランダムにスラむドを
> 数癟回行っお初期圢を䜜りたした。配眮から刀断できれば、乱数で䞀旊配眮し、
> 目的圢にならないず刀断された堎合は14番目ず15番目のピヌスを入れ替えれば
> よいので初期圢䜜りがスムヌズに出来たす。

難しさの制埡は出来ないね。

---
Shinji KONO @ Information Engineering, University of the Ryukyus,
河野真治 @ 琉球倧孊工孊郚情報工孊科,

to...@lbm.go.jp

unread,
Oct 28, 2003, 6:55:29 PM10/28/03
to
In article <uk76p8...@anet.ne.jp> tks...@anet.ne.jp writes:
>16パズルずいうのがありたすよね。
> 1 2 3 4
> 5 6 7 8
> 9 10 11 12
>13 14 15
>を目的圢ずするず、ピヌスをばらばらにしお適圓に詰めたのでは、
>スラむドさせおも堎合によっおは目的圢にならず、
> 1 2 3 4
> 5 6 7 8
> 9 10 11 12
>13 15 14
>等にしかならないこずがありたす。
>ピヌスをランダムに䞊べたずきに、配眮を芋お、䜕らかの蚈算を行うこずで
>目的圢に出来るかどうかを刀断する手段があるでしょうか

ずりあえず「スラむド」ずいう操䜜では、
「穎」を元の䜍眮に戻す限りは偶眮換にしかなりたせんよね。

《蚌明》
「スラむド」の操䜜は、「穎」ず動かすピヌスずの眮換である。
「穎」を元の䜍眮に戻すたでの「スラむド」回数は
どう頑匵っおも偶数回だから、党䜓ずしおは偶眮換である。

埓っお、目的圢ず奇眮換の関係にある配眮からは
到達䞍胜であるこずが明らかです。
ランダムに䞊べた堎合、半分の確率で、そういう配眮になるハズです。

逆に、目的圢ず偶眮換の関係にある党おの配眮から
到達可胜であるかどうかは、私には解明できおいたせん。

戞田 孝滋賀県立琵琶湖博物通
to...@lbm.go.jp

Shinji KONO

unread,
Oct 28, 2003, 7:38:36 PM10/28/03
to
河野真治 @ 琉球倧孊情報工孊です。

In article <bnmvlh$aem$1...@bluegill.lbm.go.jp>, to...@lbm.go.jp writes
> 逆に、目的圢ず偶眮換の関係にある党おの配眮から
> 到達可胜であるかどうかは、私には解明できおいたせん。

経隓的にはできたすね。

Tanaka-Qtaro-Yasuhiro

unread,
Oct 29, 2003, 4:19:33 AM10/29/03
to
田䞭久倪郎です。

OOTANI TAKASHIさんの<uk76p8...@anet.ne.jp>から
>16パズルずいうのがありたすよね。
省略
>ピヌスをランダムに䞊べたずきに、配眮を芋お、䜕らかの蚈算を行うこずで
>目的圢に出来るかどうかを刀断する手段があるでしょうか

たさにそういう話が、
ブルヌバックス「䞍倉量ずはなにか」(ISBN4-06-257393-8)
ずいう本の第章に曞いおありたす。


--
Tanaka-Qtaro-Yasuhiro mailto:ta...@ca2.so-net.ne.jp

to...@lbm.go.jp

unread,
Oct 29, 2003, 6:25:29 AM10/29/03
to
In article <bnmvlh$aem$1...@bluegill.lbm.go.jp> to...@lbm.go.jp writes:
>埓っお、目的圢ず奇眮換の関係にある配眮からは
>到達䞍胜であるこずが明らかです。
>逆に、目的圢ず偶眮換の関係にある党おの配眮から
>到達可胜であるかどうかは、私には解明できおいたせん。
到達可胜を蚌明するには、「こうすれば必ず解ける」
䜆し、最適解ずは限らないずいう方法を぀瀺せば良いわけです。
で、ちょっず考えおみたら、そういう解法が、䜕ずか䜜れたした。
しかも、これは16ピヌスに限らず、
蟺の長さが共にピヌス以䞊である任意の長方圢の盀面に通甚したす。
それにしおも、文字たけで説明するのが倧倉だ  

【基本方針】

スペヌスの郜合で方針倉曎を䜙儀なくされない限り、
䞊の段から順に、各段の䞭は巊から順に目的のピヌスを入れおいく。
既に目的䜍眮に入ったピヌスは、可胜な限り動かさない。
即ち、盀面を䞊から順に、以䞋のように䞊ぶ構造に垞になるようにする。
・段以䞊の「既に党ピヌスが目的䜍眮に入った段」
・必ず段の「巊から個以䞊のピヌスが目的䜍眮に入っおいお、
 その右はどのピヌスが䜕凊にあるか刀らない段」以䞋「䜜業䞭の段」ず呌ぶ、
・段以䞊の「どのピヌスが䜕凊にあるか党く刀らない段」
 以䞋「未着手の段」ず呌ぶ
そしお、「䜜業䞭の段」では、既にピヌスが目的䜍眮に入っおいる範囲の右隣が、
次に目的䜍眮に入れるべきピヌス以䞋「着目ピヌス」ず呌ぶの目的䜍眮である。

【初期方針】
「未着手の段」が段になるたで

「䜜業䞭の段」のうち「着目ピヌス」の目的䜍眮を含めお
それより右偎以䞋「䜜業䞭の範囲」ず呌ぶおよび「未着手の段」に぀いおは、
「着目ピヌス」以倖のどのピヌスが䜕凊にあるかを党く制埡しないものずする。
この堎合、「未着手の段」が段以䞊ある限り、「穎」も「着目ピヌス」も
「未着手の段」の䞭を自由に移動させるこずができるし、
「䜜業䞭の範囲」にピヌス分以䞊の幅があれば、
「䜜業䞭の範囲」の䞭たで含めお自由に移動させるこずができる。
即ち、「䜜業䞭の範囲」にピヌス分以䞊の幅がある限り、
「着目ピヌス」を目的䜍眮ぞ持っお来るこずは容易である。

「䜜業䞭の範囲」の幅がピヌスになったら、
「着目ピヌス」を目的䜍眮ではなく、
その右隣「䜜業䞭の段」の右端に眮いお埅機させおおく。
本来の目的䜍眮は「穎」ずはせず、手近なピヌスで埋めおおく。
この状態で、次の「着目ピヌス」
「䜜業䞭の段」の右端を目的䜍眮ずするピヌスは
「未着手の段」の䞭を自由に移動できるから、
目的䜍眮「䜜業䞭の段」の右端の䞋隣ぞ移動させる。
“手近なピヌス”が“次の「着目ピヌス」”だず困るので、
 「穎」を埋める際に、そうならないようにする

この段階で、「穎」は「未着手の段」の䜕凊かにあるハズだが、
これを「䜜業䞭の段」の䞋隣の段の右端の巊隣ぞ持っおくるこずは容易である。
そうするず、「䜜業䞭の段」の右端からピヌス分の範囲ず
その䞋隣の段の右端からピヌス分の範囲ずを䜵せた
ピヌス分のスペヌスに居るピヌスを自由に回せる状態になる。
そこで、巊回りに぀回すず、぀の「着目ピヌス」が同時に目的䜍眮に入り、
「䜜業䞭の段」の配列䜜業が完了する。

【残り段になっお以降】
最埌のピヌスになるたで

「未着手の段」が段の状態で「䜜業䞭の段」の配列䜜業が完了したら、
その段を䜵せお、次の「䜜業䞭の段」ずしお扱い、
「未着手の段」は存圚しなくなるものず考える。
「䜜業䞭の範囲」も段分の幅があり、「穎」は垞にその䞭にある。
「着目ピヌス」は垞に個である。

たず、「䜜業䞭の範囲」の䞭をグルグル回しお、
「着目ピヌス」が䞊䞋に䞊ぶようにする。
これは「穎」が巊右䜕れにあるかを問わなければ必ず可胜である。

「穎」が「着目ピヌス」より右にある堎合には、
「着目ピヌス」の右隣に「穎」が来るよう、
必芁なら「穎」の存圚する段に居るピヌスを右ぞ寄せおから、
「着目ピヌス」ず「穎」ずを含む段×ピヌス分のスペヌスで
ピヌスを回せば、「着目ピヌス」が元の䜍眮の右隣で䞊䞋に䞊んで
その巊偎に「穎」がある状態にできるので、そのようにする。
即ち、以䞋では「穎」は「着目ピヌス」より巊にある。

このずき、「着目ピヌス」が目的䜍眮ずは䞊䞋が入れ替わった配眮であれば、
「着目ピヌス」の䜍眮を右端、その目的䜍眮を巊端ずする範囲
その䞭に「穎」があるハズをグルグル回すこずによっお、
「着目ピヌス」を぀同時に目的䜍眮ぞ入れるこずができる。

「着目ピヌス」が目的䜍眮ず䞊䞋が同じ配眮で右端以倖の堎所に居る堎合には、
たず、「穎」がある段の方の「着目ピヌス」以䞋「」ず呌ぶを巊ぞ寄せお、
「」が居た䜍眮を「穎」ずする。
次に、他方の「着目ピヌス」以䞋「」ず呌ぶず右隣のピヌスの
䜵せおピヌスを、「穎」を含めたピヌス分のスペヌスで回しお、
「」が元の䜍眮の右隣に居お、「穎」が「」の元の䜍眮に来るようにする。
続いお、「」の元の䜍眮に来たピヌスず巊隣のピヌスの
䜵せおピヌスこれには「」が含たれるを、
「穎」を含めたピヌス分のスペヌスで回しお、
「」が「」の巊隣「」の元の䜍眮に居お、
「穎」が「」の元の䜍眮に来るようにする。
曎に、「」「」ず「穎」を含むピヌス分のスペヌスで
぀のピヌスを回しお、「」「」が元の䜍眮の右隣で瞊に䞊ぶようにする。
このずき、぀の「着目ピヌス」の䞊䞋は逆転し、
か぀「穎」は移動した「着目ピヌス」より巊にあるから、
あずは䞊述ず同様である。

「着目ピヌス」が目的䜍眮ず䞊䞋が同じ配眮で右端に居る堎合で、
残りピヌスが個以䞊ある堎合、
即ち「䜜業䞭の範囲」にピヌス分以䞊の幅がある堎合には、
必芁なら「穎」のある段のピヌスを巊ぞ寄せお
「穎」が右端の巊隣たたは曎にその巊隣に来るようにしおから、
右端からピヌス分の幅×段のピヌス分のスペヌスで぀のピヌスを回しお、
「着目ピヌス」の䞀方が、他方の居た䜍眮に来お、
その巊隣が「穎」になるようにする。
「穎」の巊隣は、他方の「着目ピヌス」ずなる。
次に、右端の぀のピヌス「着目ピヌス」の䞀方が含たれるず
その巊隣ずのピヌス分のスペヌスにあるピヌスを回しお、
その䞭の「着目ピヌス」が元の䜍眮に来お、
「穎」は元通り、巊ぞ寄せた方の「着目ピヌス」の右隣ぞ来るようにする。
この状況は、右端に残った方の「着目ピヌス」を「」、
巊ぞ寄せた方の「着目ピヌス」を「」ず考えれば、
「着目ピヌス」が本来の䜍眮の巊隣にあった堎合の
䞊述の手順の途䞭経過ず同じになるから、以䞋は同様である。

【最埌のピヌス】

最埌にはピヌスが段×ピヌス分のスペヌスに残る。
その䞭でグルグル回せるこずを考えるず、
本質的には通りの可胜性しか無い。
ピヌス党おを目的䜍眮に入れられる堎合ず、
それずは逆順に䞊んでいお入れられない堎合である。
入れられない堎合は、「穎」の䜍眮を合わせれば
目的圢ずは奇眮換の関係になるから、
目的圢ず偶眮換の関係にある初期配眮から到達するこずは無い。
即ち、目的圢ず偶眮換の関係にある初期配眮から以䞊の手順を螏めば、
必ず「ピヌス党おを目的䜍眮に入れられる堎合」に到達する。

埓っお、「目的圢ず偶眮換の関係にある初期配眮」からは
必ず目的圢に到達可胜である。

戞田 孝滋賀県立琵琶湖博物通
to...@lbm.go.jp

OOTANI TAKASHI

unread,
Oct 29, 2003, 8:41:13 AM10/29/03
to
ko...@ie.u-ryukyu.ac.jp (Shinji KONO) writes:
>> ピヌスをランダムに䞊べたずきに、配眮を芋お、䜕らかの蚈算を行うこずで
>> 目的圢に出来るかどうかを刀断する手段があるでしょうか
>
> 良く芚えおないけど、parity の問題だったず思うので、結構簡単
> に蚈算できるず思いたす。空癜の䜍眮をそろえお、偶数番目の偶数
> の個数ずかを数えればいいんじゃないでしょうか?

同じ個数でも出来る・出来ないの䞡方のパタヌンがあるので、これではだめです。
単玔に奇数番目偶数番目だず瞊ず暪に察しお察象じゃないので、
盀面を垂束暡様に塗っお、目的圢での色ず同じ色のたすにあるピヌスの
数を数えおみたしたが、これもだめ。

田䞭さんご玹介の本を芋おみたす。
--
tks...@anet.ne.jp

OOTANI TAKASHI

unread,
Nov 1, 2003, 1:19:59 AM11/1/03
to
OOTANI TAKASHI <tks...@anet.ne.jp> writes:
> ko...@ie.u-ryukyu.ac.jp (Shinji KONO) writes:
>>> ピヌスをランダムに䞊べたずきに、配眮を芋お、䜕らかの蚈算を行うこずで
>>> 目的圢に出来るかどうかを刀断する手段があるでしょうか

> 田䞭さんご玹介の本を芋おみたす。

(該圓の章だけ)読みたした。盎接的な答えは曞いおなかったですが。

空癜が最埌にあるずしお、x[1]x[15]に115の数字が入っおいるずしたす。
これを先頭から単玔゜ヌトしおそのずきの亀換回数が偶数ならOK。
で、いけそうです。

田䞭さんありがずうございたした。
--
tks...@anet.ne.jp

0 new messages