这是一个随想,,就是一个人,背着水,在沙漠中行走,一天假设喝8升水,
参加这个比赛,如果每个人能背的水,都不同,有人能带60升,有人能背120升。
一个规则是,只要早上醒来,水不够8升,则今天走的距离不算。
看看,谁走的路最远。
背的水越多,走路越慢,前几天走路就较少,每天必须休息。
也假设一个人能背100升,他第一天背着全部的水,只能走1km。第二天水少了8升,
走路就多了100/92 km 。
不考虑体力消耗,因为每天都休息 。
代码如下
# coding=utf-8
# 几个列表
print ('eee664442299866uuu')
def daluzi(aaa):
all={}
maxsum=[]
man_can=aaa
ka4r=int(aaa+1)
for kk in range(ka4r):
str1 ='laga'+str(kk)
pp=[]
#man_can=100.00
#人的负重前行能力为100,意思是,负重10升水一天能走10km
totolwater =kk
#每天喝8 升水
# 循环形成list
#todaykm
todaykm=0.00
dailydrunk =8
havewater = totolwater
while havewater>0:
#man_can-=3
havewater -=dailydrunk
if havewater<0:
#最后一天行走的路程不算
break
else:
todaykm = float( '%0.5f' %(man_can/(havewater+dailydrunk)) )
pp.append(todaykm)
#man_can-=3.6
#man_can -= (todaykm*0.8)
#print(pp)
#print(sum(pp))
maxsum.append(sum(pp))
all[str1]=pp
#print(all)
#print(max(maxsum))
findthebig=0.00
for keys in all:
value=all[keys]
kaba=sum(value)
if kaba>findthebig :
findthebig =kaba
nana=keys
print(nana)
#print(all[nana])
#print(findthebig)
return findthebig
#nayi=daluzi(99.00)
#print(nayi)
for i in range(60,120): # 人的能力不同,策略也不同
bb=i*1.000
dasa=daluzi(bb)
print(dasa)
由于时间紧,很多注释没有写,只是一个参考吧。
网友评论