PYTHON中百钱买百鸡问题
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PYTHON中百钱买百鸡问题
问题:
中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱买百鸡问题”:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,问翁、母、雏各几何?在PYTHON中编程实现将所有可能的方案输出。
问题分析:
根据题意设公鸡、母鸡和雏鸡分别为cock,hen和biddy,如果100钱全买公鸡,那么最多能买20只,所以cock的范围是大小等于0小于等于20;如果全买母鸡那么最多能买33只,所以hen的范围是大于等于0小于等于33;如果100钱全买小鸡,那么根据题意最多能买99只(小鸡的数量应小于100且是3的倍数)。
在确定了各种鸡的范围后进行穷举并判断,判断的条件有以下3种:(1)、所买的三种鸡的钱数总和为100;
(2)、所买的三种鸡的数量之和为100;
(3)、所买的小鸡的数量必须是3的倍数。
程序代码:
for cock in range(0,20+1): #鸡翁范围在0到20之间
for hen in range(0,33+1): #鸡母范围在0到33之间
for biddy in range(3,99+1): #鸡雏范围在3到99之间
if (5*cock+3*hen+biddy/3)==100:#判断钱数是否等于100
if (cock+hen+biddy)==100: #判断购买的鸡数是否等于100
if biddy%3==0: #判断鸡雏数是否能被3整除
print ("鸡翁:",cock,"鸡母:",hen,"鸡雏:",biddy) #输出程序运行结果:
鸡翁: 0 鸡母: 25 鸡雏: 75
鸡翁: 4 鸡母: 18 鸡雏: 78
鸡翁: 8 鸡母: 11 鸡雏: 81
鸡翁: 12 鸡母: 4 鸡雏: 84。