均匀分布及同类分布下随机数生成的技术疑问
均匀分布及同类分布下随机数生成的技术疑问
哇这个问题问到点子上了!这其实是测度论里一个挺反直觉的结论,我来给你拆解明白~
首先咱们得对齐一个前提:我们说的“类似性质的分布”,本质是指那种和区间长度挂钩、满足平移不变性,且总概率为1的分布对吧?核心矛盾就藏在「集合的可数性」和“测度”(可以简单理解为衡量集合“大小”的一种方式,对区间来说就是长度)里。
为什么随机实数能实现均匀分布?
拿[0,1]区间的均匀分布举例子:
- 这个区间里的实数集的勒贝格测度是1,也就是它的“总大小”刚好是1。我们定义的均匀分布,要求任意子区间[a,b]被选中的概率等于b-a——这个定义完全自洽:所有子区间的概率加起来刚好是1,也符合我们对“均匀”的直觉:越长的区间,选到里面数的概率越高。
- 甚至我们能在理论上构造出这样的随机数:比如无限次抛公平硬币,正面记1、反面记0,把得到的序列写成二进制小数
0.b₁b₂b₃…,这个数就是[0,1]上均匀分布的随机实数。当然实际工程里我们只能生成有限位的近似值,但理论上这个构造是完全成立的(那些二进制表示不唯一的数,比如0.111…=1.000…,只是可数个例外,它们的总“大小”是0,完全不影响整体分布)。
为什么有理数做不到?
问题出在有理数是可数无穷集:
- 可数集的勒贝格测度是0,意思是把所有有理数“挤”在[0,1]区间里,它们的“总大小”其实是0。如果我们想给有理数定义一个“类似均匀”的分布,首先就卡在概率分配上:
- 要是给每个有理数分配一个相等的正概率,那可数无穷多个正数加起来会是无穷大,根本没法满足“总概率为1”的基本要求;
- 要是给每个有理数分配0概率,那总概率就是0,等于说“几乎不可能选到任何有理数”,这显然不是我们想要的“随机选一个有理数”的效果。
- 那有没有可能定义非均匀但“有类似性质”的分布?比如让每个区间里的有理数被选中的概率和区间长度挂钩?但有理数在每个区间里都稠密,可它们的测度为0,不管怎么分配概率,最终要么总概率发散,要么概率会集中在某个可数子集上,没法复刻实数均匀分布那种“和区间长度绑定”的均匀性。
代数数的情况和有理数完全一致
别以为代数数比有理数多就不一样——代数数也是可数无穷集!
所有代数数都是某个整系数多项式的根,而整系数多项式的总数是可数的(每个多项式由有限个整数系数决定,整数是可数集,有限个可数集的组合还是可数的),每个多项式的根数目有限,所以代数数的总数也是可数的,勒贝格测度同样是0。那面临的问题就和有理数一模一样:没法定义一个总概率为1、同时具有类似实数均匀分布性质的随机分布。
总结一下:本质原因就是实数集的不可数性和正测度,支撑了均匀分布的定义;而有理数、代数数都是可数集,测度为0,根本没法支撑起类似的“均匀”分布——要么概率分配不收敛,要么总概率为0,都不符合我们对“随机选一个数”的预期。
备注:内容来源于stack exchange,提问作者Abijah




