0


鸡兔同笼问题新解与Python实现

问题描述:鸡兔同笼问题。假设共有鸡、兔30只,脚90只,求鸡、兔各有多少只。

传统思路,使用暴力测试来枚举所有可能。

for ji in range(0, 31):

if 2*ji + (30-ji)*4 == 90:

    print('ji:', ji, ' tu:', 30-ji)

但实际上不需要这么麻烦,我们换个角度来看这个问题:所有鸡、兔听口令,抬起一条腿!再抬起一条腿!现在所有的鸡都目瞪口呆地坐地上了(难道这就是传说中的呆若木鸡?),站着的都是还有两条腿站立的兔子(兔子表示压力也很大),这时站立着的腿的数量的一半是兔子,当然如果得到的数字不是整数则表示无解。代码如下:

def demo(jitu, tui):

tu = (tui - jitu*2) / 2

if int(tu) == tu:

    return (int(jitu-tu), int(tu))

print(demo(30, 90))

温馨提示:单击文章顶部作者名字旁边浅蓝色的“Python小屋”进入公众号,关注后可以查看更多内容!

欢迎转发给您的朋友,或许这正是Ta需要的知识!


本文转载自: https://blog.csdn.net/dongfuguo/article/details/118704483
版权归原作者 dongfuguo 所有, 如有侵权,请联系我们删除。

“鸡兔同笼问题新解与Python实现”的评论:

还没有评论