二つのコップの問題

こんな問題があります。

3デシリットルのコップと5デシリットルのコップがあります。これらを使って1デシリットルの水をはかりとるにはどうしたらいいですか。

解答例

説明しやすいように
左が3、右が5
とします。

左に水をいっぱいに注ぎます。
左の水を右に移します。右に3デシリットル入っています。
左に水をいっぱいに注ぎます。左に3デシリットル、右に3デシリットル入っています。
左の水を右に移します。右には5デシリットルまで入りますが、既に3デシリットル入っていますから、移せるのは2デシリットルだけです。
これにより、左に1デシリットル、右に5デシリットルとなりました。
1デシリットルをはかりとることができました。

他の問題

2デシリットルから10デシリットルまでのコップで1デシリットルをはかりとるケースをすべて考えてみました。
なお左右とも同じ容量のコップだとできません。
さらに容量が互いに素でないとできません。2デシリットルと4デシリットルで1デシリットルをはかりとることはできません。
「(3:5)」のように書かれているのは操作をした結果です。この場合、左が3デシリットル、右が5デシリットルとなります。

左2と右3

右に水を注ぐ(0:3)
右を左に移す(2:1)

左2と右5

右に水を注ぐ(0:5)
右を左に移す(2:3)
左の水を捨てる(0:3)
右を左に移す(2:1)

左2と右7

右に水を注ぐ(0:7)
右を左に移す(2:5)
左の水を捨てる(0:5)
右を左に移す(2:3)
左の水を捨てる(0:3)
右を左に移す(2:1)

左2と右9

右に水を注ぐ(0:9)
右を左に移す(2:7)
左の水を捨てる(0:7)
右を左に移す(2:5)
左の水を捨てる(0:5)
右を左に移す(2:3)
左の水を捨てる(0:3)
右を左に移す(2:1)

左3と右4

右に水を注ぐ(0:4)
右を左に移す(3:1)

左3と右5

左に水を注ぐ(3:0)
左を右に移す(0:3)
左に水を注ぐ(3:3)
左を右に移す(1:5)

左3と右7

右に水を注ぐ(0:7)
右を左に移す(3:4)
左の水を捨てる(0:4)
右を左に移す(3:1)

左3と右8

左に水を注ぐ(3:0)
左を右に移す(0:3)
左に水を注ぐ(3:3)
左を右に移す(0:6)
左に水を注ぐ(3:6)
左を右に移す(1:8)

左3と右10

右に水を注ぐ(0:10)
右を左に移す(3:7)
左の水を捨てる(0:7)
右を左に移す(3:4)
左の水を捨てる(0:4)
右を左に移す(3:1)

左4と右5

右に水を注ぐ(0:5)
右を左に移す(4:1)

左4と右7

左に水を注ぐ(4:0)
左を右に移す(0:4)
左に水を注ぐ(4:4)
左を右に移す(1:7)

左4と右9

右に水を注ぐ(0:9)
右を左に移す(4:5)
左の水を捨てる(0:5)
右を左に移す(4:1)

左5と右6

右に水を注ぐ(0:6)
右を左に移す(5:1)

左5と右7

左に水を注ぐ(5:0)
左を右に移す(0:5)
左に水を注ぐ(5:5)
左を右に移す(3:7)
右の水を捨てる(3:0)
左を右に移す(0:3)
左に水を注ぐ(5:3)
左を右に移す(1:7)

左5と右8

右に水を注ぐ(0:8)
右を左に移す(5:3)
左の水を捨てる(0:3)
右を左に移す(3:0)
右に水を注ぐ(3:8)
右を左に移す(5:6)
左の水を捨てる(0:6)
右を左に移す(5:1)

左5と右9

左に水を注ぐ(5:0)
左を右に移す(0:5)
左に水を注ぐ(5:5)
左を右に移す(1:9)

左6と右7

右に水を注ぐ(0:7)
右を左に移す(6:1)

左7と右8

右に水を注ぐ(0:8)
右を左に移す(7:1)

左7と右9

左に水を注ぐ(7:0)
左を右に移す(0:7)
左に水を注ぐ(7:7)
左を右に移す(5:9)
右の水を捨てる(5:0)
左を右に移す(0:5)
左に水を注ぐ(7:5)
左を右に移す(3:9)
右の水を捨てる(3:0)
左を右に移す(0:3)
左に水を注ぐ(7:3)
左を右に移す(1:9)

左7と右10

左に水を注ぐ(7:0)
左を右に移す(0:7)
左に水を注ぐ(7:7)
左を右に移す(4:10)
右の水を捨てる(4:0)
左を右に移す(0:4)
左に水を注ぐ(7:4)
左を右に移す(1:10)

左8と右9

右に水を注ぐ(0:9)
右を左に移す(8:1)

左9と右10

右に水を注ぐ(0:10)
右を左に移す(9:1)

コメント

タイトルとURLをコピーしました