联合起来变得虚弱

2024-02-26 21:08
文章标签 联合 起来 变得 虚弱

本文主要是介绍联合起来变得虚弱,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

不要怪我犯哗众取宠的毛病,这个题目不是我取的,这是法国著
名的数学科普作家Jean-Paul Delahaye在2001年12月号《为了科学》,
即《科学美国人》的法文版上发表的一篇文章的题目。我觉得这文章
很有意思,觉得很可以介绍给大家;同时也是表达对一位离网隐去不
少时候的朋友的怀念,他和我打过一个赌,而这篇文章,就是谈打赌
问题的。

  在9月号的《为了科学》中,Delahay提出了一个奇怪的问题,并
表示他自己也不太清楚毛病出在了什么地方,希望有兴趣的读者能帮
助他找到一个令人满意的答案。要理解他提出的问题,首先让我们来
看一些基本概念。

  如果有人要和你打赌,比如说抛六面的骰子(当然我们要规定这
个骰子没被灌了某种液体或者有其他的猫腻,我们毕竟是讨论数学问
题,不是真要学好本领去赌博甚至出老千,下面所有的情况都不这么
一一说明了)。如果他建议,抛出1来,他就给你3元,抛出2或3来,
你就给他1元,而其他情况大家不输不赢。那么这个赌你应不应该打
呢?很显然,如果这样的赌多进行几次,那么平均说来,在六次里有
一次抛出1,有两次抛出2或3,有三次抛出其他的数字。所以平均说
来,在六次里你会赢一次3元,输两次1元,于是总的来说你会赢
3-2*1=1元,也就是说平均每次你会赢1/6元。当然偶然某次你会抛到
2或3,输掉1元,但是从长远的角度来看,你会不断地赢钱。所以你
应该接受这样的赌局。

  在数学上,上面的1/6元被称作这种赌局对你来说的期望,就是把
每种可能发生的情况的概率和在此情况下你赢的钱的数目(如果是输,
那么钱为负)乘起来,再把从所有这些情况下计算出的值加起来。一
般来说,期望是正的,赌局对你就有利,如果是负的,那么就对你不
利。而且如果把参加赌局的所有人的期望都加起来,一定是0,因为总
体看起来,在赌博中钱从一个人那里跑另一个人那里去了,但是不会
凭空多出来或少掉。比如上面那个向你建议赌博的人,他的期望就是
-1/6元,平均一次他会输掉这么多,所以他其实不该向你建议这次赌
博的。

  现在假设在向你建议以上的赌局的同时,此人还向你建议另一个
赌局:如果抛出2,你就赢2元,如果抛出4,你就输1元,其他情况大
家不赢不输。同样的算法,你会发现这种赌法对你也有利——你的期
望是2*1/6-1*1/6=1/6元。如果把上面的赌局和这个赌局同时玩(也
就是说只抛一次骰子,但是两个赌局都按这次抛骰子的结果来结算输
赢),那么结果如何呢?如果抛出1,那么按第一个赌局你赢3元,按
第二赌局大家不赢不输;如果抛出2,那么按第一个赌局你输1元,按
第二赌局你赢2元,总体说来你赢1元;同样地,总体说来,抛3,你
输2元,其他情况大家不赢不输。所以如果两局同时赌,你的期望是
3*1/6+1*1/6-2*1/6=1/3元。

  我们把这样多局同时赌的赌法称为“复式赌局”。比如说在现实
生活中你去买张复式彩票,甚至包局,这就是一种复式赌局。我们可
以证明,复式赌局的期望就是里面每个单局赌局的期望之和,比如上
面的复式赌局的期望就是1/6+1/6=1/3元。所以如果一个复式赌局里
每一局都对你有利,也就是期望都是正的,那么整个复式赌局的期望
当然也就是正的,对你有利,如果有人向你建议这么个赌局,就该毫
不犹豫地接受。这可以被称作“复式原则”。

一、Levin悖论

  可是且慢。数学家Leonid Levin在今年的《数学报道员》第23期
上提出了一个奇怪的悖论,似乎和“复式原则”相抵触,虽然每一个
的赌局对你都有利,可是如果你同时接受所有的赌局,你就一定会输!

  为了把他的例子说清楚,我们需要一点实数理论的知识(如果看
不懂这个例子,你可以看后面的例子,后面的例子比较容易看懂)。
考虑所有的实数。有些实数在十进制表示下小数部分的位数是有限的,
比如1.2568,-9.5555等(虽然上面的两个小数也可以写成无限小数
的形式,比如1.2568=1.2657999999……,但是我们规定如果循环节
为9,那么一律写成有限小数的样子,这样每个实数都只有唯一一种表
示),也有一些小数部分的位数是无限的,比如1/3表示成十进制小数
就是0.3333……,或者π=3.14159……。

  我们可以把实数分成一组一组的,两个实数在同一组,当且仅当
