Chinaunix首页 | 论坛 | 博客
  • 博客访问: 45041
  • 博文数量: 6
  • 博客积分: 202
  • 博客等级: 入伍新兵
  • 技术积分: 90
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-15 16:52
文章分类

全部博文(6)

文章存档

2013年(1)

2011年(5)

我的朋友

分类: Python/Ruby

2011-06-13 15:32:57

中国古代数学家张丘建在他的《算经》中提出了著名的“百钱买百鸡问题”:
鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?

  1. for x in range(0, 20):
  2.     for y in range(0, 33):
  3.         if x*5 + y*3 + (100-x-y)/3 == 100:
  4.             print(x, y, 100-x-y)


结果:
0 25 75
4 18 78
8 11 81
12 4 84

很少用Python,感觉不错,呵呵。
以后试着用Python做快速原型开发。

后记:
看了别人的文章,说本题目有O(n)解法,O(n^2)解法,O(n^3)解法,上面的显然是O(n^2)解法。
O(n^3)解法如下:

  1. for x in range(0, 20):
  2.     for y in range(0, 33):
  3.         for z in range(0, 100):
  4.             if (x+y+z == 100) and (5*x+3*y+z/3 == 100):
  5.                 print(x, y, z)

O(n)解法如下:

  1. for x in range(0,20):
  2.     if (300+3*x) % 4 == 0 and 100-x-(300+3*x)/4 >= 0 and (300+3*x)/4 >= 0:
  3.         print(x, int(100-x-(300+3*x)/4), int((300+3*x)/4))
阅读(7783) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~