阿布单多123 发表于 2020-5-15 09:48:39

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

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

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

求从1人增加到1000人,不同人数时的最佳选车组合,

阿布单多123 发表于 2020-5-15 09:52:02

100人,中巴+小巴 4800 < 大巴 + 打车 = 5200

sunrise085 发表于 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))

March2615 发表于 2020-5-15 11:07:19

背包问题

阿布单多123 发表于 2020-5-15 14:09:21

非常感谢,总结一下思路:
1. 找最优方案, 大巴 人均费用最低,人多的时候,优选大巴
2. 找临界点,区别人多 与 人少的情况,
3. 细分人少时的优化方案

阿布单多123 发表于 2020-5-15 15:01:48

大神好,非常感谢 您的 回复,在这个可以用遍历 的方法实现吗?4种交通工具 不同组合,看是否满足 人数,在满足人数的请款下输出 价格最低值

阿布单多123 发表于 2020-5-15 15:02:25

sunrise085 发表于 2020-5-15 11:01


大神好,非常感谢 您的 回复,在这个可以用遍历 的方法实现吗?
4种交通工具 不同组合,
看是否满足 人数,
在满足人数的请款下输出 价格最低值

ghoob321 发表于 2020-5-17 10:10:31

可以用遍历的方法
页: [1]
查看完整版本: Python 1000学生春游选4中交通方案问题如何解?