各位老铁,老师,帮忙看下我的这个是不是有问题呀,我咋总是觉得我的概率那部分不对呀。
来源:8-13 划算还是不划算
石小咚丶
2018-08-01
# -*- coding:utf-8 -*-
__author__ = 'Swd'
__date__ = '2018/8/1 21:41'
"""
购买1级石头
"""
l1_value = 0.75 # 购买1颗1级石头消耗0.75金
l1_value_diamond = 8 # 购买1颗1级石头消耗8点体力
"""
1级石头合成3级石头
"""
l1_to_l3 = 13 # 1颗1级石头合成为1颗3级石头需要消耗13颗1级石头
l1_to_l3_gold = 0.39 # 1颗1级石头合成为1颗3级石头需要消耗0.39金
l1_to_l3_vit = 10 # 1颗1级石头合成为1颗3级石头需要消耗10点体力
"""
3级石头合成4级石头
"""
l3_to_l4 = 16 # 1颗3级石头合成1颗4级石头需要消耗1颗3级石头以及16颗1级石头
l3_to_l4_gold = 0.897 # 1颗3级石头合成1颗4级石头需要消耗0.897金
l3_to_l4_vit = 10 # 1颗3级石头合成1颗4级石头需要消耗10点体力,合成失败不扣除体力
l3_to_l4_rate = 0.4878 # 1颗3级石头合成1颗4级石头成功率只有0.4878,但是不消耗体力
"""
4级石头合成6级石头
"""
l4_to_l6 = 12 # 1颗4级石头合成1颗6级石头需要消耗12颗4级石头,成功率为1
l4_to_l6_gold = 19.75 # 1颗4级石头合成1颗6级石头需要消耗19.75金
l4_to_l6_vit = 10 # 1颗4级石头合成1颗6级石头需要消耗10点体力
"""
已知1颗6级石头市场价为750金,请问是自己合成石头划算还是购买划算
其他因素:
1颗钻石(diamond)可以卖出0.05金
1点体力(vit)可以卖出1金
"""
import random
def l1tol3(l3=0, l4=0, gold=0):
gold += ((l1_to_l3 * l1_value) + (l1_to_l3 * l1_value_diamond * 0.05) + (l1_to_l3_vit * 1))
gold = round(gold, 3)
l3 += 1
print("已经成功合成3级石头~")
print("现在前往合成4级石头")
l3tol4(l3, l4, gold)
def l3tol4(l3, l4, gold):
if l3 > 0:
gold += ((l3_to_l4 * l1_value) + (l3_to_l4 * l1_value_diamond * 0.05))
gold = round(gold, 3)
rate = random.random()
if rate > l3_to_l4_rate:
gold += (l3_to_l4_vit * 1)
gold = round(gold, 3)
l4 += 1
l3 -= 1
print("恭喜合成四级石头~")
if l4 < 12:
print("当前4级石头数量为:" + str(l4) + ",还不足以合成6级石头,请继续制作。")
l1tol3(l3, l4, gold)
else:
print("当前4级石头已经拥有12块,可以合成6级石头了~")
print("制作16块4级石头一共消费:" + str(gold) + "金")
l4tol6(l4, gold)
else:
l3 -= 1
print("合成失败,需要重新制作3级石头")
l1tol3(l3, l4, gold)
def l4tol6(l4, gold):
if l4 >= 12:
gold += (l4_to_l6_gold + l4_to_l6_vit)
gold = round(gold, 3)
print("恭喜您已经成功合成了6级石头,共消费:" + str(gold) + "金~")
if gold >= 750:
print("得出结果,自己合成石头是赔钱的~")
else:
print("得出结果,自己合成石头是赚钱的~")
return
if __name__ == "__main__":
l1tol3()写回答
2回答
-
算的结果是多少,可以 说一下
042018-08-02 -
慕慕1312781
2018-08-24
老师要求的做的是个预期,不是动态的生成结果(我也是做的动态的生成结果),你的代码我浏览一下,要做动态的话,没有循环肯定是不对的。如果做预期也就是得到唯一结果,(不需要循环)把损耗除以概率就可以了.
10
相似问题