2009年4月18日 星期六

Python PuLP 线性规划库求解“鸡兔同笼”问题

PuLP 是一个 Python 的线性规划库,使用起来相当的简单方便:
http://code.google.com/p/pulp-or/

“鸡兔同笼”是我国隋朝时期的数学著作《孙子算经》中的一个有趣而具有深远影响的题目:“今有雉兔同笼,上有三十五头,下有九十四足.问雉兔各几何.”

这里我们用 PuLP 来描述“鸡兔同笼”,设鸡的数量为 x,兔子的数量为 y,求解:

from pulp import *
prob = LpProblem("test", LpMinimize)
x = LpVariable("x", 0 , None, LpInteger)
y = LpVariable("y", 0 , None, LpInteger )

prob += x + y == 35
prob += 2 * x + 4 * y == 94

prob.solve(GLPK())

for v in prob.variables():
print v.name, "=", v.varValue

结果:
x = 23
y = 12

Have fun!

0 评论:

 

麦芽烦了 Powered By Blogger © 2009 Bombeli | Theme Design: ooruc