- 注册时间
- 2015-10-9
- 最后登录
- 1970-1-1
- 威望
- 星
- 金币
- 枚
- 贡献
- 分
- 经验
- 点
- 鲜花
- 朵
- 魅力
- 点
- 上传
- 次
- 下载
- 次
- 积分
- 3356
- 在线时间
- 小时
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?欢迎注册
×
本帖最后由 manthanein 于 2022-12-4 01:49 编辑
倒水问题大概可以分成限制总用水量的倒水问题和不限总用水量的倒水问题。
如果不限用水量,那么对于两个杯子的情况就是简单的不定方程。
如果限制用水量,假设有ABC三个杯子,容量从大到小,A杯容量为总用水量,可以这么倒:
(1)A杯倒满C杯。
(2)C杯的水倒入B杯:如果不能倒满B杯则全部倒入,如果能倒满,先把B杯倒满,再把装满的B杯倒入A杯,然后把C杯剩下来的水倒入空下来的B杯。
(3)重复以上步骤。
用excel,假设第一行为三杯容量,第二行为A杯容量、0、0,那么后面单元格的公式可以写成:
A3 =IF(MOD(ROW(),2)=1,A2-$C$1,IF(B2+C2<$B$1,A2,A2+$B$1))
B3 =IF(MOD(ROW(),2)=1,IF(C2=0,B2,C2),IF(B2+C2<$B$1,B2+C2,0))
C3 =IF(MOD(ROW(),2)=1,$C$1,IF(B2+C2<$B$1,0,B2+C2-$B$1))
下拉后就能得到一个倒水方案给出很多种情形的解,如三杯分别为29、18、13:
29 0 0
16 0 13
16 13 0
3 13 13
21 0 8
8 8 13
26 0 3
13 3 13
13 16 0
0 16 13
18 0 11
5 11 13
23 0 6
10 6 13
28 0 1
15 1 13
15 14 0
2 14 13
20 0 9
7 9 13
25 0 4
12 4 13
12 17 0
-1 17 13
17 0 12
4 12 13
22 0 7
9 7 13
27 0 2
14 2 13
14 15 0
1 15 13
19 0 10
6 10 13
24 0 5
11 5 13
问:这种做法什么时候适用?如果不适用的情形怎么办?两个水杯限制总量可能倒出给定容量吗?
|
|