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