从世界杯竞猜骗局谈二分法

2018 年 6 月 13 日 码农翻身


作者:寒食君


四年一度的足球盛典——世界杯即将在本月14号响起号角,32路豪门跃跃欲试。


世界杯的影响范围已经不仅仅局限于球迷之间,更是辐射了以球场为中心的一大片商业活动,其中之一就是赌球。


世界杯鸣锣开哨,想必各大博彩网站早已恭候多时,同时各大天台上也开始预订站席。


这是一场球迷的狂欢,同时也是骗子的节日。今天来聊一聊一个著名的经典骗局。


小刘是一名铁杆球迷,同时也是博彩爱好者。2014年小组赛期间,他凭着自己的感觉参与了多次投注,都是小亏小赚。他看着网上各路大神赚得盆满钵满,心里很是痒痒,凭什么大家都看了这么些年球,有的人能如此顺风顺水,难道真的是有内幕吗?


16进8的八分之一决赛就要开始了,小刘突然收到一份匿名邮件,上面赫然写着自己有内幕消息,可以预测比赛的胜负,为了证实自己的预测能力,将免费发送4场比赛的预测结果,下面一场哥伦比亚踢乌拉圭,哥伦比亚准赢。


小刘觉得完全就是无稽之谈,我苏神苏亚雷斯岂是浪得虚名?随后不屑地点击了删除键。


神奇的是那场比赛哥伦比亚真的以2:0大胜乌拉圭。小刘一边吐槽着一边想起了前几天的邮件,觉得这件事好像有点蹊跷。不过仅仅是一场比赛而已,猜对的概率有50%,邮件可能是蒙对的吧!


过了几天小刘又收到几份邮件,成功地预测了荷兰战胜墨西哥,法国战胜尼日利亚,阿根廷战胜瑞士, 这4场比赛每次都预测正确 !


这下子小刘坐不住了! 这怎么可能?! 这个神秘邮件的背后一定有内幕消息!


四分之一决赛第一场,德国和法国之战打响之前,小刘又收到了邮件,这次邮件里断定德国获胜,并声明这是最后一次免费预测,想要得知后续的胜负情况,需要汇款一万元或者支付若干比特币。


小刘这次大胆了一些,他押宝2000元在德国队身上,那场比赛十分紧张,但小刘心里居然多了一丝稳健。90分钟的胶着之后,德国队获胜。小刘赚到了10000元。


金钱使他彻底信服了,赌徒心态冲昏了他的理智,他毫不犹豫地汇款一万给邮件里的账户。


四分之一决赛一共四场,“神秘邮件”全部猜中,小刘不但将成本全部收回,还净赚近10万。


但后来事情的发展就不像他想象的那样了,半决赛中,小刘将自己的全部身家按照邮件提示押在巴西身上,结果德国7:1豪取巴西。



在去天台的路上,小刘还是想不通,为什么会这样呢?


骗子其实只用到了一个最简单的二分法思想。


(点击看大图)


假设有50万真球迷(已经很保守了,伪球迷排除哈哈),1/8决赛有8场,1/4决赛有4场,半决赛有2场,决赛有1场。


  1. 1/8决赛有8场,不必每场都发,选择其中比较热门的4场,最终将会有31250(5000000/16)人收到四次完全正确的邮件,而他们也即将成为你的潜在付费用户。


  2. 1/4决赛第一场提供最后一次免费预测,并开始提及收费。此时可以在邮件中提供主流博彩网站的当前赔率,刺激用户欲望。最终将会剩下15625名潜在付费用户。


  3. 经过5次的洗脑,相信会有很多“小刘”甘愿为此掏钱。


本文的目的是为了预防诈骗,不支持任何形式的诈骗行为,在这些高利润的同时,中国法律请务必了解一下!


下面来写一写代码实现一下这种二分算法。


这是一种最典型的二分查找,在一个数组中查找一个数值是否存在。时间复杂度为O(logN)


数组长度

