搞笑整活系列|Python基础-“百钱百鸡”入门逻辑题(刚开始的建议藏起来)

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

搞笑整活系列|Python基础-“百钱百鸡”入门逻辑题(刚开始的建议藏起来)
文章图片

今日主题:“百钱百鸡”,此鸡非彼鸡我们都是正经人的~ 用一百块钱去买一百只鸡,公鸡5块钱1只,母鸡3块钱1只,小 鸡1块钱3只。请问一百块能买到公鸡,母鸡,小鸡各多少只?
可以尽情的把你们的答案算出来然后再看详解,这样效果更佳。我猜答案应该会是五花八门的
【搞笑整活系列|Python基础-“百钱百鸡”入门逻辑题(刚开始的建议藏起来)】
搞笑整活系列|Python基础-“百钱百鸡”入门逻辑题(刚开始的建议藏起来)
文章图片

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

搞笑整活系列|Python基础-“百钱百鸡”入门逻辑题(刚开始的建议藏起来)
文章图片

三:代码

#设定公鸡,母鸡,小鸡 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基础-“百钱百鸡”入门逻辑题(刚开始的建议藏起来)
文章图片



    推荐阅读