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

算法套路三:二分查找——红蓝染色法 left指针掌管左边蓝色区域,蓝色表示 truej即所求值及其右侧,right指针掌管右边红色区域,红色表示false即所求值左侧,两者互不冲突,通过不断向目标区域靠近,扩大两个指针的掌管区域,直到两者掌管的区域接壤使用闭区间时,L-1必定是红色即false,R+1必定是蓝色即true,这就是循环不变量关键不在于区间里的元素具有什么性质,而是区间外面的元素具有什么性质,即将区间外染成红色与蓝色。根据以上两点,在做题时关键即确定二分条件函数isBlue() 阅读详情

640?wx_fmt=other

作者:寒食君

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

640?wx_fmt=other

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

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

640?wx_fmt=png

(点击看大图)

假设有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次,就能找到了。

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

(完)

640?wx_fmt=png

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

二分查找(红蓝染色法) 本文深入讨论二分查找在闭区间,开区间,半闭半开区间的写法 阅读详情

相关推荐

在MacBook M1/M2上,手把手教你打包包含嵌入模型的RagFlow Docker镜像(避坑指南)

本文详细指导如何在MacBook M1/M2上构建ARM64架构的RagFlow Docker镜像,涵盖环境准备、依赖处理、镜像构建及性能优化全流程。特别针对Apple Silicon芯片的兼容性问题提供解决方案,帮助开发者高效完成本地开发环境搭建。

weixin_26908317的博客 243

二分查找红蓝分区法

二分法:二分查找算法是一种在有序数组中查找某一特定元素的搜索算法,其思想就是不断地将有序查找表“一分为二”,逐渐缩小搜索区域,进而找到目标元素。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。

2303_79296612的博客 407

TwinCAT 3 实战指南:从系统配置到高级运动控制

本文详细介绍了TwinCAT 3工业自动化控制平台的实战应用,从系统配置、PLC编程到EtherCAT总线配置和高级运动控制。通过倍福(Beckhoff)的TwinCAT 3平台,工程师可以高效实现复杂的工业自动化任务,包括运动控制、PLC编程等。文章还提供了常见问题排查和性能优化技巧,帮助用户提升系统稳定性和实时性。

weixin_30831529的博客 307

二分查找----蓝红二分法

适合刚学习二分法,快速入门刷题使用。

qq_41801917的博客 455

分子模拟入门教程 | 低调使用 建议收藏

该方法只需要原子的核电荷和少数模拟的环境参数作为输入,所有的性质都是通过求解薛定谔方程得到的,不需要使用任何经验参数。经典的原子水平的分子模拟已经成为提高我们对材料科学和生命系统中分子过程理解的最流行的方法之一。全原子模拟是一种非常强大的以原子分辨率呈现信息的方法,因为在原子模拟中,一个粒子代表一个特定的原子。随着计算机硬件和模拟技术的快速发展,分子模拟不仅可以解决基本的、常规的化学问题,还可以应用于各种复杂体系。然而,由于问题的复杂性以及严重依赖于现象的现实情况,最好是逐案确定合适的模拟方法。

pysonger的博客 786

STM32输入捕获功能,同时捕获8路波形。

STM32输入捕获功能,使用TIM2和TIM3同时捕获8路波形。 工作上的一个需求,要采集两组控制步进电机的信号。就是采集8个通道的方波,测量频率和计脉冲个数。看起来简简单单的东西,磕磕碰碰搞了两天,走了一些弯路,这里写出来记录一下。顺便理解一下输入捕获个多种用法。 1. 硬件设计 首先看一下用到那些IO口。在STM32手册里找这样TIMx_CHx的就是输入捕获的口了。 这里用了TIM2的4个口和TIM3的4个口。 定义 端口 TIM2_CH1 PA0 TIM2_CH2 PA1 TI

qq_36353009的博客 5126

二分查找之红蓝二分查找

