编程真题:李白沽酒
极客小将2025-02-06-
使用 Scratch 解决数学难题,下面有一道古代算题,出自清代《增减算法统宗》,我们先来看一下: 李白沽酒探亲朋, 路途迢迢有四程, 行至一程多一倍, 却被书童喝六升, 行到亲朋家里面, 半点全无在酒瓶, 借问高朋能算士, 几何原
使用 Scratch 解决数学难题,下面有一道古代算题,出自清代《增减算法统宗》,我们先来看一下:
李白沽酒探亲朋,
路途迢迢有四程,
行至一程多一倍,
却被书童喝六升,
行到亲朋家里面,
半点全无在酒瓶,
借问高朋能算士,
几何原酒要分明。
编程实现:
诗人李白买了酒去看望亲朋好友,路途很遥远分四段才能走到,每走一段路程, 就在路边酒馆中按酒瓶中的酒量向酒瓶中添加一倍的酒,但是每次添加完酒后被随从 的小书童偷偷喝掉 6 升(书童的酒量也这么大?),当李白来到亲朋家里的时候,却 发现酒瓶是空的,请问瓶中原来是多少酒呢?(答案: 5.625 )
【首先我们用反推法来重新解决这个问题,假设时间可以倒流(就像电影回放一 样),让李白从亲朋好友家中倒着走回去,让书童由喝酒 6 升变成加酒 6 升,同时添 酒一倍变成减酒一半,那么最后酒瓶中剩余的酒是“0”,上一次休息“添加酒”前酒 瓶中剩余的酒就是:(0+6)除以 2(把偷喝的 6 升酒还回去,然后把添加的一倍酒拿 掉),这个过程经过 4 次迭代,就可以算出瓶中有多少酒了。】
编程实现:
如果题目再难一点,比如现在路程变的更远了,不是 4 程了,是 400 程,也就是 要添酒和偷喝酒 400 次了,再来算算看!(答案: 6 )