学Python——第九课 鸡兔同笼问题

​    程序研究的是一般的鸡兔同笼问题:“鸡”有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)。