【发布时间】:2021-10-21 04:36:25
【问题描述】:
我正在检查一个轮盘赌 python 场景。但是,我总是赢,我无法弄清楚我的算法中缺少什么。
这个概念是,我从 bet = 1 on even 开始。如果我输了,我会加倍赌注,直到我赢。如果我赢了,我就回去下注 = 1
我编写了一个简单的 python 脚本,其中 randint 从(-1 到 36)、-1 和 0 用于“双零”和“零”。我在一个 while 循环中运行了这个模拟,直到 1000 次,几乎所有时候,我最终得到的数量都比我开始的要多。我可以使用随机数生成器 randint 来模拟轮盘赌吗?
j = 0
k = 1
while (k<1000): # simulate for 1000 times
bet = 1
bank = 1024
for i in range (1, 100): # Placing 10000 bets
num = random.randint(-1, 36)
if num == 0 or num == -1:
bank = bank - bet
bet = 2*bet
elif(num % 2) == 0:# betting on even numbers
#print("{0} is Even".format(num))
bank = bank + bet
bet = 1
else:
#print("{0} is Odd".format(num))
bank = bank - bet
bet = 2 * bet
if bank<0:
break
if bank<1024:
j = j+1 # Count how many times money is lost
k = k+1
print ('Number of times money lost is', j)
【问题讨论】:
-
这就是赌场有赌桌限制的原因。如果您被允许无限制下注,那么是的,您最终总是会赢。但是在你赢之前,你不能继续加倍你的赌注。你最终会输。 en.wikipedia.org/wiki/Martingale_(betting_system)
-
同样在赌场轮盘赌中,您的赌注为零,既不是红色也不是黑色,这会将您的机会降低到 50% 以下。一些赌场也有双零,只是为了降低您获胜的几率。
标签: python probability