当前位置:   article > 正文

百钱买百鸡python编程代码,百钱买百鸡for循环python_百钱买百鸡python代码

百钱买百鸡python代码

大家好,小编来为大家解答以下问题,百钱买百鸡python编程用什么方法,百钱买百鸡python编程代码,今天让我们一起来看看吧!

一、问题描述

《算经》中有一道很有趣的数学题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?

转化为数学语言,也就是我们要找到三个不大于100的非负整数x,y,z,满足x+y+z=100,并且5x+3y+z/3=100.

二、普通解法

很容易想到使用嵌套的for循环来搜索合适的三个变量python编辑皮卡丘的编程码。代码如下:

  1. for rooster in range(101):
  2. for hen in range(101):
  3. for chick in range(101):
  4. if rooster + hen + chick == 100 and rooster*5 + hen*3 + chick/3 == 100:
  5. print(f'公鸡{rooster}只,母鸡{hen}只,鸡雏{chick}只。 ')

但是,上述代码的效率实在是不高。完成上述的搜索,程序重复执行了了1030301次。

三、优化解法

可以从两个角度入手优化上述代码:

1. 三种鸡的数量一共是100只,鸡雏的数量可以用100减去公鸡和母鸡的数量,这样就可以省掉一个变量,继而省掉一层循环,大大地提高了效率。

2. 受价格的限制,每种鸡的购买数量有一个更低的上限。比如公鸡一只要5钱,那么100钱最多只能买20只公鸡,根本达不到100只。我们上面设置的上限过于粗略,存在浪费。

优化后的代码如下:

  1. for rooster in range(21):
  2. for hen in range(34):
  3. if rooster*5 + hen*3 + (100-rooster-hen)/3 == 100:
  4. print(f'公鸡{rooster}只,母鸡{hen}只,鸡雏{100-rooster-hen}只。 ')

优化后,完成搜索只需要重复执行714次。

得到的答案如下:

公鸡0只,母鸡25只,鸡雏75只。
公鸡4只,母鸡18只,鸡雏78只。
公鸡8只,母鸡11只,鸡雏81只。
公鸡12只,母鸡4只,鸡雏84只。

如果这篇博文帮到了你,就请给我点个吧(#^.^#)
有疑问也欢迎留言~博主可nice啦,在线秒回ヾ(◍°∇°◍)ノ゙
文章知识点与官方知识档案匹配,可进一步学习相关知识
Python入门技能树基础语法循环410480 人正在系统学习中
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/414412
推荐阅读
相关标签
  

闽ICP备14008679号