このクイズのヒント
-
ヒント知らないよ
このクイズの参加者(6人)
広告
広告
広告
広告
クイズ大陸関連書籍
|
札入れの中の誕生日プレゼントをゲットしよう
難易度:★★
s_hskz 2015/07/30 00:54 太郎と次郎は双子の兄弟で今日は誕生日。太郎は、部屋Cで机をはさんで親と向かい合っている。これより先、親も太郎も次郎も無言を貫くものとする。次郎は隣の部屋Bに待機していてここにはいない。親は見かけや重さが全く同じ4つの札入れを用意している。札入れには模様のある表と無地の裏とがある。親はサイコロを振りながら表裏をランダムに決めてそれが上になるようにしながら机の上に4つの札入れを横一列に置く。(たとえば太郎からみて左から順に裏裏裏表のように。)
実はひとつの札入れには紙幣が2枚はいっていて残りの3つの札入れには只のメモ用紙が入っている。親は紙幣のはいっている札入れを無言で指差し太郎に教える。ここで太郎は1つの札入れをどれか選び必ずひっくり返すように命じられる。表と裏を変えて置き直すのだ。(たとえば最初に太郎からみて左から順に裏裏裏表であるものを裏裏表表とするように。) ここで太郎は部屋Cから退室し隣の部屋Aで待機する。次に部屋Bにいた次郎は部屋Cに招き入れられる。この出入りの間、太郎と次郎2人の間で身振りや音声でのやり取りは出来ないものとする。 次郎は机の上にある札入れの表裏の並びを見て(たとえば次郎からみて左から順に裏裏表表となっている)1つを指差す。もしもその札入れに紙幣が入っていれば、誕生日プレゼントとして太郎と次郎とで山分けである。そうでなければ今年のプレゼントは無しである。実はこのゲームは昨年にも行われていて、その時にはプレゼントは得られなかった。悔しかった兄弟は今年の為にあらかじめ作戦を練ってあり次郎が確実に紙幣入りの札入れを指差せるようにしていた。さてどのような作戦だっただろうか。 (札入れに指紋をつけるなどのズルやトンチはないものとする。あくまでも次郎は札入れの表裏の並びだけから判断する。) ※小学生でもわかるような簡単な作戦を考えて頂きたい。
|
表裏の結果がすべて一致か2個ずつの時は、紙幣が入った財布のみ表裏が別になるように変える。
表裏が1:3or3:1になるときは、表裏になっている組み合わせで判別、表を1、裏を0で表すとき 1111,0000 1100,0011 1010,0101 1001,0110 の4組に分け、それぞれに対応する財布を決めておけば、表裏決定でどの位置が表でどの位置が裏であっても、判別可能になる こんな感じで
s_hskz
正解です。 ……二通りの場合分けを統合整理しますと、よりシンプルになります。太郎にとっても次郎にとっても直観的になります。それが私の意図した解です。よろしければお試しくださいませ。
<事前に示し合わせて決めておくこと>
財布左から 1・2・3・0と番号をつけておく。 、 1の財布=3と同じ面なら1、3と同じ面なら0 2の財布=3と同じ面なら2、3と同じ面なら0 この二つのを足すことで、1・2・3・0を表現すると決めておく。 (以上をサインと呼ぶ) 例:表表表*なら、1+2=3 例:表表裏*なら、0+0=0 例:裏表表*なら、0+2=2 例:裏表裏*なら、1+0=1 <太郎がすること> 紙幣入り財布の番号をXとする サインがいくつであるかを計算し、Sとする。 サインが紙幣入り財布を示すようにひとつを裏返す。 下記のように、小学生でも記憶しやすい程度の方法で、 常に意中の財布を示すことが可能である。 A S=Xの場合、0の財布を裏返す B S+X=3の場合、3の財布を裏返す C S−Xが±2の場合、2の財布を裏返す D ここまでのどれにも該当しない場合、S−X=±1になっている。 1の財布を裏返す <次郎がすること> サインが示す財布を取る。 小学生でもわかるような作戦
s_hskz
正解です。 意図した解では太郎から次郎へのサインはもっともっとシンプルにできます。ぱっとわかりぱっとひっくりかえすことができます。計算は不要なレベルに簡明です。よろしければお試しください。
ヒントになるかどうかわかりませんが、ちょっと呟きます。
私がこの問題を最初に解いたときには、以下のような図を描きました。 (図では一部を伏せています。) このままでは小学生がマスターするには難しすぎるので一工夫が必要となりました。 ┏━┳━┳━┳━┓ 10┃ ┃ ┃ ┃ ┃ ┣━╋━╋━╋━┫ 11┃ ┃ ┃ ┃ ┃ ┣━╋━╋━╋━┫ 01┃ ┃ ┃ ┃ ┃ ┣━╋━╋━╋━┫ 00┃ ┃ ┃ ┃ ┃ ┗━┻━┻━┻━┛ 00 01 11 10 サイフの並びと表裏を、□■で表すことにする。
ここでは仮に、 □:裏 ■:表 として考える。 一番左側のサイフは、サインとしての意味は持たせず、 どれもひっくり返したくないときにひっくり返すダミーとする。 そして、右の三つのサイフが、 □■■ ■□■ ■■□ または、 ■□□ □■□ □□■ の場合は、 一枚だけ他のサイフと表裏が違うものが、 札の入ったサイフの場所を示す、とサインを決めておく。 また、右の三つのサイフが、 ■■■ □□□ の場合は、 一番左のサイフを示すサインとする。 あとは、元のサイフの配置と、札の入ったサイフの位置の いかんに関わらず、必ずサインが成立することを示す。 サイフを左から順に、0,1,2,3と番号をつける。 まず、元のサイフの位置が0を示す場合から。 ■■■ □□□ この場合、 0,1,2,3いずれのサインも出せることは明白。 (その番号のサイフを反転させれば良い) 次に、元のサイフの配置が1を示している状態を考えると、 □■■ 0,1,2,3を裏返すことにより、 1,0,3,2を表すことになり、 この場合も、全ての番号のサインを出せる。 元のサイフの配置が2を示している場合。 ■□■ 0,1,2,3を裏返すことにより、 2,3,0,1を表すことになる。 この場合も、全ての番号のサインを出せる。 また、当然ながら、今示したのと、逆向きの変換も、 一手で可能である。 これで、元のサイフの配置と、 サインとして使うサイフの配置が、 任意のサイフを一枚裏返すという、一手で変換可能であること、 つまり、どんな場合でもサインが成立することが示せた。 また、ここで例として使ったものと、 表裏が反転している場合でも、考え方は同じ。 したがって、この方式のサインを決めておけば、 太郎がサイフの並びをつくり、 次郎が上のルールに沿ってサイフを選べば、 必ず勝てる。 サインはシンプルなはず。小学生でも可能
・・・証明の部分は、少しばかり自信なし
s_hskz
正解です。
必ずひとつは札入れをひっくりかえさなければならないことへの処理がスマートに説明されていますので私の意図した解よりもわかりやすいです。 また、解答発表をしていない今はまだ、詳細を記せませんが、上記のスマートさの源泉となる《肝》も私が期待していた通りです。 【作戦】
全て向きが同じなら一番左 1つだけ向きが他と違うものがあればその1つ 表と裏が2つづつなら、一番左と同じ向きのもの 【太郎の操作】 表の数が0または4なら、正解をひっくり返す。 表の数が2なら、正解と同じ向きの札入れをひっくり返す。 上記のいずれでもない場合は、他と向きが違う札入れが一つだけある。 正解が一番左なら、他と向きが他と違う札入れをひっくり返す。 他と向きが違う札入れが一番左なら、正解をひっくり返す。 他と向きが違う札入れが正解なら、一番左をひっくり返す。 それ以外なら、一番左と同じ向きで、かつ不正解の札入れが一つだけあるので、それをひっくり返す。 おもしろい問題です。
回答はまったくスマートじゃないです。
s_hskz
【余談】
「おもしろい問題です」とのこと、有難うございます。実は別の問題を簡易化して装いを改めたものなのです。元となったオリジナルな問題では札入れの数は64もあるのです。 (キーボードの打鍵ミスではなく、間違いなくロクジュウヨンです。) オリジナルでは、かならずしもひっくり返す必要はないのですが、太郎がひっくり返すことができる札入れは最大でもひとつだけで、それでも次郎はきちんとどれに紙幣がはいっているかわかるのです。 (実はこれが超難解ですので札入れを4とした超簡易ケースを考えたのです。私はオリジナルについてはまだ解けていません。解ける人がいっぱいいるんですよね……) 【本題】 正解です。 (不思議なことに、御回答での、太郎の操作の説明がいっけんわかりにくいものになってしまっていて、私にとっては、理解に時間がかかりました。) 次郎が太郎から受けとるべきサインが妥当ですし……親がランダムに並べた札入れを太郎が操作する手順にも瑕疵はありません。 補助線を一本いれるといきなりわかりやすくなるかもしれません。 財布の数がちょうど2^n個であれば、「必ずしもひっくり返す必要はない」と条件を緩めなくても、
「太郎が必ず財布をひとつひっくり返す」でも解けると思います。 64個の場合の作戦例 <共通の手順> 手順1:すべての財布に、右から1〜64の番号を振る。予め二進法で1〜64を記した紙を準備して、順に置いてゆくとその後の作業がラク。 手順2: 机上の財布の状況を読み取る(詳細下記)。 手順2-1: 一桁目が1である財布32個をチェック、表の数の合計が奇数か偶数かを一番右にメモする。(奇数ならば1、偶数ならば0) 手順2-2: 二桁目が1である財布32個をチェック、表の数の合計が奇数か偶数かを数列の左側にメモする。 手順2を6回繰りかえすと、 二進法6桁の数が得られる(以降キーナンバーと呼ぶ)。 <太郎独自の手順> 手順3: 正解(札が入っている)の財布の二進法6桁の数と、キーナンバーを比較。6桁それぞれについて、同じ場合0、違う場合1と記録する。新たな二進法6桁の数が得られる。 手順4: 手順3が示した番号の財布をひっくり返す。 →この結果、机の上に新たに現れたキーナンバーは正解の(札が入っている)財布を示しているはず。万全を期すなら、手順2に戻って確認するのがよい。 手順5:0〜63を記した紙を手元に回収する。 <次郎独自の手順> 手順1・手順2で得られたキーナンバーの財布を選択する。 紙を置くことを許せば、集中力さえあれば小学生でもできると思います。暗算でと言われたら理系の大学生でもミス続出と思いますが 64個の場合の作戦を、極力シンプルな作戦で、遂行しやすいように考えてみました。
(s_hskzさん自身がご覧になりたくなければ、未読のまま削除くださっても結構です。)
s_hskz
文字通り感服いたしました。
手順4でうまくいっている理由についてこれから懸命に考えてみます。パリティが鍵のようではありますが… ところで、「太郎が必ず財布をひとつひっくり返す条件」でも解ける とありますが、右端のみ表で、紙幣のある札入れもまた右端のときにはどうなりますでしょうか。 また、手順1と手順5とで内容がひとつずれています。 ※4個版のこの問題の回答発表の時まで、64個版をチャレンジしたい方々のために、 短い期間ながら、頂いた64個版の回答を伏せておきたく思います。 …なるほど、次は8個あたりで感触をつかむと64個でも腹に落ちるのかもしれませんね。 ケース1:初期状態が全て表の場合
紙幣が入っている札入れを裏返す。 ケース2:初期状態が全て裏の場合 表の場合と同様に、紙幣が入っている札入れを裏返す。 ケース3:初期状態が表が2つ、裏が2つの場合 表向きの札入れに紙幣が入っていたら、入ってない方の 表向きの札入れを裏返す 裏向きの札入れに紙幣が入っていたら、入ってない方の 裏向きの札入れを裏返す ケース1、2、3では、表向きが1つだけ、または裏向きが1つだけなので、 次郎は1つだけ表向き(裏向き)の札入れを選択する ケース4:初期状態が表が3つ、裏が1つの場合と、裏が3つ、表が1つの場合 事前に 表表表表 または 裏裏裏裏 と並んでいたら右端 表表裏裏 または 裏裏表表 と並んでいたら右から2番目 表裏裏表 または 裏表表裏 と並んでいたら左から2番目 表裏表裏 または 裏表裏表 と並んでいたら左端 に紙幣が入っているという合図を決めておく。 太郎は、紙幣の入っている場所に応じて、上記の札入れの並びを構成する。 ケース4では、次郎は合図にしたがって紙幣の入っている札入れを選択する。 これでどうですか?
s_hskz
正解です。
御回答のケース4では、アタリが左端から二番目と、アタリが左端との符丁を入れ替えたほうがわかりやすいですね。(右端をひっくりかえしてじっと睨めばおわかりになることでしょう。) >手順1と手順5とで内容がひとつズレ
申し訳ない、単純ミスです。理系的には0−63なのですが、小学生には右端を1としたほうがわかりやすいかと思って投稿寸前でに変更しましたもので。 この変更が、「0個裏返しが必要では」というご質問を招いたみたいですね。1−64、でなくて、右から1−63、ただし左端は0、と書けばよかったかもしれません。 >右端のみ表で、紙幣のある札入れもまた右端のときにはどうなりますでしょうか。 この場合、キーナンバーが000001、正解も000001になります。キーナンバー=正解の場合は、手順3で示されるコードが000000になり、左端の64番目をひっくり返せという意味だと解してください。64番目の財布の下6桁は000000で、手順2のキーナンバー計算では一回も参照されませんから、これが表でも裏でもキーナンバーに全く影響しません。(64=0をひっくり返すことが、ひとつもひっくり返さないことと、全く同じ効果。) 手順4でうまく言ってる理由はわりと単純で、左端64番目が000000で手順2に全く影響しないのと同様、、右端000001は手順2のうち手順2-1だけ、つまりキーナンバー一桁目だけに参照されています。「右端をひっくり返す」ことは、「キーナンバーの一の位だけを変更する」ことに対応します。 ということで、正解とキーナンバーのズレが右端だけ、つまり手順3で000001が示されるとき、右端をひっくり返せばよいことがわかります。 >右端のみ表で、紙幣のある札入れもまた右端のときにはどうなりますでしょうか。
感服メダルありがとうございます 質問の返答を囁かせていただきました。
s_hskz
丁寧なご解説をまことに有難うございます。
1オリジンの件、よくわかりました。また、64個版でも、太郎がひっくり返す動作は必須という条件をつけても良いことがよくわかりました。4個版でもおなじことだという気がしてまいりました。 太郎は初期表が0,2,4の場合はかなり直感的に、正解のもののみ表裏が違うようにする。1,3の時は一番左が正解の場合を除いて一番左と同じ表裏のものが正解となるように、一番左が正解の時はすべてが同じ表裏となるようにする
次郎はまず左から二枚目を見る。 表の場合、左側から1+(2番目が表の場合2、裏なら0)+(一番右が表の場合1、裏なら0)番目の財布を選ぶ。 裏の場合、左側から(2+(2番目が表の場合2、裏なら0)+(一番右が表の場合1、裏なら0)を4で割ったあまり)番目の財布を選ぶ。 前の自分の回答と合わせて図かいてみて、ああ、なるほどとは思ったものの、どう文章化したものか。
というか、今の自分の回答内容だと、むしろ表にのっとったほうが理屈っぽくなるという・・・・・・
s_hskz
お返事が遅れてすみません。
丁寧な御回答をありがとうございます。前のものと同様によく整理されていると存じます。 このたびは、ややボカシますが……出題直後の時点での某さんによる御回答を最初に拝読したときにはとてもドッキリしました。 Aパターンはすごく直感的で素晴らしく、対してBパターンでは操作記述的でなかなか把握しづらいという印象を、*あくまでも個人的にですが* うけました。 そこでですが、こんなのはいかがでしょうか。 親が並べたBパターンに対し、太郎は以下の三段階の行動をします。 1)〈ある操作〉をしてパターンをBからAに変える。 2)Aパターン用の直感的な処理を行う。 3)1)で行った〈ある操作〉の正反対の操作をしてパターンをAからBに戻す。 さらに、次郎は以下のように。 4)太郎が示した並びはBパターン。 1)と同じ〈ある操作〉をしてパターンをBからAに変えて次に。 5)Aパターンなので直感的に紙幣入りの札入れがわかる。 ……という感じです。いかがでしょうか。 まず、サイフが8枚の場合を考えてみる。<br>8=2^3であるから、3ビットあれば全ての番号を表せる。<br>サイフの番号は、右端が0、順に1,2,3…と決めておく。<br><br><br>サイフの並びを、二進数と対応させて、<br>サイフの表裏を表すベクトルWを定義する。<br>W=(w7,w6,…,w0)である。w7が一番左とする。<br><br>w7=1は一番左のサイフが表であることを表す。<br>w7=0は 〃 裏であることを表す。<br>他の添え字も同様。<br><br>ここで、パリティP1 P2 P3を次のように定義する。<br><br>P1=w7(+)w6(+)w5(+)w4<br>P2=w7(+)w6(+)w3(+)w2<br>P3=w7(+)w5(+)w3(+)w1<br><br>但し(+)記号は、排他的論理和を表す。<br>1(+)1=0<br>1(+)0=1<br>0(+)1=1<br>0(+)0=0<br>である。<br>(演算記号の左右が同じなら0、異なれば1となる)<br><br><br>ここで、たとえば、サイフの初期配置が、<br>(w7,w6,…,w0)=(0,0,1,0,0,1,0,0)<br>だったとして、<br><br>パリティを計算し、P1 P2 P3の順に並べて、<br>二進数を作ると、111となる。<br><br>さらに、実際に札が入っているサイフの番号を、<br>二進数で表す。<br>たとえば、実際に札が入っているサイフが<br>0,3,7番の場合、<br>それぞれ、000,011,111となる。<br><br>これらの数値と、<br>サイフの初期配置のパリティーとを、<br>各桁毎に排他的論理和を取る。<br><br>札の入っているサイフの番号が、0,3,7の場合、<br>結果は、<br>111(+)000 = 111(binary) = 7(decimal)<br>111(+)011 = 100(binary) = 4(decimal)<br>111(+)111 = 000(binari) = 0(decimal)<br><br><br>それぞれ、111,100,000となる。<br>これを二進数で解釈すると、<br>ひっくり返すべきサイフの番号が得られる。<br>それぞれ、7、4、0となるが、つまり、<br>w7,w4,w0が反転すべきサイフとなる。<br><br>(パリティの式とにらめっこすると、<br> 合っていることが分かると思います)<br><br><br>さて、ここからが本番。64個のサイフの場合、<br><br>W=(w63,w62,…,w0)<br>として、<br>パリティーも64=2^6 なので、<br>P1~P6まで必要となる。<br><br>パリティのつくり方ですが、<br>Wの要素のうち、wn(nは0から63の整数)の添え字の番号が、<br>以下の条件を満たすもの全ての、排他的論理和を取る。<br><br>nを二進数で表したとき、<br>P1:最上位ビットが1である要素全て<br>P2:上からふた桁目が1である要素全て<br>P3:上から3桁目が1である要素全て<br>P4:上から4桁目が1である要素全て<br>P5:上から5桁目が1である要素全て<br>P6:最下位ビットが1である要素全て<br><br>サイフの初期配置のパリティを計算し、<br>P1 P2 P3 P4 P5 P6の順に並べて二進数を作る。<br>この数をPIとする。<br><br>次に、実際に札が入ったサイフの位置を、<br>右端が0、左端が63と考え、番号で表す。<br>そしてその番号を二進数で表す。<br>この数をBIとする。<br><br>たとえばPI=101010(binary)<br>そして、BI=111100(binary) = 60(decimal)<br>だったとすると、<br>各桁毎に、両者の排他的論理和を取る。<br>この場合、<br>A=PI(+)BI=010110(binary)<br><br>これは、サインとして示すべきサイフの配置と、<br>サイフの初期配置の差異を、<br>パリティで表したものである。<br><br><br>つまりサイフを一枚だけひっくり返したときに、<br>上の例であれば、<br>P2,P4,P5が反転するような、サイフの番号が分かればよい。<br><br>実は、上のように定義しておくと、<br>このような、都合の良いサイフの番号が、<br>Aを数値として解釈したときの数と一致する。<br><br>たとえば上の例の場合、<br>A=010110(binary)=22(decimal)<br><br>であるから、<br>22番のサイフを反転させれば良い。<br><br><br>簡単に根拠を示す。<br>22番のサイフは、パリティのうち、<br>22を二進数で表したビットが1である桁のもの、<br>つまり、P2,P4,P5の計算に含まれる。<br><br>つまり22番のサイフを反転させることは、<br>PIの上から2、4、5番目のビットを反転させることを意味する。<br><br>つまり、<br>A=PI(+)BIとして作ったAを使えば、<br>かならず、<br>BI=PI(+)A となる。<br><br>つまりAを数値として解釈した番号のサイフを反転させれば、<br>サイフの初期配置PIを、<br>サインとして使うべき最終配置(=札の入った番号)である、<br>BIと等しくすることが出来る。<br><br>あとは、次郎が、<br>正しくパリティを計算すれば、<br>64個のサイフであっても、<br>正しく、札の入った一個を特定できる。<br><br>以上から、<br>サイフの初期配置、<br>そして札の入ったサイフの位置が、<br>どのような場合であっても、<br>この方法で反転すべきサイフの番号が求まる。<br><br><br><br>おまけ。<br><br>ここで、この考え方でサイフ4枚の時のことを考えると、<br>パリティーは2ビット分必要で、上と同様に生成すると、<br><br>P1 (○○××)<br>P2(○×○×)<br>○は使うビット、×は計算しないビット<br>となるが、<br>この場合、以下のようになる。<br><br><br>サイフの状態、パリティー(二進数)、結果の番号の順で表す。<br>(サイフの状態で、一番右のサイフはパリティに一切関与しないので、<br> 裏表どちらでも良いという意味で×で表記)<br><br>表表表× →00 0<br>表表裏× →01 1<br>表裏表× →10 2<br>表裏裏× →11 3<br>裏表表× →11 3<br>裏表裏× →10 2<br>裏裏表× →01 1<br>裏裏裏× →00 0<br><br>以上のようになる。<br>実はダミーが右端に行くが、それ以外、<br>私が先に回答した直感的に分かりやすい回答と一致する。<br>(それが意図解だそうですから、なかなか数学的に、<br> スッキリした解だったわけですね)<br><br><br>以上です。<br>
8枚、64枚の場合について解いてみました。そして設問の4枚の場合についても、この考え方で一貫して解けることを示してみました
↓(追記)ありがとうございます 解答公開時には、ぜひたっくん4さんのお答えも拝見したいものです。
s_hskz
これまた感服致しました。
(以前の4枚の御回答のときも感じたのですがプレゼンテーション能力にも長けていらっしゃるのでしょうか。) ※たっくん4さんによる64個バージョンの解と本質的に同じで、ただ、Yssさんが0オリジン、たっくん4さんがあえて1オリジンに変更しているところ、対比的で興味深かいところです。 …私には自力でたどりつけない場所におふたりが到達していらっしゃいます。 No4 の私のコメントに於いて示唆したところですが、私の64個への道は……2進グレイコード2桁を座標とする2次元平面で4個の札入れの表裏の状態を表現しようとするアイデアが出発点でした。No4 の図解では上端が下段、右端が左端とつながっていると解しておくと、 親が並べた札入れの状態は特定のマスで表現でき、太郎がひとつの札入れをひっくり返すことは、4つの隣接するマスへの移動となります。……この調子で四次元超立方体でもグレイコードを使い同じことを行えば8個の札入れの状態を記述でき…32次元で64個……とまあ遠大な計画を立てて挫折していました。(^○^) 回答発表をそろそろ行いたく存じます。
●まず私の失敗例 私がこの問題を最初に解いたときには、以下のような図を描きました。 ┏━┳━┳━┳━┓ 10┃0┃1┃3┃2┃ ┣━╋━╋━╋━┫ 11┃3┃2┃0┃1┃ ┣━╋━╋━╋━┫ 01┃3┃2┃0┃1┃ ┣━╋━╋━╋━┫ 00┃0┃1┃3┃2┃ ┗━┻━┻━┻━┛ 00 01 11 10 (注)この図の座標軸は、00⇒01⇒11⇒10⇒00 と通常の二進数の並びになってはいません。一桁づつ反転させて繋げています。グレイコードの考え方を応用しました。 4つの札入れの並びについて表を0、裏を1としたときに、左側2つを縦軸に、右側2つを横軸に、全16通りをマスとして配置したものです。この図では右端と左端が繋がっていて上端と下端とがつながっています。 (初期のゲーム機のRPGソフトの世界マップみたいですね。実際にはトポロジー的にはトーラスの表面と同相でした。即ち、その世界は地球の表面のような球の表面ではなく、水泳で使う浮き袋の表面みたいになっているのです。閑話休題。) それぞれのマスには0から3までのサインの数字を記します。これは太郎から次郎に伝える当たりがある場所についてのサインの数字です。 親がランダムに並べた札入れの並びはどこかのマスにはいります。太郎はそのマスから上下左右に隣のマスへとひとつ移動して、0から3までの数字を次郎に伝えることができる仕掛けです。 (グレイコードの性質が効いています) 実際に行うためには上の図を紙に書いておくなどして太郎と次郎とが共有しておく必要があることでしょう。こんなの覚えてられるかーみたいな気分です。 《このままでは小学生がマスターするには難しすぎる印象がありますので……何か良い工夫がないものかと思った次第です。》 ……ここまでは失敗談です。 ●回答 私が意図した回答は、別途、本来の回答欄に用意しましたが、私自身の説明よりも >>6 の YSS さんによる説明がのほうがはるかにわかりやすいので、そちらを是非ご覧下さい。 ●お詫び (私が操作を間違えたせいなのか、>>12 の囁き欄で改行がbr要素に化けています。すみません、直しようがないのです。申し訳ありません。) >11 の某さんの御回答について 私がコメント欄で述べたことの補足をさせて頂きます。
No1の某さんによる御回答を再度拝読していたところ、新たな考えに辿り着きました。 お礼申し上げます。 説明の為に、札入れの並びにおいて左から順に、 A,B,C,D と名前をつけます。 太郎は各々の札入れの手前に1対1で(10円玉などの)コインを一枚づつ置き、左から順に、 a,b,c,d と名前をつけます。 コイン a,b,c の表裏は、対応する札入れの A,B,C とそれぞれ同じにします。 コイン d だけは特別で、対応する札入れの D とは無関係に表裏を決めます。決め方は次のようになります。 すなわち、コインの表の個数と裏の個数とがともに偶数となるようにします。これは必ず可能です。 さて。親が指差した当たりの札入れの位置を知っている太郎は、その位置にあるコインの表裏が、他の3枚とは異なるようにして、(つまり仲間外れにするように)どれか1枚のコインの表裏を引っくり返します。表が3枚裏が1枚、もしくは表が1枚裏が3枚となり1枚になっている位置が当たりの位置です。 これは必ずできます。 次に、ひっくり返したコインに対応する札入れの表裏を引っくり返します。最後にコインを回収します。 ※もしも太郎が優秀ならばコインは太郎の頭の中の想像の世界だけにあるものとして構わないことでしょう。 次に次郎は以下のように行動します。 A,B,C,D のうち表が奇数個、裏も奇数個である時、表と裏のどちらかは1個です。1個になっている札入れが当たりです。 A,B,C,D のうち表が偶数個、裏も偶数個である時、D を引っくり返します。すると、表と裏のどちらかは1個です。1個になっている札入れが当たりです。 === 偶数と奇数について理解できる太郎と次郎にとって、以上は誕生日プレゼントをゲットできる作戦のひとつであるかもしれません。 この4個バージョンの問題はオリジナルからの簡易化した改変問題なのですが、64個バージョンのオリジナルの問題の出典を記しておきたく思います。
『Inoueianさんの出題を元にした「オセロ問題」まとめ』 (togetterまとめ) 上記はtwitterでのつぶやきがまとめられているのですが、なんと回答を1ツイート分、140字で記してあったりします。驚きですね。 オリジナルの問題をまとめて公開してあることに感謝いたします。 こんにちは 。
この手の問題は苦手なので大人しく眺めていましたが、 子供でも実行可能な方法というのが素晴らしいですね 。 関係ありませんが > 囁き欄で改行がbr要素に化けています クイズ大陸のバグのひとつです 。 http://quiz-tairiku.com/q.cgi?mode=view&no=17998 この解は素晴らしいですね
私の知ってるのはヒネた小学生ばかりであるようです No.2は、 ・1の財布=3と「違う」面なら1、3と「同じ」面なら0 ・2の財布=3と「違う」面なら2、3と「同じ」面なら0 と書き換えれば、解とまったく同じサインになるのですが、エレガントさが違いすぎる ひたすら感服です。 まず、サイフが8枚の場合を考えてみる。
8=2^3であるから、3ビットあれば全ての番号を表せる。 サイフの番号は、右端が0、順に1,2,3…と決めておく。 サイフの並びを、二進数と対応させて、 サイフの表裏を表すベクトルWを定義する。 W=(w7,w6,…,w0)である。w7が一番左とする。 w7=1は一番左のサイフが表であることを表す。 w7=0は 〃 裏であることを表す。 他の添え字も同様。 ここで、パリティP1 P2 P3を次のように定義する。 P1=w7(+)w6(+)w5(+)w4 P2=w7(+)w6(+)w3(+)w2 P3=w7(+)w5(+)w3(+)w1 但し(+)記号は、排他的論理和を表す。 1(+)1=0 1(+)0=1 0(+)1=1 0(+)0=0 である。 (演算記号の左右が同じなら0、異なれば1となる) ここで、たとえば、サイフの初期配置が、 (w7,w6,…,w0)=(0,0,1,0,0,1,0,0) だったとして、 パリティを計算し、P1 P2 P3の順に並べて、 二進数を作ると、111となる。 さらに、実際に札が入っているサイフの番号を、 二進数で表す。 たとえば、実際に札が入っているサイフが 0,3,7番の場合、 それぞれ、000,011,111となる。 これらの数値と、 サイフの初期配置のパリティーとを、 各桁毎に排他的論理和を取る。 札の入っているサイフの番号が、0,3,7の場合、 結果は、 111(+)000 = 111(binary) = 7(decimal) 111(+)011 = 100(binary) = 4(decimal) 111(+)111 = 000(binari) = 0(decimal) それぞれ、111,100,000となる。 これを二進数で解釈すると、 ひっくり返すべきサイフの番号が得られる。 それぞれ、7、4、0となるが、つまり、 w7,w4,w0が反転すべきサイフとなる。 (パリティの式とにらめっこすると、 合っていることが分かると思います) さて、ここからが本番。64個のサイフの場合、 W=(w63,w62,…,w0) として、 パリティーも64=2^6 なので、 P1~P6まで必要となる。 パリティのつくり方ですが、 Wの要素のうち、wn(nは0から63の整数)の添え字の番号が、 以下の条件を満たすもの全ての、排他的論理和を取る。 nを二進数で表したとき、 P1:最上位ビットが1である要素全て P2:上からふた桁目が1である要素全て P3:上から3桁目が1である要素全て P4:上から4桁目が1である要素全て P5:上から5桁目が1である要素全て P6:最下位ビットが1である要素全て サイフの初期配置のパリティを計算し、 P1 P2 P3 P4 P5 P6の順に並べて二進数を作る。 この数をPIとする。 次に、実際に札が入ったサイフの位置を、 右端が0、左端が63と考え、番号で表す。 そしてその番号を二進数で表す。 この数をBIとする。 たとえばPI=101010(binary) そして、BI=111100(binary) = 60(decimal) だったとすると、 各桁毎に、両者の排他的論理和を取る。 この場合、 A=PI(+)BI=010110(binary) これは、サインとして示すべきサイフの配置と、 サイフの初期配置の差異を、 パリティで表したものである。 つまりサイフを一枚だけひっくり返したときに、 上の例であれば、 P2,P4,P5が反転するような、サイフの番号が分かればよい。 実は、上のように定義しておくと、 このような、都合の良いサイフの番号が、 Aを数値として解釈したときの数と一致する。 たとえば上の例の場合、 A=010110(binary)=22(decimal) であるから、 22番のサイフを反転させれば良い。 簡単に根拠を示す。 22番のサイフは、パリティのうち、 22を二進数で表したビットが1である桁のもの、 つまり、P2,P4,P5の計算に含まれる。 つまり22番のサイフを反転させることは、 PIの上から2、4、5番目のビットを反転させることを意味する。 つまり、 A=PI(+)BIとして作ったAを使えば、 かならず、 BI=PI(+)A となる。 つまりAを数値として解釈した番号のサイフを反転させれば、 サイフの初期配置PIを、 サインとして使うべき最終配置(=札の入った番号)である、 BIと等しくすることが出来る。 あとは、次郎が、 正しくパリティを計算すれば、 64個のサイフであっても、 正しく、札の入った一個を特定できる。 以上から、 サイフの初期配置、 そして札の入ったサイフの位置が、 どのような場合であっても、 この方法で反転すべきサイフの番号が求まる。 おまけ。 ここで、この考え方でサイフ4枚の時のことを考えると、 パリティーは2ビット分必要で、上と同様に生成すると、 P1 (○○××) P2(○×○×) ○は使うビット、×は計算しないビット となるが、 この場合、以下のようになる。 サイフの状態、パリティー(二進数)、結果の番号の順で表す。 (サイフの状態で、一番右のサイフはパリティに一切関与しないので、 裏表どちらでも良いという意味で×で表記) 表表表× →00 0 表表裏× →01 1 表裏表× →10 2 表裏裏× →11 3 裏表表× →11 3 裏表裏× →10 2 裏裏表× →01 1 裏裏裏× →00 0 以上のようになる。 実はダミーが右端に行くが、それ以外、 私が先に回答した直感的に分かりやすい回答と一致する。 (それが意図解だそうですから、なかなか数学的に、 スッキリした解だったわけですね) 以上です。 改行がおかしくなってしまいましたので、 重複投稿ですが、失礼します。 たっくん4さんとは、何か同じ文化背景というか、共通するものを感じます 表現は違いましたけど、解き方は本質的に同じでしたし。 ●かえるの妻さん、Yssさん ドジな操作のせいで改行が化けてしまった件、過去に解明されていたことのご教示およびにリカバリーをまことに有難う御座いました。 ●たっくん4さん、Yssさん お二人ともクールですね。 色々と教えてくださいまして有難う御座います。 ●皆様へ この問題をご紹介できて幸いでした。 私はクイズ大陸に初参戦でして、いろいろとお見苦しい点もあったことかと思います。 申し訳ありませんでした。 《この問題は一週間ほどしたら終了いたします。なにか新しい視点・話題がございましたら是非にご教示くださいますようお願い申し上げます。無論、雑談もおおいに歓迎いたします。》 この解(4進法)を使うと、16個とか64個も易しく解けますね。
64個を例に取ると、4つトレイを準備して、各トレイの中に4×4に並べて、 手順1:最初の3つのトレイ(各16個)の偶奇をチェック、仲間ハズレのトレイを探す 手順2 トレイを□□□□ こう横に並べて上から3行(各16個)の偶奇(以下同様) 手順3 トレイを縦に並べかえて 左から3列(各16個)の偶奇(以下同様) ワタシのNo8は罰ゲームに近い苦行ですが、こっちならやってみようかという気になります。数える財布の数は、前者は財布32個×6手順、後者は財布16個×3×3手順で、そんなに変わらないのですけど・・・
s_hskz
ああっ こういうのが欲しかったんです……有難う御座います…… 私は飲み込みが遅いのでこれから咀嚼させてください。
4進数というヒントを頂きましたのでちょっと考えてみました。
パリティ( =mod(2) )ではなく、mod(2)を使うことになりました。 16個を横一列に並べて以下のように番地を名付けます。基本的に右からにしておきます。 [FEDC] [BA98] [7654] [3210] 上で[****]はトレイという名前で呼ぶことにします。 === 各トレイの中身について、表/裏の個数が 1/3 または 3/1 の時に それを K と呼ぶことにします。 そうでなければ G と呼ぶことにします。 === 4つあるトレイにて、G/Kの個数が 1/3 または 3/1 の時に それを 《キス》 と呼ぶことにします。 さもなければ《グス》と呼ぶことにします。 === 各トレイの中身は4個の札入れですが、その並びについて、以下のように《判別値》を付与します。 表を0、裏を1、どちらでも良いものを# とします。 判別値:並び 0 : 000# または 111# 1 : 001# または 110# 2 : 010# または 101# 3 : 100# または 011# === 16個の札入れがグスの並びならば、以下のような作戦を使います。 4つあるトレイのうち、紙幣のはいっている札入れ(当たり)を含むトレイについて、 他の3つのトレイとは G K について 異なるようにすることを目標に、どれかひとつのトレイの中の札入れをどれかひとつをひっくり返します。このトレイを操作トレイと呼びます。どの札入れをひっくり返すかについては後で説明します。ここまでで、当たりを含むトレイを示せます。 次に、当たりを含むトレイの中のどの札入れが当たりなのかについての約束事を説明します。 各トレイごとの判別値を全て加え、4で割った余りでもって、当たりトレイの中の紙幣のはいっている札入れの位置を示すことにします。これは判別値に準拠します。 さて、さきほどの説明では操作トレイのどの札入れをひっくり返すかについて説明していませんでした。実は紙幣のはいっている札入れの位置を示すように札入れをひっくり返せばよいのでした。 以上で、《グス》の場合での、当たりトレイと、その中の当たり札入れの位置を、選ばれた操作トレイとその中の適切な札入れをひとつひっくりかえすことで示せることがわかりました。 それでは《キス》の場合にはどうすれば良いか。 太郎は仮に、0番の札入れをひっくり返して《グス》の並びにして《グス》用の約束事にしたがって操作し、最後に再び0番の札入れをひっくり返して元の《キス》に戻します。次郎は《キス》をみたら 0番の札入れをひっくり返して《グス》の並びにして《グス》用の約束事にしたがって当たりの札入れを知ることができます。 === 64個の時には、16個づつのトレイを4つ用意して、判別値は 先程の16個中に何番目に当たりがあるかについての、上記の説明による値(0から15)を採用、 よっつあるトレイでのキスとグスの個数が3/1 ないし 1/3 の場合をオッド、それ以外をイーブンと呼び、イーブンのケースで操作トレイを決め、4個の判別値の合計の mod(16) での値が当たりトレイの中の紙幣入り札入れを示すこととします。オッドの場合は0番を仮にひっくりかえしてイーブンの場合に帰着します…… というふうに、札入れの個数が四倍づつになっていく階層……4進数的な段取りを想定できます。 【16個まではなんとかなりそうですが64個では既に地獄ですね、パリティで理解したほうが良さそうです】 |