它们的差是有限小数。比方说,所有的有限小数自然都在同一个组里;
π、π+0.25、π-100也都在同一个组里(当然这个组里不止这么几个数)。
很显然,一个实数x只能在一个组里,如果它同时在两个组里,我们从
第一组里拿一个不在第二组里的a,又从第二组里拿一个不在第一组里
的b,那么因为x既在第一组里又在第二组里,所以x-a和x-b都该是有
限小数,但是这么一来(x-a)-(x-b)=b-a也该是有限小数,这就和a、
b不在同一组里矛盾了。

  于是我们就把所有的实数分成了互不相交的一些组(或者说集合),
每个实数都在而且仅在一个组里。事实上这样分好的组有无限多个。
现在我们从每个组里选一个组长。组长是谁无所谓,只要一个组只有
一个组长,而且组长是组里的成员就可以了。有个组长的好处是我可
以用组长来称呼这个组,比方说我可以说“π所在的那个组”。也不
一定非选π是组长,你完全可以选π+1.2356是组长,那么“π+1.2356
所在的那个组”和“π所在的那个组”其实是同一个组。但是要注意
的是,组长可以随便选,但是一旦组长选好了,就定下来不能变了,
一个组只能有一个组长。

  现在假设每个组都选好了组长,我们把所有组长的集合记为C,而
把所有有限小数组成的集合记为D(很容易知道,这其实就是一个组)。
现在任何一个实数x都可以写成c+d的形式,这里c是C中一个元素,d是
D中的元素。这样的表达方法是唯一的。事实上,任何一个实数x都属
于某一组,那么假设这个组的组长是c,x就可以写成c+(x-c),根据组
的定义,x-c属于D。

  现在我们可以来谈论赌局了。

  随机地选取一个0和1之间的实数(包括0,不包括1)。这个选法
可以是象幸运轮那样的赌法,只是现在不是一格一格地写着数字了,而
是轮周上的每一点都是一个不同的选择:拿一个周长为1的圆盘,上面
标好一个点算原点,正上方有个不动的指针指着圆周上的某一点。然后
让圆盘高速旋转,随机地让它停下来,然后测量原点顺时针方向到现在
指针所指的位置的距离,这个距离就是我们随机选取的实数。

  从上面的讨论我们知道,这个随机选取的实数可以被唯一地写成
c+d的形式,其中c是一个组长,而d是一个有限小数。现在我向你建议
我们打一个这样的赌:如果d是0.7,那么你赢2元,如果d是0.9,那么
你输1元,其他情况我们都不赢不输。

  这个赌自然对你有利,因为那个d是0.9还是0.7的可能性是一样的,
