您当前的位置:首页 > 计算机 > 编程开发 > Python

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

时间:09-07来源:作者:点击数:

问题描述:鸡兔同笼问题。假设共有鸡、兔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))

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门