作者 | 梁唐
大家好,我是梁唐。
最近比特币价格大跳水,多少炒币客爆仓,尤其是那些加了杠杆的更是倾家荡产。我就听说了身边一个因为借了巨额债务炒币血本无归最终自杀的case,这人刚结婚不久,老婆也才生了孩子,就发生了这样的悲剧,实在是令人唏嘘。
赌博这东西之所以害人,很大程度上源于一种“你以为你可以”的心态。多少人觉得自己是聪明人,看破了门道,找到了套路,想要搞一把大的,结果翻车,倾家荡产。关于赌博的诸多套路当中,最有名的应该是倍押法。
今天就和大家聊聊这个倍押法,看看它是不是那么神奇,可以稳赚不赔。
倍押法的原理很简单,设定一个初始筹码,赢了下注复位,输了就加倍,直到赢为止。
比如初始下100,输了之后就再下200,如果还输则下400,如果赢了,不但可以弥补之前输的300,还可以赢100。同样,如果再输就押800,也是可以回本并且再盈利100。理论上来说,在一个只有两种结果的游戏当中,只要一直押下去,总会有赢的时候。所以只要重复采用这个策略,就可以盈利。
我第一次看到倍押法是当年在天涯情感板块的一封神帖上,楼主从一个用倍押法混迹拉斯维加斯的黑人老哥身上学到了这个方法。我后来陆陆续续在其他的故事上看到了倍押法,说来说去内容大同小异,不外乎只要不贪心,每次盈利就收手就稳赚不赔。
我一直没把它当回事,因为只要学过概率论简单算一下就知道了。但后来居然还有BAT的同事找我聊起了赌博的策略,我才不得不重视起来,今天就和大家好好说说,倍押法到底靠不靠谱。
我们要做的事情很简单,就是写一个程序模拟倍押法来进行菠菜,看看倍押法是不是可以盈利。
首先,我们来简化菠菜里的输赢,简化成一个固定50%获胜的随机函数。其实在日常真实的菠菜游戏当中,闲家是没有50%胜率的。据说有人专门计算过各个游戏闲家的胜率,其中24点是最大的,拥有42%,某家乐最低,只有20%多。但我们这里为了简化模型,不妨假设胜率是五五开。
这个随机函数很好写, 我们就随机一个0到99的数,判断它是否大于等于50即可。
def win_or_lose():
return random.randint(0, 99) >= 50
然后就是main函数当中的部分,也很简单,也就是我们每次下注之后判断输赢,如果赢了就reset每次下注的金额,输了就翻倍下注。我们模拟进行10000轮游戏,然后观察一下最后的余额。
balance = 0
continuos_lose = 0
bet_base = 1
rounds = 10000
# 当前投注额
cur_bet = bet_base
for _ in range(rounds):
if win_or_lose():
balance += cur_bet
# 赢了reset投注额
cur_bet = bet_base
else:
balance -= cur_bet
# 输了翻倍投注
cur_bet *= 2
print(f'The balance: {balance}')
我们重复执行了几次,发现最终的余额都差不多,在5000上下。其实大家用期望也可以算得出来,采用这种策略每一把的期望是1/2,重复进行了一万轮,所以最终的余额应该就在5000上下浮动。
到这里是不是就可以得出结论了,倍押法稳赚不赔,立马可以上手尝试呢?
当然是不行的,因为这里面有一个重要的元素被忽略了,就是借债的额度。
之前输了一屁股还能回本的主要原因是能借到双倍的债,问题是每个人的信誉都是有上限的,再怎么倾家荡产也不可能搞到无限的钱。使用倍押法究竟会面临多大的负债呢?
这个也不难算,我们只需要保存一下中间最小的余额以及最多连续输的手数就可以了。
balance = 0
continuos_lose = 0
bet_base = 1
rounds = 10000
cur_bet = bet_base
maxi_lose = 0
mini_balance = 0
for _ in range(rounds):
if win_or_lose():
balance += cur_bet
cur_bet = bet_base
continuos_lose = 0
else:
balance -= cur_bet
cur_bet *= 2
continuos_lose += 1
# 记录最多连续lose的局数,以及最大负债
maxi_lose = max(maxi_lose, continuos_lose)
mini_balance = min(mini_balance, balance)
我们加上这两个量之后,结果就完全不一样了。
从上面的结果可以看到,最终的盈利还是比较稳定的,但是最大的负债值波动很大。底注一注的局,最大居然能负债五十多万。你能保证在输了50万的时候还能搞到一百万梭哈全部押上吗?如果还输了,你还能搞到两百万吗?算法会这么执行是因为算法没有思维,如果换成真人,有多少人有这个魄力呢?
并且我们再看下连续输的局数更可怕,在我们常理当中连续输五六把就已经是一个非常小概率的事件了,但是当我们进行一万局游戏的时候,连续输11手居然都是最好情况了。
由于连续输的手数以及最大负债相对比较难算,所以我们采用多次试验取均值的方式来逼近一下连续lose的手数以及最大负债的期望。
我们把刚才的代码主体封装到experiment
函数当中,然后重复进行1000次实验,计算这三个指标的均值。
def experiment():
balance = 0
continuos_lose = 0
bet_base = 1
rounds = 10000
cur_bet = bet_base
maxi_lose = 0
mini_balance = 0
for _ in range(rounds):
if win_or_lose():
balance += cur_bet
cur_bet = bet_base
continuos_lose = 0
else:
balance -= cur_bet
cur_bet *= 2
continuos_lose += 1
maxi_lose = max(maxi_lose, continuos_lose)
mini_balance = min(mini_balance, balance)
return balance, maxi_lose, mini_balance
if __name__ == '__main__':
rounds = 1000
balance, maxi_lose, mini_balance = 0, 0, 0
for _ in range(rounds):
b, ml, mb = experiment()
balance += b
maxi_lose += ml
mini_balance += mb
print(f'The balance: {balance / 1000}, maxi continuos lose: {maxi_lose / 1000}, min balance: {mini_balance / 1000}')
最终得到的结果如下:
我们可以看到最多连续lose的手数这个指标以及稳定下来了,大概在12.6左右。但是最大负债这个值波动得还是很厉害,但也可以看出一般都在两万以上。
到这里还没完,因为在真实的环境中,赢了也是需要交税率的,也就是抽水。也就是从赢家那里获得2%或者是3%的抽成,大到澳门、拉斯维加斯的赌坊,小到小区门口的麻将馆几乎都有这样的操作。
那么当我们把税率这个变量加上之后,又会发生什么样的变化呢?
我们只需要在balance += cur_bet这一行做一个简单的改动,将当前下注额乘上一个0.97的收益率即可。另外我们再加上了income这个变量,来看看10000局游戏下来,赌坊可以获得多少收益。
def experiment():
balance = 0
continuos_lose = 0
bet_base = 1
rounds = 10000
cur_bet = bet_base
maxi_lose = 0
mini_balance = 0
income = 0
for _ in range(rounds):
if win_or_lose():
balance += cur_bet * 0.97
income += cur_bet * 0.03
cur_bet = bet_base
continuos_lose = 0
else:
balance -= cur_bet
cur_bet *= 2
continuos_lose += 1
maxi_lose = max(maxi_lose, continuos_lose)
mini_balance = min(mini_balance, balance)
return balance, maxi_lose, mini_balance, income
我们可以看到,在最大负债的期望波动差不多的情况下,收入的期望有了一个巨大的折损,从5000直接降到了3000左右。另外,赌坊的收入则依然稳定在两千左右。也就是说,一万局游戏过后,一个赌客平均要向赌坊支付2000底注左右的金额。算一下期望,每一局的收入期望是0.2,要知道我们采用倍押法,冒这么大的风险,每一手的收入期望也才不过0.5而已。
到这里还没完,我们再考虑另外一个变量,就是每一局最大投注上限,也就是常说的封顶。封顶的存在也是倍押法一个巨大的bug,我们不妨来看看在有封顶的情况下,倍押法的表现如何。
我靠,收入的期望直接变成了负值,从正收益变成了负收益了。可见封顶的存在,看似是一个很正常的设定,让赌客每一把少输一点,但实际上直接断送了倍押法的后路。一个期望是负值的游戏是没有任何参与意义的,因为长期来看必赔无疑。
但实际上只要是赌坊中和庄对赌的游戏,没有一个玩家的期望不是负值。这也是为什么,很多澳门的赌坊根本不用出千也可以日进斗金的原因。
最后分享一个从大号九边
处看到的一个小故事,说是福建有著名的斩龙团。就是一群人集资,然后去澳门的赌坊玩倍押法赚钱。一开始的确很顺利通杀四方,赚了很多很多钱。但后来有一次遇到了黑天鹅,连输了32手,直接从腰缠万贯变成倾家荡产。戒赌吧里还有很多小哥在线上玩倍押法,结果下重注的时候,庄家直接卷钱跑路。
说了这么多,做了这么多实验,其实只想说明一点:
十赌九输,不赌为盈。大家赚钱不容易,好好珍惜。