但是在一种情况下你只输1元,而另一种情况下你赢2元。事实上如果我
们用P(d,d')来表示这样的赌局(这里d和d'是两个不同的有限小数):
随机选取一个0和1之间的实数x,我们找到它所在的组,组长为c,那么
如果x是c+d,你赢2元,如果x是c+d',你输1元。上面我建议的赌局就
是P(0.7,0.9)。和上面同样的分析我们知道,无论是什么d和d',这个
赌局对你来说都是有利的。

  现在我来建议一个复式赌局,我们来赌所有这样的P(d,d')的赌局,
这里d'是把d的小数部分第一位去掉后的小数。比如说P(0.1234,0.234),
P(0.98521,0.8521),P(0.321,0.21)都是这个复式赌局里要考虑的赌
局。因为每个P(d,d')对你都是有利的,你自然会觉得这么一个复式赌
局对你也该有利——可是这完全错了。

  假设我们随机选取的实数可以写成c+0.321的样子,我们来看看你
到底会赢多少。你唯一赢的那个赌局是P(0.321,0.21),你赢了2元。
可是你输了P(0.0321,0.321),所以输了1元,可是不仅如此,你还输
了P(0.1321,0.321),P(0.2321,0.321),……P(0.9321,0.321)这
些赌局,所以一共输了10元。总体说来,你输了8元。糟糕的是,无论
随机选取的实数是什么,你都会这么每次输掉8元!

  这怎么可能呢?每个赌局都对你有利,可是要是同时赌这些赌局,
你却必输无疑!
 作者:eigolomoh【异调】

这篇关于联合起来变得虚弱的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/750167

相关文章

python与QT联合的详细步骤记录

《python与QT联合的详细步骤记录》:本文主要介绍python与QT联合的详细步骤,文章还展示了如何在Python中调用QT的.ui文件来实现GUI界面,并介绍了多窗口的应用,文中通过代码介绍... 目录一、文章简介二、安装pyqt5三、GUI页面设计四、python的使用python文件创建pytho

MySQL数据库宕机,启动不起来,教你一招搞定!

作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG、Mongodb数据库运维(如安装迁移,性能优化、故障应急处理等)公众号:老苏畅谈运维欢迎关注本人公众号,更多精彩与您分享。 MySQL数据库宕机,数据页损坏问题,启动不起来,该如何排查和解决,本文将为你说明具体的排查过程。 查看MySQL error日志 查看 MySQL error日志,排查哪个表(表空间

Java 后端接口入参 - 联合前端VUE 使用AES完成入参出参加密解密

加密效果: 解密后的数据就是正常数据: 后端:使用的是spring-cloud框架,在gateway模块进行操作 <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>30.0-jre</version></dependency> 编写一个AES加密

用Unity2D制作一个人物,实现移动、跳起、人物静止和动起来时的动画:中(人物移动、跳起、静止动作)

上回我们学到创建一个地形和一个人物,今天我们实现一下人物实现移动和跳起,依次点击,我们准备创建一个C#文件 创建好我们点击进去,就会跳转到我们的Vision Studio,然后输入这些代码 using UnityEngine;public class Move : MonoBehaviour // 定义一个名为Move的类,继承自MonoBehaviour{private Rigidbo

C和指针:结构体(struct)和联合(union)

结构体和联合 结构体 结构体包含一些数据成员,每个成员可能具有不同的类型。 数组的元素长度相同,可以通过下标访问(转换为指针)。但是结构体的成员可能长度不同,所以不能用下标来访问它们。成员有自己的名字,可以通过名字访问成员。 结构声明 在声明结构时,必须列出它包含的所有成员。 struct tag {member-list} variable-list ; 定义一个结构体变量x(包含

神经网络训练不起来怎么办(零)| General Guidance

摘要:模型性能不理想时,如何判断 Model Bias, Optimization, Overfitting 等问题,并以此着手优化模型。在这个分析过程中,我们可以对Function Set,模型弹性有直观的理解。关键词:模型性能,Model Bias, Optimization, Overfitting。 零,领域背景 如果我们的模型表现较差,那么我们往往需要根据 Training l

Java8中的Stream,让集合操作酸爽起来

简介 java8也出来好久了,接口默认方法,lambda表达式,函数式接口,Date API等特性还是有必要去了解一下。比如在项目中经常用到集合,遍历集合可以试下lambda表达式,经常还要对集合进行过滤和排序,Stream就派上用场了。用习惯了,不得不说真的很好用。 Stream作为java8的新特性,基于lambda表达式,是对集合对象功能的增强,它专注于对集合对象进行各种高效、便利的聚合

AMEsim和Simulink联合仿真生成新的.mexw64液压模型文件

AMEsim和Simulink进行联合仿真非常重要的就是AMEsim经过第四阶段Simulation会在相同文件下面生成一个与AMEsim液压模型相同名字的.mexw64文件,在Simulink进行联合仿真的S-Function需要找的也就是这个文件,只不过输入的时候除了液压模型名字之外,后面有一个短下划线。 简而言之: AMEsim和Simulink联合仿真, 首先是需要AMEsim软

【自动驾驶】控制算法(八)横向控制Ⅱ | Carsim 与 Matlab 联合仿真基本操作

写在前面: 🌟 欢迎光临 清流君 的博客小天地,这里是我分享技术与心得的温馨角落。📝 个人主页:清流君_CSDN博客,期待与您一同探索 移动机器人 领域的无限可能。 🔍 本文系 清流君 原创之作,荣幸在CSDN首发🐒 若您觉得内容有价值,还请评论告知一声,以便更多人受益。 转载请注明出处,尊重原创,从我做起。 👍 点赞、评论、收藏,三连走一波,让我们一起养成好习惯😜 在这里,您将

Matlab/Simulink和AMEsim联合仿真(以PSO-PID算法为例)

目录 安装软件和配置环境变量 Matlab/Simulink和AMEsim联合仿真详细流程 非常重要的一点 Simulink模型和AMEsim模型用S-Function建立连接 从AMEsim软件打开Matlab Matlab里的设置 Matlab的.m文件修改(对于PSO-PID算法) 运行程序 我印象中好像做过Matlab/Simulink和AMEsim联合仿真的分享似的