程序研究的是一般的鸡兔同笼问题:“鸡”有a个头b个脚,“兔”有c个头d个脚,“笼”中共有e个头f个脚,问“鸡”和“兔”各有多少个?
第一步:演算出解的公式:
设“鸡”有x个,“兔”有y个,由等量关系容易得到:
(1)ax+cy=e
(2)bx+dy=f
(1)式两边同时减ax:cy=e-ax,然后两边同时除以c:y=(e-ax)/c,根据“等式中的量用相等的量代替,等式不变”把这个式子代入(2):
bx+d((e-ax)/c)=f
bx+de/c-(da/c)x=f
(b-da/c)x+de/c=f
(bc-da)x+de=fc
x=(fc-de)/(bc-da)
y=(e-ax)/c
第二步:编写程序
#鸡兔同笼问题
#输入参数
a = int(input("每个“鸡”的头数:"))
b = int(input("每个“鸡”的脚数:"))
c = int(input("每个“兔”的头数:"))
d = int(input("每个“兔”的脚数:"))
e = int(input("“笼”中的总头数:"))
f = int(input("“笼”中的总脚数:"))
#按解的公式计算“鸡”和“兔”的数量
x=(f*c-d*e)/(b*c-d*a)
y=(e-a*x)/c
#输出结果
print("“鸡”的数量是%d个,“兔”的数量是%d个。" % (x, y) )
第三步:运行验证
总结:要用代数描述一般的问题,设置适当的未知数,根据等量关系列方程或方程组;用等式的性质(一、两边同时加减乘除以一个非零数等式不变;二、等式中的一个量用它的等量代替,等式不变。)解出解的公式;根据所用的代数和解的公式编程;运行验证,如果验证不通过,要检查程序错误(debug)。