问题是什么:
现在只有两只杯子AB,容量分别是:M升和N升,在只用这两个杯子的前提下,怎样操作可以得到K升水?
分析问题的过程:
明确能够获得的信息:
问题中的参数
先来明确一下问题中总共有几个参数:
首先能够确定的是两个常量AB的容量:M和N;(M
?
\geqslant
?N)
我们将一个杯子为空,一个杯子非空时看作为一次测量的结束。问题让我们求解的结果K(0
?
\leqslant
?K
?
\leqslant
?M)就可以看作是结束完某次测量后中有水水杯中存储水的体积。而我们可以设结束完一次测量后有水容器中存储水的体积为X(0
?
\leqslant
?X
?
\leqslant
?M)
最后还有两个不易发现的参数:AB水杯分别中剩余空间的大小,我们可以设他们分别为:
Y
A
(
0
?
Y
A
?
M
)
,
Y
B
(
0
?
Y
B
?
N
)
Y_A(0\leqslant Y_A \leqslant M),Y_B(0\leqslant Y_B \leqslant N)
YA?(0?YA??M),YB?(0?YB??N)
测量水方法的总结和分析
方法总结
要解决这个问题最重要的便是如何通过两个水杯测量。一般有三种方法:
第一种方法(
F
1
F_1
F1?)是:在不注入新水的情况下,通过将储存在容量为M杯子中储存的水
X
旧
X_旧
X旧?,倒满容量为N的空杯子,来获得
X
新
X_新
X新?。由此可知:
-
X
新
=
X
旧
?
N
X_新=X_旧-N
X新?=X旧??N
-
N
?
X
旧
?
M
N \leqslant X_旧 \leqslant M
N?X旧??M
-
0
<
X
新
?
M
?
N
0 < X_新 \leqslant M-N
0<X新??M?N;
第二种和第三种方法均为,通过新水注满一个杯子后,将杯中一部分水倒满因存有
X
旧
X_旧
X旧?而改变的另外一个杯子的剩余空间Y,来获得
X
新
X_新
X新?
注满的杯子的容量为M的情况下(
F
2
F_2
F2?),我们可以得到:
-
X
新
=
M
?
Y
B
=
M
?
(
N
?
X
旧
)
=
X
旧
+
(
M
?
N
)
X_新=M-Y_B=M-(N-X_旧)=X_旧+(M-N)
X新?=M?YB?=M?(N?X旧?)=X旧?+(M?N)
-
0
?
X
旧
?
N
0 \leqslant X_旧 \leqslant N
0?X旧??N
-
M
?
N
?
X
新
?
M
M-N\leqslant X_新 \leqslant M
M?N?X新??M
注满的杯子的容量为N的情况下(
F
3
F_3
F3?),我们可以得到:
-
X
新
=
N
?
Y
B
=
M
?
(
M
?
X
旧
)
=
X
旧
?
(
M
?
N
)
X_新=N-Y_B=M-(M-X_旧)=X_旧-(M-N)
X新?=N?YB?=M?(M?X旧?)=X旧??(M?N)
-
M
?
N
?
X
旧
?
M
M-N \leqslant X_旧 \leqslant M
M?N?X旧??M
-
0
?
X
新
?
N
0\leqslant X_新 \leqslant N
0?X新??N
初始情况的分析
因为初始情况时X=0,所以只能进行
F
2
F_2
F2?
方法分析
我们不难发现
F
2
F_2
F2?与
F
3
F_3
F3?互为逆过程,又因为初始情况只能进行
F
2
F_2
F2?,所以
F
3
F_3
F3?对整体测量没有作用,因此对整体测量来说只有
F
1
F_1
F1?和
F
2
F_2
F2?起作用。
结论
最终我们发现只需要判断
F
1
F_1
F1?和
F
2
F_2
F2?进行的次数即可,即a(M-N)-bN=K中次数a,b的值。
|