老师我这么理解对吗?
来源:8-13 划算还是不划算
星光荡开宇宙
2020-11-05
# coding: utf-8
import random
'''
一级石头
'''
l1_value = 0.75
l1_value_daimond = 8
'''
一级合成三级石头
'''
l1_to_l3 = 12
l1_to_l3_gold = 0.39
l1_to_l3_vit = 10
'''
三级合成四级石头
'''
l3_to_l4 = 16
l3_to_l4_gold = 0.897
l3_to_l4_vit = 10
l3_to_l4_rate = 0.4878
'''
四级合成六级石头
'''
l4_to_l6 = 12
l4_to_l6_gold = 19.75
l4_to_l6_vit = 10
'''
已知一颗六级石头750金,请问买划算还是自己做划算
一颗钻石diamond 卖 0.05金
一点体力vit 卖 1金
'''
gold = (l1_value + l1_value_daimond * 0.05) # 一颗一级石头的成本
def func_l1_to_l3(): # 一级石头合成三级石头的成本
result = l1_to_l3 * gold + l1_to_l3_gold + l1_to_l3_vit
return result
def func_l3_to_l4(): # 三级石头合成四级石头的成本
for i in range(1, 100):
result = (func_l1_to_l3() + l3_to_l4 * gold + l3_to_l4_gold + l3_to_l4_vit) * i
if round(random.random(), 4) > l3_to_l4_rate: # 使用随机数生成函数判断是否合成成功
pass
else:
break
return result
def func_l4_to_l6(): # 四级石头合成六级石头的成本
add = 0
n = 10
for i in range(n):
result = func_l3_to_l4() * l4_to_l6 + l4_to_l6_gold + l4_to_l6_vit
add += result
avr = int(add/n) # 算成功合成十次十六级宝石的平均数,当然n可以随便取
if avr > 750:
print(str(avr) + '> 750' + '不划算')
else:
print(str(avr) + '< 750' + '划算')
func_l4_to_l6()
三级石头合成四级石头的时候有一个条件就是0.4878这个合成概率,通过后面的计算只有一种情况是划算的就是一次成功合成六级石头成本是671,我后面算了合成功十次六级宝石的平均数都是远远大于市场价750,如果失败一次就不划算了,只有土怪才去合成。聪明人都是买现成的。哈哈
写回答
3回答
-
中海达公共资源
2021-09-14
你这错的太离谱了,我就假设3级合成4级概率为100%,合成6级都要4800金左右,所以这题肯定自己买划算,你这算法都不对
00 -
慕粉13875955798
2021-04-20
假设合成成功消耗a元,失败消耗b元,成功率为x,那么理论上合成1/x次将成功一次,在这1/x次合成里1次是成功的,((1/x)-1)次是失败的,所以理论上成功一次将消耗 a * 1 + b* (1/x - 1)元
012021-04-20 -
星光荡开宇宙
提问者
2020-11-05
还是有一点问题,因为四级宝石合成有概率,所以在四级合成六级时不应该是四级宝石直接乘以12应该是,四级宝石合成函数调用12次的和,然后再进行六级合成。
def func_l4_to_l6(): # 四级石头合成六级石头的成本 add = 0 n = 10 for i in range(n): for j in range(12): add += func_l3_to_l4() result = add + l4_to_l6_gold + l4_to_l6_vit add = 0 print(int(result))
这样之后我发现真划算不了,100个样本中都没有一个划算的,除非土怪,否则大家还是买现成的吧。
012020-11-05
相似问题