Python百钱百鸡问题

百钱百鸡问题。我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁-值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?

 分析:
假设用cock、hen、chicken分别代表鸡翁、鸡母和鸡雏个数, 则cock. hen、chicken满 则公鸡。鸡、满
足联合方程组: 足联合方程组:
cock +hen+chick =10 公鸡+母鸡+小鸡=10(1)
5*cock +3*hen+chic/3=100(2) 多33个(有限数)
由(2)式知,鸡翁公鸡至多20个(有限数),鸡母至多33个(有限数),,因此运用穷举法,令cock分别为1,2,3,..,20,hen分别为1,2,3,...,33 然后chick=100-cock-hen  代入到(2)中验证,如果两边相等,所得的cook、hen和chick值就是所要鸡翁,鸡母和鸡雏的个数;如果不存在满足(2)式的cook、hen和chick,则本题无解。

代码如下:

for cock in range(1,20,1):

        for hen in range(1,33,1): 

                chick= 100-cock-hen

                if(5*cock+3 *hen+chick/3== 100):

                        print("cock:%d"%cock, "hen:%d"%hen, "chick:%d"%chick)

运行结果:

cock:4 hen:1 8 chick:78

cock:8 hen:11 chick:81

cock:12 hen:4 chick:84

这里运用穷举法,外层for循环遍历所有可能的cock数目,内层for循环遍历所有的hen数目,循环体中两句代码分别对应方程式(1)和(2),如果满足方程组,则把cock.hen.chick的数目打印出来。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值