代码展示
# _*_ coding: utf-8 _*_
# @Author : ******
# @Time : 2022/8/27 14:47
# @File : ProbabilisticCompensation.py
# @Project: TestCase
import numpy as np
class PC:
"""
状态图如下(这里无法插入图片,也只能通过文字描述了):
上次暴击:P
上次非暴击:1-P
上次暴击,本次暴击:P1
上次暴击,本次非暴击:1 - P1
上次非暴击,本次暴击:P2
上次非暴击,本次非暴击:1 - P2
为了使得整体的暴击概率不发生变化,则有如下约束:
P*P1 + (1-P)*P2 = P
存在2种设定:
A.P<=0.5时,上次暴击后,则本次暴击率下降50%
P1 = P - P / 2
通过约束条件可以求得P2
B.P>0.5时,上次非暴击后,则本次暴击率增加初始非暴击概率的50%
P2 = P + (1 - P) / 2
通过约束条件可以求得P1
"""
def __init__(self, p):
# 初始概率
self.p = p
# 概率补偿
self.p1, self.p2 = self.get_compensate()