• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:バケツの水を0.7リットル入るジョッキと0.5リットル入るコップを使って)

0.7リットルの水を0.6リットルのジョッキに入れる方法は?

このQ&Aのポイント
  • 0.7リットルの水を0.6リットルのジョッキに入れる方法は、以下の手順で行います。
  • 最速の方法は以下の通りです。
  • 上記の手順が最速であるかどうかは証明されていませんが、既知の最短手順として知られています。

質問者が選んだベストアンサー

  • ベストアンサー
  • eatern27
  • ベストアンサー率55% (635/1135)
回答No.4

#1です。すいません、#1にちょっと嘘があったようです。 その訂正ともうちょっと詳しい説明を一緒にします。 xy平面上において、x=0,x=7,y=0,y=5で囲まれる長方形を考えて、 ジョッキにx/10リットル、コップにy/10リットル入っている状態←→長方形内の格子点(x,y) のように対応させます。(#1のコピペ) ジョッキに水を汲むという操作は、点(x,y)から点(7,y)に移動する事に対応します。(コップに水を汲む場合も同様) ジョッキの水を捨てるという操作は、点(x,y)から点(0,y)に移動することに対応します。(コップの水を捨てる場合も同様) ジョッキの水をコップに移すという操作は、x+y=一定の直線上を長方形の辺にぶつかるまで移動することに対応します。 まとめると、水を汲む・捨てる・移すという操作は、 1.x軸に平行な直線 2.y軸に平行な直線 3.x+y=一定の直線(右肩下がりの直線) のいずれかの直線上を、長方形の辺に衝突するまで移動すること(長方形の辺から辺に移動すること)に対応します。 ※分かりにくければ、実際に長方形を書いて考えみてください。 ゴール地点は(6,0)ですよね。ここに到達するには、 1つ前の段階で(6,5)にいて、直線x=6に沿って移動する(つまりコップの水を捨てる) 1つ前の段階で(1,5)にいて、x+y=6の直線に沿って移動する(つまり、コップの水をジョッキに移しる) のどちらかしかありません。※#1では後者の可能性を見落としてました。 じゃぁ、さらにその前の段階ではどうでしょうか。 (6,5)に到達するには、前の段階で(7,4)にいて直線x+y=11に沿って移動するしかありません。 (1,5)に到達するには、前の段階で(1,0)にいて直線x=1に沿って移動するしかありません。 これと同じ事を繰り返せば、(0,0)から(6,0)に到達するには(遠回りをしないとしたら)、 (6,0)←(6,5)←(7,4)←(0,4)←(4,0)←(4,5)←(7,2)←(0,2)←(2,0)←(2,5)←(7,0)←(0,0) (6,0)←(1,5)←(1,0)←(0,1)←(7,1)←(3,5)←(3,0)←(0,3)←(7,3)←(5,5)←(5,0)←(0,5)←(0,0) のどちらかに限られる事になります。 前者は11回、後者は12回の手順ですので、前者の手順が最短という事になります。

Louise_Francoise
質問者

お礼

とても参考になりました ありがとうございました。

その他の回答 (3)

  • La_Moon
  • ベストアンサー率28% (42/145)
回答No.3

クイズの答えとしてなら(実際にできるかどうか?) まずはじめ、0.7Lのジョッキに半分以上の水を入れます。 そしてジョッキを傾けていき、(水はこぼしていきます)ジョッキの底の一番上の部分とジョッキの口の一番下の部分が水平になるところで止めます。  ※文章での説明ではわかりづらいのですが、   たとえば、ジョッキの直径と高さが同じ   場合、45度に傾けた状態です。要するに   平面で考え長方形の対角線が水平になる   状態にするのです。わかるかな? そうすると、0.7Lのジョッキに半分の水(0.35L)が残ります。 同様に0.5Lのコップに半分(0.25L)の水を残し、コップの水をジョッキに入れます。 0.35+0.25=0.6 どんなもんでしょうか?

Louise_Francoise
質問者

補足

一応、空にするか、一杯まで入れるのどちらかしかできない。 という問題でした。すいません、最初に書くべきでした…。 回答ありがとうございました。

  • ultraCS
  • ベストアンサー率44% (3956/8947)
回答No.2

この手順が最短だと思いますが とんちを使って良ければ、ジョッキに線を引いて 1.バケツからジョッキに入れる(0.7,0) 2.ジョッキからコップに入れ、ジョッキに線を引く(0.2,0.5) 3.コップからバケツに戻す(0.2,0) 4.ジョッキからコップに入れる(0.0,0.2) 5.ジョッキの線まで水を入れる(0.2,0.2) 6.ジョッキからコップに入れる(0.0,0.4) 7.もう一度ジョッキの線まで水を入れる(0.2,0.4) 8.コップにあふれる直前まで移す(0.1,0.5) だめかなぁ(もっと短いのもありそうだが)

Louise_Francoise
質問者

お礼

一応、空にするか、一杯まで入れるのどちらかしかできない。 という問題でした。すいません、最初に書くべきでした…。 回答ありがとうございました。

  • eatern27
  • ベストアンサー率55% (635/1135)
回答No.1

xy平面上において、x=0,x=7,y=0,y=5で囲まれる長方形を考えて、 ジョッキにx/10リットル、コップにy/10リットル入っている状態←→長方形内の格子点(x,y) のように対応させます。 最終的に点(6,0)に到達しないといけないのだから、その前のステップでは点(6,5)にいないいけない。点(6,5)の前のステップでは・・・、と考えていけば、自動的に仰るような手順が得られます。従って、仰る操作が最短と言えるかと。

Louise_Francoise
質問者

補足

すいません、ちょっと難しいです…。 お手数ですが、もうすこし具体的にお願いします…。 よろしくお願いいたします。