两个人玩抛硬币的游戏,谁先抛到正面就获胜。那么先抛的人获胜概率为()。两种思路

思路一:把A、B都抛硬币一次看成一局游戏。
情况1: A第一次抛正面 -> A胜 p= 1/2
情况2: A第一次抛反面、B抛正面 -> B胜 p= (1/2) * (1/2)=1/4
情况3: A第一次抛反面、B抛反面 -> 平局,进行下一局
P(A胜)/ P(B胜)= 2
P(A胜)+ P(B胜)= 1
所以可算出 P(A胜)=2/3
P(B胜)=1/3

思路二:计算A失败的总概率
首先我们会发现A抛硬币之后是不会失败的,只有当B抛到正面才代表A失败了。
第一次A抛硬币不会失败
第二次B抛到正面 A失败 概率1/4
第三次A抛硬币不会失败
第四次B抛到正面 A失败 概率1/4 * 1/4

所以有 P ( A 胜 ) = 1 − ∑ n = 1 ∞ ( 1 / 4 n ) = 2 / 3 P(A胜)=1-\sum_{n=1}^{\infty}(1/4^{n})=2/3 P(A)=1n=1(1/4n)=2/3

其中等比数列求和公式为
a 1 ( 1 − q n ) 1 − q \frac{a_{1}(1-q^{n})}{1-q} 1qa1(1qn)

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
如果走到17步的人获胜,可以使用一个类似于博弈论的方法来解决。我们可以逆向思考,在步数已经等于17的情况下,最后一步是由哪个家走的,如果是手走的,那么手胜利,否则后手胜利。 以下是一个使用递归算法实现的示例代码: ```python def who_wins(n, is_my_turn=True): ''' 判断在剩余步数为 n 的情况下,当前家是否必胜 ''' if n == 0: # 此时步数已经为 0,如果是当前家走的,则当前家必败 # 如果是对手走的,则当前家必胜 return not is_my_turn elif n == 1: # 如果剩余步数为 1,当前家必胜 return True elif n == 2: # 如果剩余步数为 2,当前家必胜 return True else: # 如果剩余步数大于 2,则分别计算当前家走 1 步和走 2 步的情况 if is_my_turn: # 如果当前家是手,只有在走 1 步或者走 2 步的情况下,对手都必败,当前家才必胜 return who_wins(n - 1, False) and who_wins(n - 2, False) else: # 如果当前家是后手,只要有一种情况对手必胜,当前家就必败 return who_wins(n - 1, True) or who_wins(n - 2, True) # 调用函数,判断手是否必胜 if who_wins(17): print("手必胜") else: print("后手必胜") ``` 这个代码实现比较简单,主要是用了递归的方法来判断当前家是否必胜,如果当前家是手,则只有在走 1 步或者走 2 步的情况下,对手都必败,当前家才必胜;如果当前家是后手,则只要有一种情况对手必胜,当前家就必败。最终,根据判断结果输出手或后手必胜的信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会写代码的孙悟空

赠人玫瑰 手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值