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需要的知识!

举报

相关推荐

0 条评论