2018-05-09

2018-05-09  本文已影响0人  木马音响积木

这是一个随想,,就是一个人,背着水,在沙漠中行走,一天假设喝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)

由于时间紧,很多注释没有写,只是一个参考吧。

上一篇下一篇

猜你喜欢

热点阅读