1 问题 中国古代数学家张丘建在他的《算经》中提出一个著名的“百钱百鸡问题”:一只公鸡值5钱,一只母鸡值3钱,三只小鸡值一钱,现在要用百钱买百鸡,请问公鸡、母鸡、小鸡各多少只? 2 方法 用百钱如果只买公鸡,最多可以买20只,题目要求买100只鸡,所以公鸡的数量一定在0~20之间。同理可知,母鸡的数量在0~33之间。将公鸡、母鸡和小鸡分别用cock、hen、chicken表示,则cock+hen+chicken=100。则百钱百鸡问题就可以转化成解不定式方程组: 方程1:cock + hen + chicken = 100 方程2:cock * 5 + hen * 3 + chicken/3 = 100 写出方程后运用条件语句和循环语句将其方程转化为python代码来解决这个数学问题。 代码清单 1 # coding:utf8 cock = 0 # cock表示公鸡,hen表示母鸡,chicken表示小鸡 while cock <= 20: hen = 0 while hen <=33: chicken = 100 - cock - hen if cock * 5 + hen * 3 + chicken/3 == 100: print("公鸡 ={},母鸡 ={},小鸡 ={}\n".format(cock,hen,chicken)) hen += 1 cock +=1 for cock in range(0, 21): # 外层循环控制公鸡数量取值范围0~20 for hen in range(0, 34): # 内层循环控制母鸡数量取值范围0~33 for chicken in range(0, 101): # 内层循环控制小鸡数量取值范围0~100 if (cock * 5 + hen * 3 + chicken/3 == 100) and (cock + hen + chicken == 100): print("公鸡 =%2d,母鸡 =%2d,小鸡 =%2d\n" %(cock, hen, chicken)) |
3 结语 这是一个数学问题,将数学问题运用数学思维将其转换为数学方程公式,最后运用所学python知识变成程序语言,通过python语言解决此类问题可以大大减少工作量,但本次方法还存在许多不足,之后还可以优化程序,不断完善该程序。
|