3
大学数学基礎問題
文献あり

自作パズル『計13枚のコインと天秤パズル』

1339
0

初投稿です.表現下手なところがあるので温かい目で見ていただけると幸いです.

はじめに

天秤パズルをもとにしたパズルを作りました!ぜひ,挑戦してみてください!

「そもそも天秤パズルとは?」という人向けに天秤パズルの紹介もしています.
「知ってる!」と言う人は, 自作パズルに挑戦 へ飛んでいただいても大丈夫です.

天秤パズルとは?

天秤パズル(balance puzzle, weighting puzzle)とは,天秤を限られた回数使って重さの違うコインを探し出す論理パズルです.さっそくですが,例題を見てみましょう.

あなたはコインを9枚持っています.そのうち1枚だけ重さが重いコインがあるそうです.天秤を2回使って重いコインを探し出してください.

この問題は,次で解くことができます.

説明のために,コインに1から9までの数字をつけておきます.

  1. コイン1,2,3を左に,コイン7,8,9を右に置き,重さを比べる.  
    左に傾く1,2,3のどれかが重い.
    傾かない4,5,6のどれかが重い.
    右に傾く7,8,9のどれかが重い.
  2. コイン1,4,7を左に,コイン3,6,9を右に置き,重さを比べる.  
    左に傾く1,4,7のどれかが重い.
    傾かない2,5,8のどれかが重い.
    右に傾く3,6,9のどれかが重い.
  3. 1.,2.で共通して重いと予想されたコインが答え.

図のように,天秤の左右にコインを置くと左右に傾いたり,傾かなかったりします.その結果を使って重さの違うコインを当てるパズルが天秤パズルです.なんとなくわかっていただけたでしょうか?

どんなパズルかわかっていただけたところで,もう一つ例題を出します.

あなたはコインを4枚持っています.そのうち1枚だけ重さが違う(重い or 軽い)コインがあるそうです.天秤を2回使ってそのコインを探し出してください.

この問題のように,重いか軽いかがわからないタイプの問題もあります.

この問題は,次で解くことができます.

説明のために,コインに1から4までの数字をつけておきます.

  1. コイン1を左に,コイン2を右に置き,重さを比べる.  
    左に傾く1が重いか,2が軽い.
    傾かない3,4どっちかの重さが違う(重い or 軽い).
    右に傾く1が軽いか,2が重い.
  2. コイン1を左に,コイン3を右に置き,重さを比べる.  
    左に傾く1が重いか,3が軽い.
    傾かない2,4どっちかの重さが違う(重い or 軽い).
    右に傾く1が軽いか,3が重い.
  3. 1.,2.で共通して出てきたものが答え.

重いか軽いかがわからないと難しくなりますね….

もっとコインの枚数が多くなったらどうですか?解けそうですか?2つ問題を出しておくので,ぜひ挑戦してみてください!

あなたはコインを27枚持っています.そのうち1枚だけ重さが重いコインがあるそうです.天秤を3回使って重いコインを探し出してください.

あなたはコインを13枚持っています.そのうち1枚だけ重さが違う(重い or 軽い)コインがあるそうです.天秤を3回使ってそのコインを探し出してください.

天秤パズルの解法

この章では,天秤パズルの解法を紹介します.

天秤パズルの定式化

解法を考える前にパズルを深掘りしておきたいと思います.
前章で紹介したように,天秤パズルはタイプが2つあり,次の形をしていました.

例題1のタイプ:
あなたはコインをc枚持っています.そのうち1枚だけ重さが重いコインがあるそうです.天秤をn回使って重いコインを探し出してください.

例題2のタイプ:
あなたはコインをc枚持っています.そのうち1枚だけ重さが違う(重い or 軽い)コインがあるそうです.天秤をn回使ってそのコインを探し出してください.

もう1つのタイプの天秤パズル

今回は説明の都合上扱いませんが,実は次のような天秤パズルもあります.

あなたはコインを12枚持っています.それらコインは重さが全て同じか,1枚だけ重さが違う(重い or 軽い)そうです.天秤を3回使って重さが違うコインがあるかを判定し,重さが違うコインがある場合はそのコインを見つけてください.

このタイプの問題に関しては,また後日記事を書きたいと思います.

これから,この2つのタイプの問題を深掘りしていきます.説明の都合上,コインには1からcまでの数字がついていることとします.

条件の定式化

