划算与不划算的问题(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
之前遗漏了这个问题~~~~,现在补充下。我觉得这里算平均是不太对的。建议算期望。而且类似的问题,已经有很多回答了,可以提问区搜索下。
00
相似问题