鱼C论坛

 找回密码
 立即注册
查看: 984|回复: 7

[已解决]Python 1000学生春游选4中交通方案问题如何解?

[复制链接]
发表于 2020-5-15 09:48:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
Python 1000学生春游选4中交通方案问题如何解?
学校组织春游,共有1000人,

用四种运输方式运送,
1大巴车,最多运输80人,每辆要3000元,
2中巴车,最多运输60人,每辆要2600元,
3小巴车,最多运输40人,每辆 2200元,
4打车,每次1人,每辆220元

求从1人增加到1000人,不同人数时的最佳选车组合,
最佳答案
2020-5-15 11:01:33
num=int(input("请输入学生人数(1~1000):"))

lbus,mbus,sbus,taxi=0,0,0,0
if num>=102:
    lbus=(num-101)//80+1
temp=num-lbus*80
if temp in range(89,102):
    mbus=1
    sbus=1
    taxi=(temp-100 if temp-100>0 else 0)
elif temp in range(62,89):
    lbus+=1
    taxi=(temp-80 if temp-80>0 else 0)
elif temp in range(42,62):
    mbus=1
    taxi=(temp-60 if temp-60>0 else 0)
elif temp in range(11,42):
    sbus=1
    taxi=(temp-40 if temp-40>0 else 0)
else:
    taxi=temp
money=taxi*220+sbus*2200+mbus*2600+lbus*3000
print("大巴:%d,中巴:%d,小巴:%d,出租:%d,共%d元"%(lbus,mbus,sbus,taxi,money))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-5-15 09:52:02 | 显示全部楼层
100人,中巴+小巴 4800 < 大巴 + 打车 = 5200
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-15 11:01:33 | 显示全部楼层    本楼为最佳答案   
num=int(input("请输入学生人数(1~1000):"))

lbus,mbus,sbus,taxi=0,0,0,0
if num>=102:
    lbus=(num-101)//80+1
temp=num-lbus*80
if temp in range(89,102):
    mbus=1
    sbus=1
    taxi=(temp-100 if temp-100>0 else 0)
elif temp in range(62,89):
    lbus+=1
    taxi=(temp-80 if temp-80>0 else 0)
elif temp in range(42,62):
    mbus=1
    taxi=(temp-60 if temp-60>0 else 0)
elif temp in range(11,42):
    sbus=1
    taxi=(temp-40 if temp-40>0 else 0)
else:
    taxi=temp
money=taxi*220+sbus*2200+mbus*2600+lbus*3000
print("大巴:%d,中巴:%d,小巴:%d,出租:%d,共%d元"%(lbus,mbus,sbus,taxi,money))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-15 11:07:19 | 显示全部楼层
背包问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-15 14:09:21 | 显示全部楼层
非常感谢,总结一下思路:
1. 找最优方案, 大巴 人均费用最低,人多的时候,优选大巴
2. 找临界点,区别人多 与 人少的情况,
3. 细分人少时的优化方案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-15 15:01:48 | 显示全部楼层
大神好,非常感谢 您的 回复,在这个可以用遍历 的方法实现吗?4种交通工具 不同组合,看是否满足 人数,在满足人数的请款下输出 价格最低值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-15 15:02:25 | 显示全部楼层

大神好,非常感谢 您的 回复,在这个可以用遍历 的方法实现吗?
4种交通工具 不同组合,
看是否满足 人数,
在满足人数的请款下输出 价格最低值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-17 10:10:31 | 显示全部楼层
可以用遍历的方法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-21 06:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表