python 枚举法--百元买百鸡问题

10 篇文章 0 订阅
1 篇文章 0 订阅

问题:
百元买百鸡,公鸡一只3元,母鸡一只5元,小鸡3只1元,试问100元买100只鸡各为多少合适?
1、循环
缺点:3层循环,时间复杂度是100100100,效率低


```for x in range(101):
    for y in range(101):
        for z in range(101):
            if x+y+z==100 and x*3+5*y+z/3==100:
                print(x,y,z)
结果:
4 12 84
11 8 81
18 4 78
25 0 75

2、优化:
z=100-x-y

消去一个未知数,得到:
4x+7y=100
x+y+z=100
(x,y,z>=0,z%3==0)(0<=x<=25)

for x in range(26):
    y=100-4*x
    if y%7==0 and y>=0:
        y=y/7
        z=100-x-y
        if z%3==0 and 3*x+5*y+z/3==100:
            print(x,y,z)
结果:
4 12.0 84.0
11 8.0 81.0
18 4.0 78.0
25 0.0 75.0
欢迎大家交流指正!
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值