
最近自己在琢磨一些智能合约,看Dapp的时候找到了一个很直白的BC游戏,和我曾经的想法如出一辙,很有意思,看完这篇文章我觉得对你是有帮助的。
游戏规则1. 可以选择1~99中的任意一个数字N,中奖概率=N%
2. 获胜的每笔交易抽取金额的0.15%为手续费M%
3. 中奖的金额=投入的金额 ×(100/N)×(1-M%)。
举个例子:选择的数字是30,那么从1~100中取随机数在1~30之间你获胜,获胜的概率为30%,如果投入的是30元,那么赢的时候可以赢得30 ×(100/30)×(1-0.15%)=99.75元,输就输30元
不知道我有没有把规则说清楚,清楚规则这非常重要。
为了让你们更清楚规则,我模拟了一个,上方链接,大家可以先来玩玩看。
一开始看到这个平台的时候我就在思考,BC的平台是不可能做慈善的,对平台来说必定是一个稳赢的方式才会开展,我猜想在前端展示的概率和实际的概率是有悬殊的,实际概率会比看到的少至少一个百分点,在概率面前那么这件事就是稳赚不赔的买卖。
我去查了他的合约,在一个没有听说过的TT链上,这个合约没有做效验,也就是说只能看到2进制的机器码,看不到solidity的合约。但是区块链讲的就是一个共识🐶,我姑且相信他的概率都是真的。
这个网站需要一种代币,名叫TT,我买了100块钱的TT来做测试,得到了660个TT。
为了赢,我想到了一种策略(暂且不考虑手续费),我以概率50%来玩,就是N=50。
- 第一次投入1,那么我就有50%的几率赢1或者输1,赢了我继续投入1,输了继续下一条
- 第二次投入1×2=2,那么我有50%的几率赢(2-上一把输的1)=1或者输(2+上一把输的1)=3。赢了又回到1,输了下一条
- 第三次投入1×2×2=4,同理50%可以赢1或者总共输7
- 第n次投入2^n,赢了可以得到1,输了会输Sn=(1-2^n)/(1-2) =2^n-1
况且还有手续费,每次翻两倍只为了赢1,那这样绝对是亏的。
改变下策略,我还是以1来进行购买,每次输了我不以2倍购买,而以3倍继续购买,用下表进行分析一下:
次数 | 1 | 2 | 3 | 4 | 5 | 6 |
金额 | 1 | 3 | 9 | 27 | 81 | 243 |
如果赢 | 1 | 2 | 5 | 14 | 41 | 122 |
如果输 | 1 | 4 | 13 | 40 | 121 | 364 |
如表所示,如果我连输2次,第3次赢的时候这3次我一共可以赢5;如果我连输4次第5次赢的时候我这5次一共可以赢41,我买的660个TT只能支持我连输5次且第6次要赢,如果连输6次那么我不够如此翻倍第7次的费用。所以我又给策略加了个规则:假如我连输了6次那么又重头从金额为1开始;
这个时候我在想,连输6次的概率我可以算出来呀,很简单就是 0.5^6 = 0.015625,约等于也就是百分之1.56。应该来说是比较难输的
确确实实,简单玩了下就很轻松地让我从660一路赢到了1040。
这就让我非常费解,我这么轻易就赢了?这么轻易就赢了?这么轻易就赢了?
如果我是庄家,那么这一定是玩家必输的局啊!
不科学不科学。
事后你才明白从这里开始,这就是庄家送你的必输局

所以呢,我给自己归结于运气好,要想真的了解具体的情况,还是要算出连续输6次之前能获得总价值的期望值。看这个期望值是否大于364,如果大于364的话玩家就是稳赢,如果等于364就是概率相同,小于364就是玩家稳输,这很好理解吧,奈何这个数学水平确实不行,并不会算这个期望😂
俗话说写代码的要什么计算能力🐶?,直接上代码来模拟个一亿次不就完了,来,贴上我写的测试代码的截图。

这是执行了一亿次的结果,可以看到亏的钱是和手续费是几乎相同的,所以已经可以很清楚的知道这是一个玩家必输的游戏。庄家赢的钱就是手续费,概率是不会因为策略而改变的,还是50%,只有手续费是概率外唯一的外部因素;
但是这里有个很有趣的地方,可以看到上表,“取得单笔最大亏损的次数”为792677次,很容易算出概率是792677/100000000≈0.79%,也就是说连续6次全输的概率,并不是我们之前想的0.5^6≈1.56%;,比之前算的概率要低很多,但也不是一半,比如我再来一亿次看看

确实是在0.79%左右,不是我们算出来的一半,想请教各位数学好概率论学得好的博友可以告诉我一下这个概率是怎么来的,求助!(插一句嘴,再次验证了输的钱和手续费是几乎相同的)
哎,看到这里,会不会有人这么想,如果我的钱足够多,不设置亏损阈值,那么这样翻倍下去不就是必胜?当然,理论是这样的,我们来试一下,就简单的尝试十万次看下结果

看到了么,模拟了一下,你起码要有本金六百三十多万才接得住,并且谁都不能保证稳赢。如果来个一亿次你猜猜单纯凭概率会需要你单笔的本金是多少呢,模拟了一下,这一亿次中输的最多的一次输了2541865828329(两万五千多亿!!!),这是连续输28次的结果,你还相信你能有足够多的钱么?马云都没有,在足够大的次数下,出现连续输28次就是一个必然事件,这很有可能就是你想All in身家的时候遇到的局,相信我,你朋友墨菲是这么对你说的!
在写完了这篇日志之后我又去玩了一下,我已经知道这是玩家必输的局了,想继续验证一下。

这是才开始玩不多久就遇到的,就问这个时候你会上头么,一开始就连输6把,你心里会有一种直觉或玄学,感觉下一次第7次一定能赢,我在那瞬间也相信了这个玄学,可惜我钱已经不够,又直接上了500,结果如何?恭喜你回答正确:输了。直接输到只剩240。这个时候我很有点想梭哈了,但想着我不是赌徒呀,又开始我之前的策略,凭运气好又玩到了660,收手,不玩了。
是吧,久赌必输!赌博会让人失去理智,我明明知道概率,还是博了一把500,输到只剩240。哪怕后面又玩回了660保本了但还是觉得损失了,因为之前赢到过1000,这样的情况你很有可能还继续赌,或者某天之后继续赌,所以我总结了下面两点
① 在你初次进入一个赌博的时候,你是很有可能尝到甜头的
② 天下没有白吃的午餐,哪怕就是单纯的概率,加上一点点手续费,也算出来告诉你这是必输的,不存在任何策略,只是时间快慢罢了,所以千万不要赌!所以千万不要赌!所以千万不要赌!
这还是在假定BC平台的概率是公平公正公开的情况下做的测试,假如并不是呢?那就请君入瓮了
伍子蛇
再引用一句经济学的话经济学有这么一句话:“沉没成本不是成本,成本是可以收回的,但沉没成本不可以”,比如我们看电影,坐在电影院十五分钟就觉得电影不好看,而这时候最适合的方法就是马上离开,因为买电影票的钱已经沉没了,不再是成本。和这个游戏类似,你连输3局,如果你想着一定要翻本,因为已经付出了很多,但事实上这些输了的钱是无法收回的,等着你的很可能是全部输完。
下面附上我自己写的测试代码地址:
从博弈论角度讲,这东西涉及方面太多了,尤其是心理学,没有强大的心理,是接不住下一盘的
是的,在娱乐范畴可以玩玩,输赢心起来输就是时间问题
优秀了
不优秀,概率论没学好,只能用蠢办法😂