【コメント】
今回話題になったのは、
宮城県 あめの さんが調べてくださったのでご覧ください。
特に3番目が否定されたのは、残念でした。
◆石川県 Takashi さんからの解答。
A 10⇒10⇒10⇒ 8⇒ 8⇒ 0
B 8⇒16⇒15⇒15⇒11⇒11
C 9⇒ 1⇒ 2⇒ 4⇒ 8⇒16
<以上5回>
◆広島県 清川 育男 さんからの解答。
1) A>C A(1),B(8),C(18)
2) C>A A(2),B(8),C(17)
3) C>A A(4),B(8),C(15)
4) C>A A(8),B(8),C(11)
5) A>B A(0),B(16),C(11)
これが5手で最短手順だと思います。
1) A>B A(2),B(16),C(9)
2) B>C A(2),B(7),C(18)
3) C>A A(4),B(7),C(16)
4) C>B A(4),B(14),C(9)
5) B>A A(8),B(10),C(9)
6) B>C A(8),B(1),C(18)
7) C>B A(8),B(2),C(17)
8) C>B A(8),B(4),C(15)
9) C>B A(8),B(8),C(11)
10) A>B A(0),B(16),C(11)
これは10手。
1) C>B A(10),B(16),C(1)
2) B>C A(10,B(15),C(2)
3) A>C A(8),B(15),C(4)
4) B>C A(8),B(11),C(8)
5) A>C A(0),B(11),C(16)
これも5手で最短手順です。
上記の横道。
1) C>B A(10),B(16),C(1)
2) A>C A(9),B(16),C(2)
3) A>C A(7),B(16),C(4)
4) B>C A(7),B(12),C(8)
5) C>A A(14),B(12),C(1)
6) B>C A(14),B(11),C(2)
7) A>B A(3),B(22),C(2)
8) A>C A(1),B(22),C(4)
9) B>A A(2),B(21),C(4)
10) B>A A(4),B(19),C(4)
11) A>C A(0),B(19),C(8)
これは11手です。
5手が最短手順です。
すべてのゲームの木を探索するためには横型生成過程のアルゴリズムでプログラミングしないと無理でしょうね。
解答その2
1) A>B A(2),B(16),C(9)
2) B>C A(2),B(7),C(18)
3) C>B A(2),B(14),C(11)
4) B>C A(2),B(3),C(22)
5) C>B A(2),B(6),C(19)
6) C>B A(2),B(12),C(13)
7) C>B A(2),B(24),C(1)
8) B>C A(2),B(23),C(2)
9) A>C A(0),B(23),C(4)
これは9手です。
これで、8>8、4>4、2>2の移動が出そろいました。
7手でもあります。
最長手順の定義は無駄な繰り返しを許さないということでしょうか?
繰り返しを許せば5手以上ならすべて可能ですね。 7手
A->B B->A C->A B->A A->B
B->C A->C
( 0 , 7 , 20 )
7手
A->B C->A C->A A->C B->C
C->A A->B
( 0 , 20 , 7 )
◆海外 西野 友朗 さんからの解答。
A | B | C | ||
0 | 初期状態 | 10 | 8 | 9 |
1 | C→B | 10 | 16 | 1 |
2 | B→C | 10 | 15 | 2 |
3 | A→C | 8 | 15 | 4 |
4 | B→C | 8 | 11 | 8 |
5 | A→C | 0 | 11 | 16 |
Aを2の階乗にして数を合せていくのがコツということですね。
最初にA→CとするとAに1が残りますので、それを2,4,8のいずれかにして、あとはBとCの間で交互に油を移動させてAの量と同じにすれば完了です。
ただし、A=2でB,Cをそれぞれ10,15または5,20(それぞれ逆でも可)にすると、B,C間でその組み合わせを繰り返すだけになり、一方をAと同じ量(=2)にできなくなるので、Aの量を4または8にする必要があります。
Aの量が4,8の場合(つまり、B,Cの合計が23,19の場合)、このような循環が発生することはありません。
◆石川県 平田 和弘 さんからの解答。
いろいろ試しているうちにCの量が1→2→4→8...と変化するので
解答1.
最終手の1つ前のCの量が2になるように考えて
C→B、B→A、A→B、A→B、B→C、A→C の6手で移動できます。
解答2.
最終手の1つ前のCの量が4になるように考えて
C→B、B→C、A→C、B→A、A→B、B→A、A→B、
A→B、B→A、B→A、A→B、B→A、B→A、A→C の14手で移動できます。
解答3.
最終手の1つ前のCの量が8になるように考えて
C→B、B→C、A→C、B→C、A→C の5手で移動できます。
(おそらくこれが最短でしょう。)
別解答1
(実験から言って最終手の一手前の量が2,4,8...というように2の階乗になるので)、Bが8(2の階乗)であることを生かすように考えて
A→C、C→A、C→A、C→A、A→B の5手で可能です。
(これも最短手順でしょう。)
別解答2
方針が一貫していませんがなんとなくできました長手数です。
A→B、C→A、B→C、C→A、B→A、A→B、A→B、
A→C、B→A、C→B、C→B、C→B、C→B、B→A、
A→C、C→A、B→C、A→C、A→B、B→A、B→A、
C→A、A→C の23手です。
別解答3
初手を別解答2と同じくA→Bでスタートすると
A→B、B→C、B→A、C→A、C→A、A→B、A→B、
B→A、B→A、B→C、C→A、A→C の12手でも可能です。
感想
数学の問題に置き換えるとどうなるのかよくわかりませんが、実験から言って最終手の一手前の量が2,4,8...というように2の階乗にしかできないのでしょうか。
たとえば最終手の一手前の量を奇数にして最後完了することは不可能でしょうか。
また長手数は何手でも可能なのでしょうか。(規則性があるとか....)
◆三重県 ぐぅすか さんからの解答。
今回の「油の移動」は、第16回の数字の並べ替え問題の時の、(実験をしている間に成功するのですが、その手順を自分が覚えていないのでもう一度やろうとするとできない)という反省から紙の上でやってみました。
解答@(5手)
A→C
C→A
C→A
C→A
A→B
解答A(8手)
A→B
B→A
B→A
B→C
C→B
C→B
C→B
A→B
解答B(9手)
C→B
B→C
B→C
B→C
B→C
A→B
B→A
B→A
B→A
A→C
解答Aでは3手めに、また、解答Bでは4手めに3つの容器の中の油が10リットルと9リットルと8リットルになるのでその後は解答@と同じ手順です。
いずれにせよ、2つの容器の中の量を同じ(8リットル)にしてから、Aをからっぽにしました。
8リットル以外ではできないのでしょうか。
ここまでやってからヒントを見てみるとアレレ・・・違う!
ヒントを参考にしてできたのは、
5手で C→B B→C A→C B→C A→C
Cの油の量の変化が面白いというのがやっと納得です。
◆神奈川県 せいちゃん さんからの解答。
(1) C→B
(2) B→C
(3) A→C
(4) B→C
(5) A→C
ほんと、Cの油の量の変化が面白い。
初項1項比2の等比数列になってますね。
そうならないと出来ないのかな?
そんな事はないはずだけど。
◆千葉県 ドラゴン さんからの解答。
A | B | C | |
10 | 8 | 9 | |
AB | 2 | 16 | 9 |
BC | 2 | 7 | 18 |
CA | 4 | 7 | 16 |
CB | 4 | 14 | 9 |
BC | 4 | 5 | 18 |
CA | 8 | 5 | 14 |
AB | 3 | 10 | 14 |
CB | 3 | 20 | 4 |
BA | 6 | 17 | 4 |
BA | 12 | 11 | 4 |
AC | 8 | 11 | 8 |
AC | 0 | 11 | 16 |
◆宮城県 あめの さんからの解答。
○直感で求めた答え(5手)
A->C
C->A
C->A
C->A
A->B
○とりうる最大の手数
【前提】
ここで、(3 x 6)の部分は、(23,2,2)のように同じ容量のコップがある場合であり、78 x 6 でダブって求めた手数をひいている。
○プログラムに解かせた最大手
>最後が奇数で終わる解があるか?
これに関してですが、最後の操作のときには同じ容量のコップが2つないといけません。(証明略)
しかし、以下の理由により奇数のコップが2つ以上になることはないため、奇数の解は存在しないと思います。
--- 証明 ----
「記号の定義」
容量が偶数のコップを「e」、奇数のコップを「o」とする。
「証明」
初期状態では eが2つ、oが1つあるため、
操作としては、
(1)e->e'
(2)e->o
(3)o->e
の3つのみ存在する。
ここで、上記の矢印(->)の意味は、
矢印の左のコップの方が右のコップよりも多い、
つまり、左のコップから右のコップへ水が移されることを示す。
上記の3つの操作を行った後のコップの状態は、以下の表に示されるように初期状態を保って
「eが2つ、oが1つ」のままである。
左のコップ | 右のコップ | |
(1) | e-e'(偶数) | e'*2(偶数) |
(2) | e-o (奇数) | o *2(偶数) |
(3) | o-e (奇数) | e *2(偶数) |
よって、奇数が最後の解になることはない。
>最終手の一手前の量が2,4,8...というように2の階乗にしかできないか
プログラムで見たところ、最後が(10,10,7)という116手の解がありました。
証明はしていないです。
◆岐阜県立海津北高等学校情報処理科2年 さんからの解答。
1回目:A→C(1,8,18)
2回目:C→A(2,8,17)
3回目:C→A(4,8,15)
4回目:C→A(8,8,11)
5回目:A→B(0,16,11)
以上5回で終了します。
また、授業中に他の人が別の方法で解くことが出来ましたのでそれも紹介いたします。
ちなみにその方法では6回になります。
1回目:A→C(1,8.18)
2回目:C→A(2,8,17)
3回目:B→A(4,6,17)
4回目:C→B(4,12,11)
5回目:B→A(8,8,11)
6回目:A→B(0,16,11)
◆神奈川県 Yuh! さんからの解答。
出来るだけ、回数の多い方法です。
A→C
C→B
B→C
C→A
C→A
C→A
C→A
A→B
A→C
B→A
A→C
◆長野県の中学校3年生 篠田 章広&林 拓馬 さんからの解答。
最初 | A | B | C |
10 | 8 | 9 | |
A→C | 1 | 8 | 18 |
C→B | 1 | 16 | 10 |
C→A | 2 | 16 | 9 |
C→A | 4 | 16 | 7 |
C→A | 8 | 16 | 3 |
B→C | 8 | 13 | 6 |
A→C | 2 | 13 | 12 |
B→C | 2 | 1 | 24 |
C→A | 4 | 1 | 22 |
C→B | 4 | 2 | 21 |
C→B | 4 | 4 | 19 |
A→B | 0 | 8 | 19 |
難問でした。解けてみるとすごくうれしいです。
◆ 問題へもどる
◆ 今週の問題へ