趣味数学-如何得到所需体积的水
给你三个桶,分别装8升、5升和3升的水。最初,第一个桶装满了8升水,而剩下的两个桶是空的。在桶上没有标记刻度,所以你只能把一个桶倒进另一个桶里或装满另一个桶,用一个桶里的水来盛满另一个桶的容量。
(a)描述一个程序,通过这个程序我们可以在第一个桶中获得恰好6升的水。
(b)描述一个程序,通过这个程序我们可以在第一个桶中获得恰好4升的水。
解:
(a)让三元组(a, b, c)中的a, b, c升水分别代表在第一,第二,第三个水桶中水的体积。然后初始状态由(8,0,0)这个数组表示初始过程。
第一桶的6升得到的方式如下:
(8,0,0)→(3,5,0)→(3,2,3)→(6,2,0)。
语言描述就是将第一桶的水倒满第二桶,这是第二数组,然后将第二桶倒满第三桶,这是第三个数组,随后将第三桶倒回第一桶,就完成了第一桶为6升的水。
(b)从(a)中得到的位置(6,2,0),我们可以进行如下操作:
(6 2 0)→(6 0 2)→(1、5、2)→(1,4,3)→(4 4 0)。
上述文字描述省略。
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved