最近独到一篇关于”百钱买百鸡”的Python编程,觉得挺有意思,索性自己改写一下优化算法。
    原题目:
  # 我国古代数据加张邱建在《算经》中提出一个著名的数序为问题:
  # 鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问
  # 鸡翁,鸡母,鸡雏几何?
 分析:
  1、这个题目其实重点并不是编程,看过很多人对这个编程最少套用了3层循环。
  2、其实这道题一层循环即可搞定。有很多考试也会用到这道题,可以善存。
 解题思路:重点在解方程
  # 1、设鸡翁=x,鸡母=y,鸡雏=z
  # 2、数量的关系:x + y + z = 100(只) ①
  # 3、钱的关系:5x + 3y + z/3 = 100 (钱) ②
  # 4、解方程:
      # 第一步:方程② × 3 = 15x + 9y + z = 300 ③
      # 第二步:③ – ① :14x + 8y = 200;
      # 第三步: 化简一下:7x + 4y = 100;
      # 第四步:移项 = y = (100 – 7x)/4
      # 所以:x只能是4的倍数,因为不能为小数,当然,如果题目变更,也就是是某个数的倍数即可。也就是你会找到循环的增倍关系。
 
    因此:一次性循环即可搞定,下面用Python的编码来解决这个问题
 
1 count = 1 
2 for i in range(0, 100, 4):  # 四的倍数
3     x = i
4     y = int((100 - 7*x)/4)
5     z = int(100 - x - y)
6     if x + y + z == 100 and x*y*z >=0 :  # 买够100值打印结果,且不能等于0
7         print("第{0}种够买情况:鸡翁{1}只,鸡母{2}只,鸡雏{3}只".format(count,x,y,z))
8         count = count + 1

    运行结果:

    第1种够买情况:鸡翁0只,鸡母25只,鸡雏75只
    第2种够买情况:鸡翁4只,鸡母18只,鸡雏78只
    第3种够买情况:鸡翁8只,鸡母11只,鸡雏81只
    第4种够买情况:鸡翁12只,鸡母4只,鸡雏84只

  注意点:切记算出的结果只能为整数且不能为0,这个不要忘记了

 

 

原文地址:http://www.cnblogs.com/noah0532/p/16810768.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性