我国古代数学家张丘建在《算经》一书中曾提出过著名的 “百钱买百鸡” 问题,该问题叙述如下:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何?
百钱买百鸡的问题算是一套非常经典的不定方程的问题,题目很简单:公鸡每只5元,母鸡每只3元,小鸡3只一元,现要求用100元钱买100只鸡(三种类型的鸡都要买),问公鸡、母鸡、小鸡各买几只?
代码如下:
一、
import time
# 开始时间
start = time.time()
# 外层循环控制公鸡数量取值范围:0~20
for x in range(0, 21):
# 内层循环控制母鸡数量取值范围:0~33
for y in range(0, 34):
# 嵌套内层循环控制小鸡数量取值范围:0~100
for z in range(0, 101):
# 条件判断同时满足 5x+3y+ z/3== 100 和 x + y + z == 100
if (x * 5 + y * 3 + z / 3 == 100) and (x + y + z == 100):
print("公鸡有%d只\t母鸡有%d只\t小鸡有%d只" % (x, y, z))
# 结束时间
end = time.time()
print("算法总耗时:", end - start)
二、
import time
# 开始时间
start = time.time()
for x in range(0, 101, 5): # 公鸡
for y in range(3, 101 - x, 3): # 母鸡
z = 100 - x - y # 小鸡
if (x // 5 + y // 3 + z * 3 == 100) and (x + y + z == 100):
print("公鸡有%d只\t母鸡有%d只\t小鸡有%d只" % (x // 5, y // 3, z * 3))
# 结束时间
end = time.time()
print("算法总耗时:", end - start)