まずは,条件にあたる次の部分の定式化を考えていきましょう.

  • そのうち1枚だけ重さが重いコインがあるそうです
  • そのうち1枚だけ重さが違う(重い or 軽い)コインがあるそうです

これらは,数字iがついたコインの重さをwiとすると,次で定式化できます.

問題1のタイプの条件

wR>0,wR>0,!i{1,,c},s.t.((j{1,,c}{i},wj=w)(wi=w+w))

問題2のタイプの条件

wR>0,wR0,!i{1,,c},s.t.((j{1,,c}{i},wj=w)(wi=w+w))

この2つは,"i以外は同じ重さwで,iは重さがw違ってw+w.そんなiはひとつだけ"ということを表しています.の部分に関しては,回答者には教えないけど…という感じでしょうか.

少しづつ形が違うのは,

  • 例題1のタイプ:1枚だけ重さが重いので,差wは正.
  • 例題2のタイプ:1枚だけ重さが違う(重いor軽い)ので,差wは0以外の数.

というところからきています.

天秤の定式化

次は,天秤の操作にあたる部分の定式化を考えていきましょう.
考える土台がないと難しいので, 例題1の解法 をもとに定式化を考えていきます.

天秤を使ったのは,次の操作でした.

コイン1,2,3を左に,コイン7,8,9を右に置き,重さを比べる. 

これは,

  • w1+w2+w3>w7+w8+w9
  • w1+w2+w3=w7+w8+w9
  • w1+w2+w3<w7+w8+w9

のいずれかが成り立つかを調べたことになります. これを言い換えると,

  • w1+w2+w3w7w8w9>0
  • w1+w2+w3w7w8w9=0
  • w1+w2+w3w7w8w9<0

