分赌本问题

问题描述

  假设A、B两个人赌博,假设每一局中每人获胜的概率是相同的,刚开始下的赌注均是100法郎,并且约定双方谁先获胜3局,谁就拿走所有的赌本,但是中途由于一些原因,不得不终止比赛,此时A胜2局,B胜1局,问此时赌本该怎么分配才均匀?
  注意:假设在赛点不会出现平局。

思路解析

  1. 假设继续赌下去,至多两局结束
  2. 若接下来的第四局A胜(1/2),则A获得所有赌注
  3. 若接下来的第四局B胜(1/2),则进行第五局,第五局中,A胜(1/2*1/2=1/4)才能获得所有赌注

python模拟

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
""" @author zhangbohan.dell@gmail.com
@function: 分赌本问题
@create 2018/9/27 11:00"""

import random

'''
:param n 赢钱所需要的局数
:param n1 第一个人已经赢得局数
:param n2 第二个人已经赢得局数
本程序中取n =3,n1 = 2,n2 = 1
'''


def Bookies(n, n1, n2):
for i in range(2 * n - n1 - n2 - 1):
D = random.randint(1, 2)
if D == 1:
n1 += 1
else:
n2 += 1
if n1 == n:
return 1
if n2 == n:
return 2

n = 10000
win = 0
for i in range(n):
if Bookies(3, 2, 1) == 1:
win += 1
print("A获得赢钱的可能为{}".format(float(win / n)))