《李白沽酒》是一道流传极广的数学名题。始见于我国宋元时期数学家朱世述的《四元宝鉴》。
原文:
李白无事街上走,提着酒壶去买酒,
遇店加一倍,见花喝一斗,
三遇店与花,喝光壶中酒,
试问壶中原有多少酒?
原文意思是:
李白闲来无事做,想喝酒了发现酒壶里的酒不多了,就提起酒壶上街买酒,这个酒壶里原来是有酒的,每次遇到酒店,就将壶中的酒增加一倍,看到了花喝去一斗酒,这样先经过酒店,后遇到花,总共反复三次,最后一次遇到花时,正好喝光了壶中的美酒,那么李白的酒壶里原来有多少酒呢?
解法:
1、假设壶中原有酒为 x ,编程时需要创建一个变量——壶中酒
2、第一次遇到酒店加一倍——2x,壶中酒 X 2
3、第一次看到花喝去一斗——2x-1,壶中酒 X 2 – 1
4、第二次遇到酒店加一倍——2*(2x-1),2*(壶中酒 X 2 – 1)
5、第二次看到花喝去一斗——2*(2x-1) -1,2*(壶中酒 X 2 – 1) – 1
6、三次遇到酒店和看到花之后——2[2*(2x-1) -1]-1,2[2*(壶中酒 X 2 – 1) – 1]-1
经过推导后,可以算出来酒壶中原有酒量为:x=7/8 , 0.875。
那么在Scratch中如何实现这个过程呢?
在编程中无法将变量——壶中酒设为x,我们可以尝试将上面的推导过程反过来试一下,
原文中说了,最后一次遇到花时,正好喝光了壶中的美酒,那么我们将壶中酒这个变量设为0,然后反推后得到公式:
第三次:壶中酒 = (0+1)/2 = 1/2 。
第二次:壶中酒 = (1/2+1)/2 = 3/4,1/2=>壶中酒。
第一次:壶中酒 = (3/4+1)/2 = 7/8,3/4=>壶中酒。
代码如下:
原创文章,作者:芒小种,如若转载,请注明出处:http://www.fhgg.net/shenghuobaike/6902.html
本文来自投稿,不代表【食趣网】立场,如若转载,请注明出处:http://www.fhgg.net/