のいずれかが成り立つかを調べたことになります.さらに言い換えると,sgn(w1+w2+w3w4+w5+w6)を得たことになります.
ただし,sgnは実数の符号を返す関数で,実数xRに対し,sgn(x)={1x>00x=01x<0としておきます.
sgnを作用させた後の結果は,

  • 1のとき, 天秤が左に傾く
  • 0のとき, 天秤が傾かない
  • 1のとき, 天秤が右に傾く

で,天秤の傾き方と対応します.

これで,一回の天秤の操作は定式化できました.

そういえば,例題1ではもう一回天秤を使っていましたね.

コイン1,4,7を左に,コイン3,6,9を右に置き,重さを比べる. 

これは先ほど同様に考えると,sgn(w1+w4+w7w3+w6+w9)を得たことになります.

この2つをまとめてものが次になります.
sgn((111000111 101101101)(w1w2w3w4w5w6w7w8w9))を得ること.
ただし,実数x1,,xnRに対し,sgn((x1xn))=(sgn(x1)sgn(xn))とします.

行列で書いてあげることで,2つの式を1つにまとめることができました.

これをもとにすると,天秤をn回使うは次で表せます.

天秤をn回使う

b1,1,,b1,c,,bn,1,,bn,c,{1,0,1}に対し,sgn((b1,1b1,cbn,1bn,c)(w1wc))を得ること.

ここで現れるbi,j{1,0,1}は,

  • bi=1のとき, コインiを天秤の左にのせる
  • bi=0のとき, コインiを天秤にのせない
  • bi=1のとき, コインiを天秤の右にのせる

で,天秤へのコインの乗せ方と対応します.例題1のコインの置き方と行列の関係を確認してみてください.

天秤パズルの解法

条件,天秤の操作の定式化ができたので,解法を考えていきましょう.

一般的な解法

条件の定式化より,iを重さの違うコインとしたとき,wi以外の重さはwwiの重さはw+wで書けることをふまえると,天秤をn回使った結果は次になります.

sgn((b1,1b1,i b1,cbn,1bn,i bn,c)(ww+ww))i行目

抽象的でわかりづらいですね….具体例を一つあげておきます.

例題と同じ天秤の置き方をして,数字3のついたコインが重かったとします(仮に,他のコインの重さが100.数字3のついたコインの重さがそれより50重かったとします).このとき,天秤を2回使った結果は,

sgn((111000111 101101101)(100100100+50100100100100100100))=sgn(5050)=(11)

となります.ちなみに,結果の解釈の仕方は,1が左に傾くで,1が右に傾くだったので,この結果から1回目は左,2回目は右に傾いたことが分かります.

天秤をn回使った結果がわかったところで,結果から重さの違うコイン(すなわち,i)の見つけ方を考えていきましょう.そのために,結果をもう少し詳しくみていきます.天秤をn回使った結果

sgn((b1,1b1,i b1,cbn,1bn,i bn,c)(ww+ww))

は,行列の線形性より,

(b1,1b1,i b1,cbn,1bn,i bn,c)(ww+ww)=(b1,1b1,i b1,cbn,1bn,i bn,c)(www)+(b1,1b1,i b1,cbn,1bn,i bn,c)(0w0)=(b1,1b1,i b1,cbn,1bn,i bn,c)(www)+w(b1,ibn,i)

が成り立つことに注意すると,

sgn((b1,1b1,i b1,cbn,1bn,i bn,c)(www)+w(b1,ibn,i))

が成り立ちます.もしここで,

(b1,1b1,i b1,cbn,1bn,i bn,c)(www)=(000)

とすることができたら,結果は

sgn(w(b1,ibn,i))=sgn(w)sgn(b1,ibn,i)=sgn(w)(b1,ibn,i)

となります.つまり,結果はコインiの置き方と,差wの正負のみで決まることになるのです.ちなみに,最初の等式は,実数x,yRに対し,sgn(xy)=sgn(x)sgn(y)より,次の等式は,自然数i,jに対し,bi,j{1,0,1}より成り立ちます.

ここまでわかってしまえば,後は簡単です.

問題1のタイプは,差wが正なので,コインiが重いときはコインiの置き方(すなわち,(b1,ibn,i))が結果に出てきます.そのため,結果と一致する置き方をしているコインを探すことで重いコインを見つけることができます.その際,重さが重いコインの候補が複数あっては困るので,同じ置き方をしているコインがないこと(すなわち,i1i2に対し,(b1,i1bn,i1)(b1,i2bn,i2))が必要となります.

問題2のタイプは,差wが正か負なので,コインがi重いときはコインの置き方が,軽いときはコインの置き方と逆の結果が出てきます.そのため,結果と一致する置き方をしているコイン,または結果と置き方が左右逆のコインを探すことで重さの違うコインを見つけることができます.その際,重さの違うコインの候補が複数あっては困るので,同じ置き方をしているコインがないことと,左右逆の置き方をしているコインがないこと(すなわち,i1i2に対し,(b1,i1bn,i1)(b1,i2bn,i2))が必要となります.

コインの見つけ方はこれでいいのですが,これができるのは,

(b1,1b1,i b1,cbn,1b1,i bn,c)(www)=(000)

のおかげでしたね.この条件も考えてみると,左と右におくコインの数が同じこと(すなわち,#{j{1,,c}bk,j=1}=#{j{1,,c}bk,j=1})となります.「そんなの当たり前!」というような条件のおかげで,問題が簡単になるってすごくないですか!!

ここまでの議論をまとめておきます.

例題1のタイプの天秤パズルの解法

b1,1,,b1,c,,bn,1,,bn,c{1,0,1}が次の条件を満たすとする.

  • k{1,,n},#{j{1,,c}bk,j=1}=#{j{1,,c}bk,j=1}
  • i1,i2(i1){1,,c},(b1,i1bn,i1)(b1,i2bn,i2)

このとき,sgn((b1,1 b1,cbn,1 bn,c)(w1wc))=(b1,ibn,i)なるコインiが重さが重いコイン.

例題2のタイプの天秤パズルの解法

b1,1,,b1,c,,bn,1,,bn,c{1,0,1}が次の条件を満たすとする.

  • k{1,,c},#{j{1,,c}bk,j=1}=#{j{1,,c}bk,j=1}
  • i1,i2(i1){1,,c},(b1,i1bn,i1)(b1,i2bn,i2)(b1,i1bn,i1)(b1,i2bn,i2)

このとき,sgn((b1,1 b1,cbn,1 bn,c)(w1wc))=(b1,i2bn,i2)または,sgn((b1,1 b1,cbn,1 bn,c)(w1wc))=(b1,ibn,i)なるコインiが重さが違うコイン.

具体例

具体例として, 天秤パズルとは? で紹介した問題を解いてみたいと思います.

あなたはコインを27枚持っています.そのうち1枚が他のコインと比べ重いということがわかっています.天秤を3回使って重いコインを探し出してください.

これは,例題1と同じタイプなので,

  • k{1,,n},#{j{1,,c}bk,j=1}=#{j{1,,c}bk,j=1}
  • i1,i2(i1){1,,c},(b1,i1bn,i1)(b1,i2bn,i2)

を満たすようなものを考えましょう.例えば,次が条件を満たします.

(111111111000000000111111111111000111111000111111000111101101101101101101101101101)

この置き方を用いることで,前述の方法で重さの重いコインを見つけることができます.

あなたはコインを13枚持っています.そのうち1枚だけ重さが違う(重い or 軽い)コインがあるそうです.天秤を3回使ってそのコインを探し出してください.

これは,例題2と同じタイプなので,

  • k{1,,c},#{j{1,,c}bk,j=1}=#{j{1,,c}bk,j=1}
  • i1,i2(i1){1,,c},(b1,i1bn,i1)(b1,i2bn,i2)(b1,i1bn,i1)(b1,i2bn,i2)

を満たすようなものを考えましょう.例えば,次が条件を満たします.

(111100000111111011001110011110110101010)

この置き方を用いることで,前述の方法で重さの違うコインを見つけることができます.

自作パズルに挑戦

それではお待ちかねの自作パズルです.ぜひ挑戦してみてください!

あなたは金貨6枚,銀貨7枚の計13枚持っています.そのうち1枚だけ重さが違う(重い or 軽い)そうです.ここで重さが違うとは,同じ種類のコインと比べて重さが違うことを意味します(すなわち,金貨の中に1つだけ他の金貨と比べ重さが違うものがあるか,銀貨の中に1つだけ他の銀貨と比べ重さが違うものがあります).天秤を3回使って重さの違うコインを探し出してください.

金貨の重さと銀貨の重さが同じ場合は,天秤パズルと同じ問題ですが,今回は重さが同じかもしれないし,違うかもしれません.そんな条件でも解けるのでしょうか?

ヒント1

今まで議論が使えるかもしれません.飛んできた人は,これまでの内容を見てみましょう.
ヒント2

このパズルは,条件が変わっています.このパズルの条件を定式化するとどうなりますか?
ヒント3

このパズルの条件は次で定式化できます.
wg,wsR>0,wR0,!i{1,,13},s.t.((j{1,,6}{i},wj=wg)(j{7,,13}{i},wj=ws)(i6wi=wg+w)(i7wi=ws+w))

複雑でわかりづらいかもしれませんが,基本的には天秤パズルのように重さの違うコイン以外は基本の重さwg,wsで,重さの違うコインは+wで表せるということです.
ヒント4

次に考えるのは解法です.解法のポイントはなんでしたか?
確か,『これがあると問題が簡単になる!!』っていう条件がありましたね.
ヒント5

『これがあると問題が簡単になる!!』という条件は,今回は次の条件です.

(b1,1b1,6b1,7 b1,13b,1b2,6b2,7 b2,13b,1b3,6b3,7 b3,13)(wgwgwsws)=(0000)
ヒント6

(110011110001111011010101011010111110100)(wgwgwsws)=(0000)
が成り立ちます.
ヒント7

条件をふまえると,ヒント6のコインの置き方で天秤を3回使った結果はどうなりますか?
ヒント8

sgn((110011110001111011010101011010111110100)(wg+wwgwsws))
の結果はどうなりますか?
ヒント9

ヒント8のwの位置を1行目から他の行に変えてみましょう.
重さの違うコインの見つけ方がわかるはずです!

おわりに

途中に出てきた,『これがあると問題が簡単になる!!』という条件は,符号理論という分野でとても大切な条件になっています.今回の自作パズルもそこからの発想です(伝わる人がいるかはわかりませんが,オール1(全部同じ値)以外の符号語を考えてみたらこのパズルができました).このパズルを通じて,少しでも興味を持っていただけたら嬉しいです.また,このパズルも気に入ってくれると嬉しいです.

参考文献

投稿日:20211216
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。
バッチを贈って投稿者を応援しよう

バッチを贈ると投稿者に現金やAmazonのギフトカードが還元されます。

投稿者

Kok
Kok
3
1339
勉強ノートの管理に使おうと思ってます  興味があるのは、符号理論・雑学的な数学

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. はじめに
  2. 天秤パズルとは?
  3. 天秤パズルの解法
  4. 天秤パズルの定式化
  5. 天秤パズルの解法
  6. 自作パズルに挑戦
  7. おわりに
  8. 参考文献