顺序查找次数O(N)

二分查找次数O(logN)

100

100

7

40亿

40亿

32


Python实现


下面就上面的骗局,做一个简单的实现:

 1#假设这个函数用来筛选用户
2def filter(users,team_name):
3    filter_users={}
4    start = min(users.keys())
5    end = max(users.keys())
6    for i in range(start,end):
7        if users[i]==team_name:
8            temp_user={}
9            temp_user[i]=users[i]
10            filter_users.update(temp_user)
11    return filter_users
12
13#假设这个函数发邮件
14def send_email(user,email_content):
15    start=min(user.keys())
16    end=max(user.keys())
17    flag=(start+end)/2
18    for i in range(start,end):
19        if i<flag:
20            user[i]+=email_content[0]
21        else:
22            user[i]+=email_content[1]
23    return user
24
25if __name__ == '__main__':
26    #用户字典
27    users={}
28    #初始化1万个用户
29    for i in range(0,10000):
30        users[i]=""
31
32    #第一轮发送邮件的内容
33    email_content_1=["哥伦比亚","乌拉圭"]
34    #发送邮件
35    user=send_email(users,email_content_1)
36    #比赛结束,知道胜者为哥伦比亚,筛选用户
37    users=filter(users,"哥伦比亚")
38
39    #第二轮邮件内容
40    email_content_2 = ["比利时", "美国"]
41    #发送第二轮邮件
42    users=send_email(users,email_content_2)
43    # 比赛结束,知道胜者为比利时,筛选用户
44    users = filter(users, "哥伦比亚比利时")
45    print(users)

(友情提示:可左右滑动)

此时,0-2500编号的用户,是你的潜在付费用户。


可能有读者觉得这么低级的骗局怎么可能骗的了人,我最初也是这么想的。不过在看到新闻上各种骗局后,我真的觉得骗子实在不够用了。一句不恰当的引用:“姜太公钓鱼,愿者上钩”。


二分法在生活中的用处非常广,就比如我写了一篇文章,但发表时总是提示存在敏感字符,一篇2000字的文章中如何去查找呢?用二分法,基本上你只要尝试5次,就能找到了。


最后有人问我即将到来的世界杯怎么看,我当然是不要怂一把梭,买中国队啦。


(完)


友情提示:如果扫码无法正常访问,可以复制淘口令:€ebu60x3KZHc€ 在淘宝、天猫app中打开。

登录查看更多
0

相关内容

【实用书】Python数据科学从零开始,330页pdf
专知会员服务
142+阅读 · 2020年5月19日
【快讯】KDD2020论文出炉,216篇上榜, 你的paper中了吗?
专知会员服务
50+阅读 · 2020年5月16日
专知会员服务
27+阅读 · 2020年3月6日
广东疾控中心《新型冠状病毒感染防护》,65页pdf
专知会员服务
18+阅读 · 2020年1月26日
25年,110个经典财务欺诈案例,都在这儿了
虎嗅网
70+阅读 · 2019年8月19日
深海打捞K-129,冷战中的奇迹工程【六】
余晟以为
12+阅读 · 2019年5月31日
深海打捞K-129,冷战中的奇迹工程【四】
余晟以为
6+阅读 · 2019年5月21日
“光纤之父”高锟离世,感谢他的贡献
人工智能学家
3+阅读 · 2018年9月24日
机器学习预测世界杯:巴西夺冠
新智元
5+阅读 · 2018年6月11日
嘿,这是本应属于你的“红包”!
腾讯
3+阅读 · 2017年7月13日
AliCoCo: Alibaba E-commerce Cognitive Concept Net
Arxiv
13+阅读 · 2020年3月30日
Arxiv
3+阅读 · 2018年2月22日
Arxiv
3+阅读 · 2018年2月12日
Arxiv
3+阅读 · 2017年11月12日
Arxiv
4+阅读 · 2016年12月29日
VIP会员
Top
微信扫码咨询专知VIP会员