划算与不划算的问题(906)?

来源:8-13 划算还是不划算

胖虎兄

2018-10-12

已知, 一颗6级石头的市场售价为750金币,请问是自己合成石头划算还是直接购买划算,

其他数据:
1颗钻石diamond售价 0.05金币
1点体力vit 售价 1金币

#购买一级石头
l1_value = 0.75 #1级石头消耗0.75金币
l1_value_diamond = 8 #购买1颗1级石头同时还需要消耗8颗钻石
diamond_money=0.05 #一颗钻石的售价
#一级合成三级石头
l1_to_l3 = 12 #1级石头合成三级石头 需要消耗12颗1级石头+1一个一级石头
l1_to_l3_gold = 0.39 #消耗0.39金币
l1_to_l3_vit=10 # 需要消耗 10点体力

#3级合成4级
l3_to_l4 = 16 #3级石头合成4级石头 需要消耗16颗1级石头+一个三级石头
l3_to_l4_gold = 0.897 #三级石头合成一颗四级石头需要消耗0.0.897金币
l1_to_l3_vit= 10 # 需要消耗 10点体力
l3_to_l4_rate= 0.4878 #3级石头变成1颗四级石头,成功概率只有0.4878 执行1万次3级合成四级, 才会得出,然后取平均数
#如果失败,则金币和16颗1级石头消失,不消耗体力
#4级合成6级石头
l4_to_l6 = 12 #4级石头合成6级石头,需要消耗12颗4级石头
l4_to_l6_gold = 19.75 #消耗19.75金币
l4_to_l6_vit=10 # 需要消耗 10点体力

#一颗一级石头的价值
def getl1(l1_value_param=0.75,l1_value_diamond_param=8,diamond_money_param=0.05):

    return l1_value_param+(l1_value_diamond_param*diamond_money_param)
    
#一颗三级石头的价值
def getl3(l1_to_l3_param=12,l1_to_l3_gold_param=0.39,l1_to_l3_vit_param=10):
    
    return  getl1()*(l1_to_l3_param+1)+l1_to_l3_gold_param+l1_to_l3_vit_param


#平均三级石头合成一个四级石头的价值
def getl4(l3_to_l4_param=16,l3_to_l4_gold_param=0.897,l1_to_l3_vit_param=10,l3_to_l4_rate_param=0.4878):

 
    faild_money=succeed_money=succeed_number=0
   

    for x in range(0,10000):
        if x<=(10000*l3_to_l4_rate_param):# 如果小于则是失败的金币损耗
          
           faild_money+= (getl1()*l3_to_l4_param)+l3_to_l4_gold_param
        else:  #成功的金币损耗
             succeed_number+=1
             succeed_money += (getl1()*l3_to_l4_param)+getl3()+l3_to_l4_gold_param+l1_to_l3_vit_param


    
    # 使用成功的损耗金币和失败的损耗金币,加起来就是一万次的结果,再除以成功的结果就是每一个成功平均所需要的金币
        # println('faild_money : '+str(faild_money)+'   succeed_money :'+str(succeed_money)

    return (succeed_money+faild_money)/succeed_number
   
 

  #四级石头合成六级石头的价值
def getl6(l4_to_l6_param=12,l4_to_l6_gold=19.75,l4_to_l6_vit_param=10):
    return (getl4()*l4_to_l6_param)+l4_to_l6_gold+l4_to_l6_vit_param

def run():
    
    money=getl6()
    print(str(round(money, 3)))
    if money>750.0:
        print('直接购买划算')
    else:
         print('自己合成石头划算')

    
    
run()

result:
906.015
直接购买划算

但是最后得出的结果是这样, 不是914 ,请老师指正。

写回答

1回答

7七月

2019-02-17

之前遗漏了这个问题~~~~,现在补充下。我觉得这里算平均是不太对的。建议算期望。而且类似的问题,已经有很多回答了,可以提问区搜索下。

0
0

Python3.8系统入门+进阶 (程序员必备第二语言)

语法精讲/配套练习+思考题/原生爬虫实战

14447 学习 · 4438 问题

查看课程