老铁,你今天赢钱了吗?大数据分析博彩游戏的服务端算法。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了老铁,你今天赢钱了吗?大数据分析博彩游戏的服务端算法。相关的知识,希望对你有一定的参考价值。

背景是某天突然收到朋友的信息,说最近迷上了某款博彩游戏,类似于大街小巷的水果机,说我是IT人士,赶紧帮忙写个外挂大家赚点钱。

一开始我嗤之以鼻,我认为这种看脸的概率问题没必要浪费时间,但朋友说和一般的水果机不同,死缠烂打非让我研究下,于是只能勉强答应了。

根据链接下载了游戏,是客户端游戏,虽然也是水果机,但的确有点不同,小店里的水果机是1对1的关系,而这个是多对1,一个房间内有N个玩家同时玩,下面是这个水果机的大概玩法:

技术分享

其中8个选项就是我们下注的8个项,

总额:表示该游戏房间内例如有100个玩家,这100个玩家所有押注选项1的总额是多少,

倍率:例如我压了100分选项3,那么开奖开的是选项3,我就得到8000分。

 

 

总所周知庄家(游戏公司)肯定是稳赚不亏的,所以我们只能从别的玩家手中赚钱,下面开始截取封包并记录数据,冒泡递减排序:

选项后面括号内的数字是倍率,括号后面带小数的数字是该选项押注总额,单位是万。

技术分享

 

经过几天24小时不间断的抓取,我们有了一定数量的样本, 写个简单的统计算法开始分析:

技术分享

果然不出所料,庄家为了保障利益,尽量会选择总额低的开,实际上其他的可以不用看,就看乘以倍率之后的名次关于开奖的概率分布就行了,

于是我们再自动控制键盘鼠标,同时抓数据,因为下注总额是实时的,在开奖前一秒按照我们统计的概率去下注就行了,

假如这次倍率最低为4倍 ,那么我们可以押概率最高的4个,中奖率高达73%,

如果最低为6倍,那么我们可以押概率最高的6个,中奖率高达90%!而且即使开奖的是最低倍,我们也不会亏。

 

于是我就开着程序一直挂着,不断的中奖,分数也越来越高,抱着明天坐等收钱的心态就去睡觉了,挂一夜看看到底能赚多少。

。。。然而还是太天真了,第二天起来一看,分数原地踏步,立马看了下日志,原来如此,先让你赢点,然后就会输,输多了再让你赢,幅度控制在20%左右,也就是最多赢120%,就会让你输。

按照统计的客观开奖概率,为什么会出现这种情况呢,很不科学,我开始重新审视算法,也在思考是不是忽略了什么,直到无意中看到了日志中封包数据。

重点就是游戏房间内好像有几百人,好像很多人玩很多人赢钱的样子,说话的就那么三五个人,其他人不管输赢从不说话?一直24小时全部在线?不管任何时间段押注全是秒押?其实全是机器人!

也就是系统生成的玩家,他们的存在一方面是充门面吸引玩家,最重要的目的是帮助系统下注,混淆押注总额,所以截取封包数据保存的样本全是假的!

你根本无法获取真实玩家的押注总额,那么服务端就可以根据真实的下注情况来选择让少部分人赢,大部分人输,甚至可以根据不同的玩家发送不同的开奖结果。

核心思路应该是

int UserScore=User.Score;

……

if(UserScore*1.2>User.Score)

{

  必输!

}

 

老铁,悬崖勒马,回头是岸。

 

以上是关于老铁,你今天赢钱了吗?大数据分析博彩游戏的服务端算法。的主要内容,如果未能解决你的问题,请参考以下文章

今天,你精通Spring Cloud了吗?

今年你们赚到钱了吗?

今年你们赚到钱了吗?

灾备能力超强的大数据存储小天使——今天你用 Apache Cassandra 了吗?

博彩游戏(tyvj 1519)

老铁们,准备好迎接自动驾驶了吗?