编写python代码来计算递归公式
在游戏中,每回合由骰子的掷骰组成,当骰子为偶数时,玩家E得一分,当骰子为奇数时,玩家O得一分。第一个累积7分的玩家赢得奖金。假设骰子是公平的,游戏中断,E领先4−2.编写Python 3代码来计算递归公式,以确定在上述情况下E得到的货币分数,其中编写python代码来计算递归公式,python,Python,在游戏中,每回合由骰子的掷骰组成,当骰子为偶数时,玩家E得一分,当骰子为奇数时,玩家O得一分。第一个累积7分的玩家赢得奖金。假设骰子是公平的,游戏中断,E领先4−2.编写Python 3代码来计算递归公式,以确定在上述情况下E得到的货币分数,其中p=0.5、E=4、o=2和m=7。写下E的比例 从给出的问题中,我们可以得出p=0.5,m=7,e=4,o=2。假设A是事件玩家E获胜,其中m-E=3轮获胜,B是事件玩家O获胜m-O=5轮获胜P(A,B)=P.P(A-1,B)+(1-P)P(A,B-1
p=0.5、E=4、o=2和m=7
。写下E的比例
从给出的问题中,我们可以得出p=0.5,m=7,e=4,o=2
。假设A是事件玩家E获胜,其中m-E=3
轮获胜,B是事件玩家O获胜m-O=5
轮获胜<代码>P(A,B)=P.P(A-1,B)+(1-P)P(A,B-1)所有正整数k的边界P(0,k)=1,P(k,0)=0
。因此,一般的递归公式将是P(m-e,m-o)=P.P(m-e-1,m-o)+(1-P)P(m-e,m-o-1)$,用$P,m,e,o表示
但是,我不确定如何将我导出的这个数学公式转换为Python代码?对于这个问题,您并不需要递归。你想知道在你得到5次赔率之前,得到3次均等的概率是多少。这意味着我们需要在接下来的3+5-1=7次尝试中至少获得3个偶数的概率(因为如果你只获得2个偶数,你将获得5个赔率,O将获胜)
编写一个非递归函数,使用所有参数(p、e、o、m),以这种方式简单地计算所需的数量,要容易得多。如果骰子不公平,您还可以设置获胜方的概率:
from itertools import permutations
def combos(win, avail):
array = [1]*win + [0]*(avail-win)
return len(set(permutations(array)))
def win_probability(p_winner, winner_score, loser_score, max_score):
winner_needs = max_score - winner_score
loser_needs = max_score - loser_score
available_rolls = winner_needs + loser_needs - 1
prob = 0
for winner_rolls in range(winner_needs, available_rolls + 1):
prob += combos(winner_rolls, available_rolls) \
* p_winner ** winner_rolls \
* (1 - p_winner) ** (available_rolls - winner_rolls)
return prob
print(win_probability(.5,4,2,7))
'''
Out:
0.7734375
'''
你知道如何用Python进行递归吗?也就是说,如何编写递归函数?