こんにちはブログ担当のYです
今回はかなりの難問の論理クイズを紹介します
チェス盤と一つの数字
![](https://handyman-shiki.com/wp-content/uploads/2021/06/168117_m-1024x683.jpg)
ある部屋にチェス盤が置かれています
その上のランダムなマスの上にポーンが置かれています
何個ポーンが置かれているかは分かりません(1マスには最大1つのポーンしか置けない)
悪魔は0から63のうち1つの数字をAさんに伝えます
・ポーンをひとつ取り除く
・ポーンを新たにひとつ置く
Aさんはどちらかの操作を1回だけ行うことができます
操作が終わった後のチェス盤をBさんに見せることで悪魔から伝えられた数字をBさんが当てる必要があります
AさんとBさんは操作の前に作戦を決めることができます
Aさんはどのような操作を行えばBさんに数字を伝えることができるでしょう
参考:DataGenetics
条件整理
- チェス盤(8×8)の各マスにはランダムにポーンが置かれている
- Aさんは「ポーンをひとつ取り除く」「ポーンを新たにひとつ置く」のどちらかを1回だけ行える
- BさんはAさんが操作した後のチェス盤のみを見て数字を当てなければならない
解説
手順1
チェス盤の各マスを0から63で置き換える
手順2
ポーンが置かれているマスの数字を2進数に置き換える
例)2、6、14、34、56にポーンが置かれている場合
2→000010
6→000110
14→001110
34→100010
56→111000
手順3
手順2で置き換えた2進数の格桁についてそれぞれ1が奇数個あるか偶数個あるか数え、偶数なら0、奇数なら1で置き換える
例)2、6、14、34、56にポーンが置かれている場合
000010
000110
001110
100010
111000
それぞれの桁の1の数は
212240
となるので
「偶」「奇」「偶」「偶」「奇」「奇」となり
010000というように置き換える
手順4
悪魔に伝えられた数字を2真数に置き換える
例)悪魔に49と伝えられたとする
49→110001
手順5
手順3と手順4で出した数字の格桁について1が偶数個なら0、奇数個なら1で置き換える(手順3と同じ操作)
例)
010000(手順3)
110001(手順4)
格桁の1の数は
120001
なので
偶数を0奇数を1で置き換えると
100001
手順6
手順5で出た数字を10進数に変換し、対応するマスのポーンを取り除く(もしくは新たにポーンを置く)
例)
100001→33
今回は33のマスにポーンはないので新たにポーンを置く
例のパターンを見てみるとチェス盤上には2、6、14、33、34、56にポーンが置かれています
これを手順3のようにしてして2進数で表してみると
000010
000110
001110
100001
100010
111000
格桁の1の数は
312241
なので
110001
となります
これを10進数に置き換えてみると49となり悪魔に伝えられた数字と一致します
非常に長い手順でしたが考え方としては
手順3のようにしてチェス盤全体を0から63で表し、その数字が悪魔に伝えられた数字になるようにポーンを操作するという感じです
非常に難しい問題でしたが解けましたでしょうか
また次回もお楽しみに
他の論理クイズの記事もCheck!
そんなことをしなくても、盤目に番号振って、足し合わせた数字を64で割った余りが悪魔の指定した数字になるように駒を置けば伝えられますよ。
コメントありがとうございます
その解き方も検討してみましたが、いくつかのパターンでうまく伝えられない場合がある気がします
例えばマス目にそれぞれ0〜63の番号を振って、駒が置いてあるマスの数字の合計を64で割った数字を伝えるとします
1、2、3のマスに駒が置かれていて、7を伝えろと言われた場合を考えます
1+2+3=6
6/64=0余り6
64で割った余りを7にしたいので、合計を7か71のどちらかにしなければなりません
71にするにはあと65必要で、マス目の数字は63までしかないため1回の操作ではできません
7にするためにはあと1足せば良いのですが既に1のマスには駒が置かれています
そのためこの場合は1回の操作で数字を伝えることができなくなってしまいます
解法の提案のコメントありがとうございました
これからも当ブログをよろしくお願いします