Python基础-“百钱百鸡”入门逻辑题(刚开始的建议藏起来)

Posted 五包辣条!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python基础-“百钱百鸡”入门逻辑题(刚开始的建议藏起来)相关的知识,希望对你有一定的参考价值。

一:前言

最近这段时间辣条哥发现学Python的人是越来越多,但是适不适合学Python又有几个人知道呢?说到底编程其实很多时候需要的是较强的思维逻辑能力,如果基础的思维逻辑能力不行的话那辣条就得好好劝一劝了,除非是真的热爱,愿意花别人更多的时间精力在这上面才有可能,不是辣条自卖自夸   思维逻辑这个东西看不到摸不着,绝大多数是天生的,所以之后辣条我时不时给大家更新一些逻辑题,大家可以尝试的刷上一刷!助大家一臂之力

今日主题:“百钱百鸡”,此鸡非彼鸡我们都是正经人的~

用一百块钱去买一百只鸡,公鸡5块钱1只,母鸡3块钱1只,小 鸡1块钱3只。请问一百块能买到公鸡,母鸡,小鸡各多少只?

可以尽情的把你们的答案算出来然后再看详解,这样效果更佳。我猜答案应该会是五花八门的

二:思路

初遇这种问题,大家可能一时难以找到头绪。可以先确定一个量:即100块钱买一种鸡最多能买多 少只?如果买公鸡最多只能买20只,母鸡能买33只,小鸡能买300只,但是需要注意,鸡的数量也限定 在100只,所以不可能买300只小鸡,但是我们可以得出一个不定时方程:公鸡数量+母鸡数量+小鸡数量 =100只。这样就可以在确定一种鸡的数量下去求另外两种鸡的数量组合。这种穷举方式非常适合用循环 来解决。

三:代码

#设定公鸡,母鸡,小鸡
cock = 0
hen = 0
chicken = 0

#通过多层循环来穷举数量组合
#最外层控制遍历公鸡数量
for cock in range(0,21):
    #此层控制遍历母鸡数量
    for hen in range(0,34):
        #此层控制遍历小鸡数量
        for chicken in range(0,101):
            #同时满足百钱白鸡两个条件则输出数量
            if(cock*5+hen*3+chicken/3==100 and cock+hen+chicken==100):
                 print('cock:%s hen:%s chicken:%s'%(cock,hen,chicken))

但是从效率上来说上面这种算法进行了很多无效的计算,因为小鸡的数量在确定好公鸡,母鸡以后就 已经固定了,不需要再进行循环遍历。

#通过多层循环来穷举数量组合
#最外层控制遍历公鸡数量
for cock in range(0,21):
    #此层控制遍历母鸡数量
    for hen in range(0,34):
        #小鸡数量为 100-公鸡-母鸡,此处就确定了数量,条件控制可以去掉数量判断
        chicken = 100-cock-hen
        if(cock*5+hen*3+chicken/3==100):
              print('cock:%s hen:%s chicken:%s'%(cock,hen,chicken))

此时穷举的次数由21*34*101次变成了21*34次,效率得到了很大的提升,以上就是百钱白鸡的问题详解。

四:总结

虽然说思维逻辑是天生的,辣条我呢也属于幸运儿,哈哈哈哈   不过辣条我觉得只要肯努力这些都不是问题,如果你坚持看到这里了,可以看到底下辣条我的名片,随时可以来骚扰我的,绝不反抗,大家加油~

 

以上是关于Python基础-“百钱百鸡”入门逻辑题(刚开始的建议藏起来)的主要内容,如果未能解决你的问题,请参考以下文章

百钱百鸡的python算法

PHP百钱百鸡问题(考考你的逻辑能力)

Python每日一练——第4天:百钱百鸡问题(升级版)

python——百钱百鸡题

PHP/Python---百钱百鸡简单实现及优化

百钱百鸡算法优化