簡易マスターマインド



  • お絵かきです

    かなり野蛮です

    0_1594688441769_Rotation.png



  • @riffraff さん

    頂いた絵を只今写経し終わったところです。

    まだ詳しく吟味し終わっていないのですけれども、第一感におきましては「よくもまあこんな細い道をみつけたもの!」でした。感嘆です。

    これから夕食の仕度です。



  • @riffraff さん。

    御解答、いやあ素晴らしいですね。

    実は想定解の特徴は
    ::: こういう仕掛け
    スタートしてからの2bit反転3回(反転の位置がミソ)
    :::
    なので、riffraffさんによる解とは親戚なのかもしれません。他人の空似かもしれませんけれども。



  • @Hannibal さん
    またトリッキーでしたか。多分、今回もですが、絵で考えるからでしょうか?



  • パズルは受験数学ではないので、色々答えかたはあるけれども答案用紙に書くべきはこれぞ正解、というのは私は嫌いです。
    ギバーとソルバーとの見解が違うのは喜ばしいことかと。

    私は昔から視覚が弱いので riffraffさんのようにお絵描きで解くやりかたは苦手です。ですからまずは写経してですね(^ω^)



  • 今回は出題時点では気がついていなかった解、云わば〈想定しなかった解〉を発表します。〈想定解〉は後ほどに。

    今回の〈想定しなかった解〉は見かけ上は多分に計算機が弾いてきました風味になりますが、人間であってもあることに気がつく人はいらっしゃるかもしれず又そのような人にとっては〈想定しなかった解〉は自然に出てくるものなのかもしれません。知らんけど。

    なお、〈想定しなかった解〉は〈想定解〉をガチャガチャといじっているうちに出てきたものです。ビックリしました。ユリイカ。ですのでおすそわけを。

    想定しなかった解

    昼寝をしなかった日を0で、昼寝をした日を1で表し、月曜から金曜までの五日間分を横並びにした2進数を考えます。

    アリスは質問を4回分以下のように行います。
    (なお、質問ごとにヤマネからの応答がありますがその応答によりアリスからの質問が変化することはありません。)

    1:01000
    2:00100
    3:00010
    4:00001

    ※実にシンプルですね。月曜は常に0を立てて火曜から金曜にかけては1を立てるのは1回のみとし1が同一の質問について重複することはないようにします。(紛れやすいからです)
    …もっと余計なことを云うと、以下のように5回質問をすると過剰決定になります。質問多すぎ、情報過多。
    0:10000
    1:01000
    2:00100
    3:00010
    4:00001

    話を元に戻します。

    仮にヤマネが秘匿している昼寝データが以下のようなものであったとしましょう。

    10110

    アリスが先程の4つの質問をしたときに、ヤマネからの応答は順に、1,3,3,1 となります。このことを、以下のように表記することとします。

    10110 1331

    さて、こうした表記を使って、アリスからの質問に応じてのヤマネからの応答をヤマネが秘匿する昼寝データの全バリエーションについて一覧を作ります。以下。

    00000 4444

    00001 3335
    00010 3353
    00100 3533
    01000 5333

    10000 3333

    00011 2244
    00101 2424
    00110 2442
    01001 4224
    01010 4242
    01100 4422

    10001 2224
    10010 2242
    10100 2422
    11000 4222

    00111 1333
    01011 3133
    01101 3313
    01110 3331

    10011 1133
    10101 1313
    10110 1331
    11001 3113
    11010 3131
    11100 3311

    01111 2222
    10111 0222
    11011 2022
    11101 2202
    11110 2220

    11111 1111

    全パターンは以上ですが、ヤマネからの応答が得られれば一意にヤマネが秘匿していた昼寝データが決定できるようになっています。

    ①応答データの4つのデータは2種類ないしは1種類の数からつくられています。
    ②2種類になっていれば数字の大きいほうが、火曜から金曜までに昼寝をした曜日に対応しています。
    また、その数字が偶数であれば、ヤマネが昼寝をした日数もまた偶数なので月曜日に昼寝をしたかどうかが決定できます。奇数の場合も同様です。

    ③1種類になっていれば秘匿データを推理することは極めて簡単です。

    …というわけで一覧表をいちいち見なくてもアリスはヤマネがいつ昼寝をしたかについて完全に知ることができるわけです。

    質問において月曜日を固定し火曜から金曜まで2ビットづつ反転(ヤマネが昼寝をした回数の偶奇が保存されるように)していることが、解けることのポイントかと思われます。

    誤植がないことを祈ります。

    誤りあらばご教示をくださいませ。



  • @Hannibal さん
    斜め読みする限り、誤植はないと思います。
    私はこういうの弱い(;'∀')
    本当に人の頭、駆動アルゴリズムが色々で面白いと思います。
    サロンに関連?書きます。



  • 本日は出題時点での〈想定解〉をば。

    想定解

    以下、記法は《想定しなかった解》に準じます。

    昼寝をしなかった日を0で、昼寝をした日を1で表し、月曜から金曜までの五日間分を横並びにした2進数を考えます。

    アリスは質問を4回分以下のように行います。
    (なお、質問ごとにヤマネからの応答がありますがその応答によりアリスからの質問が変化することはありません。)

    アリスによる初回の質問は

    1:00000

    です。この質問により昼寝をした日の総数がすぐにわかります。残りの3回の質問でヤマネが昼寝をした曜日を特定することにします。

    やや迂遠になりますが出題者が考えたルートをあえて書きくだします。
    アリスによる初回の質問は
    1:00000
    なのでした。
    2回目から4回目までの質問は以下のようにすれば求められるのではないかと発想しました。すなわち、M、Nを定数、ただしともに0または1とします。M、Nの組み合わせは4通りあるのですが、まずは2回目から4回目まで定数であることが肝要なのです。

    2:MN100
    3:MN010
    4:MN001

    月曜日は常にM(まだ決めていないが2回目から4回目まで0または1で固定)
    火曜日は常にN(まだ決めていないが2回目から4回目まで0または1で固定)

    この
    2:MN100
    3:MN010
    4:MN001
    の目的は、水曜木曜金曜において、ヤマネがいつ昼寝をしたか特定することです。

    実際、以下のようになることが期待できます。

    1:MN100
    2:MN010
    3:MN001

    ??001 (k+1)(k+1)(k+3)
    ??010 (k+1)(k+3)(k+1)
    ??100 (k+3)(k+1)(k+1)

    ??011 (k+0)(k+2)(k+2)
    ??101 (k+2)(k+0)(k+2)
    ??110 (k+2)(k+2)(k+0)

    ??000 (k+2)(k+2)(k+2)
    ??111 (k+1)(k+1)(k+1)

    kは、定数であって質問2から質問4までで一定です。なぜならば質問2から質問4まででMNが一定であるからです。kは、月曜ないし火曜までからの寄与です。

    水曜から金曜までで昼寝をいつしたのかが上記で【ほぼ】明らかになります。例外は
    ??000 (k+2)(k+2)(k+2)
    ??111 (k+1)(k+1)(k+1)
    の部分ですが、水曜から金曜までで昼寝をしたのが3日間なのか0日間なのかこれだけではわかりません。そこで
    1:00000
    で得られた昼寝日数と突き合わせることで、水曜から金曜まででどのように昼寝をしたのが特定できます。

    すなわち、同時に、水曜から金曜まででのべ何日間昼寝をしたのかもわかります。

    1:00000
    で得られた昼寝日数と水曜から金曜までののべ昼寝日数から、月曜から火曜までののべ昼寝日数が判明するはずです。あとは、このデータとMNとを突き合わせることで月曜から火曜まででいつ昼寝をしたのかが特定できればよいわけです。そのためには M≠N であればよいと判明します。

    以上をまとめます。

    1:00000

    でトータル何日間昼寝をしたのかについて調べます。
    昼寝が0日、あるいは5日であればヤマネがどの曜日に昼寝をしたのかが確定します。ゆえに、昼寝日数が1から4までを次のように調べることになります。

    ★昼寝が1日

    2:01100
    3:01010
    4:01001

    00001 2 2 4
    00010 2 4 2
    00100 4 2 2

    01000 4 4 4
    10000 2 2 2

    ★昼寝が2日

    2:01100
    3:01010
    4:01001

    00011 1 3 3
    00101 3 1 3
    00110 3 3 1

    01001 3 3 5
    01010 3 5 3
    01100 5 3 3

    10001 1 1 3
    10010 1 3 1
    10100 3 1 1

    11000 3 3 3

    ★昼寝が3日

    2:01100
    3:01010
    4:01001

    00111 2 2 2

    01011 2 4 4
    01101 4 2 4
    01110 4 4 2

    10011 0 2 2
    10101 2 0 2
    10110 2 2 0

    11001 2 2 4
    11010 2 4 2
    11100 4 2 2

    ★昼寝が4日

    2:01100
    3:01010
    4:01001

    01111 3 3 3
    10111 1 1 1

    11011 1 3 3
    11101 3 1 3
    11110 3 3 1

    得られる全パターンは互いに重複していませんから、ヤマネが何曜日に昼寝をしたのかについて特定できました。



  • @Hannibal さん
    !(^^)!



  • そういえば
    〈想定解〉;簡易マスターマインド
    から
    〈想定しなかった解〉;簡易マスターマインド
    をどのように導いたのかを書くのを忘れていました。

    〈想定解〉
    1:00000
    2:01100
    3:01010
    4:01001
    から
    〈想定しなかった解〉
    1:01000
    2:00100
    3:00010
    4:00001
    ですね。

    1:00000
    2:01100
    3:01010
    4:01001

    火曜日についてビット反転です。



  • @Hannibal さん
    !(^^)!


Log in to reply
 

Looks like your connection to パズルハウス was lost, please wait while we try to reconnect.