/ 目标值在左半部分} else {left = mid;// 目标值在右半部分left : -1;// 返回最后一个满足条件的值的索引。

xiaoxie8023的博客 2331

一文读懂世界模型(World Model):AI的“数字大脑”,通往AGI的核心基石

世界模型正成为AI领域的关键技术,它让AI在虚拟环境中模拟物理世界规律并预测行动后果,从而减少现实试错成本。2018年Ha和Schmidhuber提出的VAE+RNN架构奠定基础,2022年后自监督学习推动快速发展。当前世界模型分为潜空间、生成式、强化学习和对象中心四大流派,已在机器人、自动驾驶、工业仿真等领域落地应用。尽管面临长时序预测误差等挑战,未来将向多模态建模、大模型融合等方向发展,成为实现具身智能和通用人工智能的核心基石。

m0_38116472的博客 814

从一个竞猜骗局谈二分法

四年一度的足球盛典——世界杯即将在本月14号响起号角,32路豪门跃跃欲试。世界杯的影响范围已经不仅仅局限于球迷之间,更是辐射了以球场为中心的一大片商业活动。就从赌球来说吧,想必各大博彩网站早已恭候多时,同时各大天台上也开始预订站席。 这是一场球迷的狂欢,同时也是骗子的节日。就拿赌球来说,有这么一个经典的骗局。 小刘是一名铁杆球迷,同时也是博彩爱好者。2014年小组赛期间,他凭着自己的感觉参与了多...

weixin_34221773的博客 1016

【雕爷学编程】MicroPython手册之 Teensy 4.1 实时时钟 (RTC)

在类的初始化函数中,定义了用于控制I2C总线的i2c对象和RTC模块的I2C地址。接着,使用该引脚初始化了一个Pin对象。它还提供了8个串口,3个SPI端口,3个I2C端口,2个I2S/TDM数字音频端口,3个CAN总线(其中一个支持CAN FD),以及一个SDIO(4位数据)原生SD卡端口12。2、内存:Teensy 4.1配备了1024 KB的RAM(其中512 KB是紧密耦合的),8 MB的Flash(其中64 KB用于恢复和EEPROM模拟),以及两个位置可以选择添加更多的QSPI内存芯片。

雕爷学编程 576

手把手教你学simulink实例--基于Simulink的储能系统性能评估与仿真

储能系统是现代能源体系中的关键组成部分,广泛应用于可再生能源并网、电网调峰调频、电力质量改善以及电动汽车充电等领域。为了提高储能系统的运行效率和可靠性,对其性能进行准确评估至关重要。基于MATLAB/Simulink平台,可以构建储能系统的动态模型,并通过仿真分析其在不同工况下的性能表现。本项目旨在研究储能系统的建模方法、控制策略及其性能评估指标,并通过Simulink仿真验证系统的动态特性和稳态性能。

MHD0815的博客 196

2018上半年的精华文章全在这里了!

写作的一个很大功能就是“记录”,一篇篇文章积累起来,仿佛看到自己走过的路。2018一半的时间已经过去,我整理了一下码农翻身上半年的文章, 欢迎大家转发、分享!大话编程负载...

码农翻身 349

化工与制药软件:AVEVA E3D二次开发_(2).AVEVA E3D软件介绍

用户可以根据自己的需求创建自定义的设备模板,提高设备建模的效率。

kkchenjj的博客 1651

二分法入门(二)——POJ 3258,2976;HDU 4430;CodeForces 535C;Gym 101194D;ACdream 1066

二分法入门(二)——POJ 3258,2976;HDU 4430;CodeForces 535C;Gym 101194D;ACdream 1066

Sega_hsj 's Blog 847

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

二分法_红蓝区间_防混淆_C++

二分法是一种重要的数学和算法技术,主要用于在有序数组中查找特定元素或在连续函数中寻找零点。在数组搜索中,二分法通过不断将搜索区间减半来快速定位目标元素,其时间复杂度为O(log n),非常高效。在函数求根问题中,二分法利用函数在区间两端取值异号的特性,通过迭代地取中点并检查函数值,逐步逼近函数的零点。这种方法要求函数在搜索区间内连续且单调,或者至少在该区间两端取值异号。二分法因其高效性和简单性,在计算机科学、数学、物理学等多个领域有着广泛的应用。

2303_78983004的博客 663

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

1115 彩票问题。

14号的时候老湿留了两个题目,一个是二分法,一个是彩票问题。 彩票问题有两个条件:36选7的模式,随机出来7个1~36的数字,不能有重复。 题干看似很短,但是实现起来的确需要懂点脑子,一开始我只是单纯的感觉用一个数组随机生成7个数字,然后划定范围不就OK了么,其实不然,这道题远没有我们想象中的那么简单,首先我讲一下思路。 首先用一个数列存储1~36这三十六个数字,然后用一个rand...

a13641644737的博客 334

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

从一个骗局谈生活中的基础算法

这是一篇八千字的长文,是一些算法笔记的整理集合,希望能给你帮助。曾经有一个著名的骗局:小明是一个赌马爱好者,最近他连续几次提前收到了预测赌马结果的邮件,从一开始由于不屑而错失良机,到渐渐深信不疑,直到最后给邮件发送方汇了巨款才发现上当。看过这个的人应该知道,骗子收集到一份邮件信息后,分组发送不同预测结果的邮件,赌马结果公布后,再将筛选出来的那部分人分组,继续发送下一轮预测邮件。几轮过后,肯定能保证...

weixin_33894992的博客 414

二分法排序

算法思想: 对于要插入的节点,我们採用二分法和已排序队列进行比較(就是和队列中间的那个数比較大小,推断插入节点的位置是在该节点的前面还是后面),那么这种话相对于直接插入来说,比較次数就会降低非常多,可是当找到了须要插入点的位置的时候,那么移动的次数和直接插入排序相当!整体来说,略优于直接插入排序! void BinarySort(int A[],int len){ int i,fi...

weixin_30344995的博客 125

红蓝二分法实现二分查找

由l指针指向左边蓝色区域,由r指针指向右边红色区域,两个区域互不相交。两个指针大小不断变化直至两个区域相交,即 l+1 = r。1、开始时l指针指向开始元素下标-1,r指针指向末尾元素下标+1;2、当 l+1!= r 时,移动指针直至两个区域相接触;3、定义mid指针为(l+r)/2;4、l指针或r指针变化时赋值为mid指针。

L.Wzz的博客 442

二分搜索算法 (binary search)

二分搜索算法 二分的本质并不是单调性,但是具有单调性一定可以使用二分,可以使用二分不一定具有单调性。二分的要点是"边界问题" 二分算法看似很容易实现,但是对于处理二分的边界上的细节时却十分复杂。 所以使用二分算法之前需要根据实际问题进行建模,根据不同的性质设置判断条件,划分红蓝区域,最终定位边界。 请看下图: 找出蓝色的边界的数字和红色边界的数字。 可以将图中的一串数字根据颜色的不同,而划分成红蓝两个区域,可以使用通过二分法来确定红蓝区域的边界。 两头分别设立两个指针,l 和 r ,l 是从左相向右扫描

TheAnnoyingDog的博客 5053

二分法查找模板

https://leetcode-cn.com/problems/binary-search/solution/leetcode-offer-er-fen-cha-zhao-san-da-mo-0mn7/

qq_51466163的博客 295

力扣二分查找模块全解-红蓝边界法

§ 模板介绍§ 模板运用§ 模板介绍六款二分查找模板,哪款才是你的菜?转载链接:https://leetcode.cn/circle/article/xYBtLt/

诗和远方,代码和你 555

彩票问题

解题思路: dp[n][m] 表示剩下n张中奖票和m张不中票的概率,我们来计算dp[n][m]的情况 假设A抽了中,A胜的概率是n / (n + m) A胜 假设B抽了中,A胜的概率是0 A和B都不中的概率是 ( m / (n + m) ) * ( (m - 1) / (n + m - 1) ) B抽调一张, 假设是中的,那么A胜的概率是 ( m / (n + m) ) * ...

weixin_43709838的博客 429

彩票算法系列讲座(二)

七个小矮人 自从白雪公主跟王子走了后,七个小矮人的生活就没有了乐趣。一天,他们聚在一起,闷闷不乐。老七说:我想白雪公主。老六说:我也想……。老五说:我好像听到她在唱歌。老四说:我就在心里想,我不说。老三说:我情愿她一直不醒过来。老二说:别说了,要想哭……。老大吼:烦不烦,3D开奖了!后来,他们一起出去找白雪公主了,巫婆(王后)给了他们一张路线图,就是3D历史开奖号。老大想:我做个表率走远点找,于...

uself的专栏 4509

机器学习算法 04 —— 决策树(ID3、C4.5、CART,剪枝,特征提取,回归决策树)

文章目录系列文章决策树1 决策树算法简介2 决策树分类的原理2.1 信息熵2.2 决策树划分依据—信息增益(ID3)2.3 决策树划分依据—信息增益率(C4.5)2.4 决策树划分依据—基尼值和基尼指数(CART)2.5 小结决策树各个公式各算法优缺点如何评估分割点的好坏?决策树变量的两种类型3 CART减枝3.1 为什么需要剪枝?3.2 常用的剪枝方法预剪枝后剪枝小结-预剪枝和后剪枝优缺点4 特征工程—特征提取4.1 字典特征提取4.2 文本特征提取英文文本中文文本TF-IDF5 决策树算法API6 案例

zcy的博客 4313

有三顶红帽子和两顶蓝帽子逻辑推理

有三顶红帽子和两顶蓝帽子逻辑推理 有三顶红帽子和两顶蓝帽子。 将五顶中的三顶帽子分别戴在A、B、C三人头上。这三人每人都只能看见其他两人头上的帽子,但看不见自己头上的帽子,并且也不知道剩余的两顶帽子的颜色。 问A:”你戴的是什么颜色的帽子?” A说:”不知道。” 问B:”你戴的是什么颜色的帽子?” B想了想之后,也说:”不知道。” 最后问C。C回答说:”我知道我戴的帽子是什...

James-Tom的博客 2万+
上一篇: Java虚拟机的Heap监狱
下一篇: 做一个普通人
码农翻身
码农翻身 《码农翻身》作者 《码农翻身》作者
博客等级 码龄8年 3万+粉丝 1084原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值