一、先把三个问题分开
「能不能分析开奖数据」这个问题之所以纠缠不清,是因为它其实混了三个完全不同的问题。它们的答案分别是:能、能、不能。
| 问题 | 性质 | 可行性 | 方法 |
|---|---|---|---|
| 各结果的概率是多少? | 纯计算 | 完全可行 | 组合数学,一支笔即可 |
| 这台装置是否有物理偏差? | 统计推断 | 原则可行(但需海量数据) | 假设检验,需功效分析支撑 |
| 下一期开什么? | 预测 | 不可行 | 本文证明:不存在任何方法 |
混淆常常发生在第二和第三行之间。有人指出「统计学确实能发现装置的偏差」,然后据此推出「所以统计学能预测」。前半句对,后半句不成立——第二个问题的答案是关于装置属性的,不是关于某一次结果的。
二、熵:不确定性的度量
要精确讨论「信息」,需要一个度量。香农 1948 年给出的答案是熵:
均匀分布的熵最大。对 N 个等可能结果,H = log₂ N。所以一期 49 选 6 的熵是:
再定义条件熵:已知 Y 之后,X 还剩多少不确定性。
然后是本文的主角,互信息:
互信息有两个基本性质:I(X;Y) = I(Y;X)(对称),以及 I(X;Y) ≥ 0(知道更多信息不会让你更糊涂)。
三、互信息为零的证明
设 Xn+1 是下一期结果,Hn = (X₁, X₂, …, Xₙ) 是全部历史记录。
定理。若各期相互独立,则 I(Xn+1 ; Hn) = 0。
证明。由独立性的定义,对任意历史取值 h:
代入条件熵的定义:
= − Σh P(h) Σx P(x) log₂ P(x)
= [ − Σx P(x) log₂ P(x) ] · Σh P(h)
= H(Xn+1) · 1 = H(Xn+1)
因此
注意这个证明有多强
它不依赖历史有多长——n 可以是 100、100 万,甚至无穷。
它不依赖你用什么方法分析——因为 I = 0 是数据本身的属性,不是分析者能力的属性。信息不在数据里,就没有任何算法能把它取出来。
它不依赖算力——这不是计算复杂度问题(「算得太慢」),而是信息论问题(「根本没有可算的东西」)。
换句话说:数据不足以支撑预测,不是因为分析得不够好,而是因为数据里根本没有那个信息。
3.1 数据处理不等式
还有一条更一般的定理值得一提。若 X → Y → Z 构成马尔可夫链(即 Z 只通过 Y 依赖 X),则
直白地说:对数据做任何处理,都不会增加它所含的信息。你可以做特征工程、做变换、训练模型、堆叠十层网络——每一步都只可能损失信息,绝不可能创造信息。
由于起点 I(Xn+1 ; Hn) = 0,而互信息又非负,所以任何处理之后仍然恒等于 0。这条链是封闭的。
四、实测条件熵(含一个陷阱)
证明之外,我们直接测。
为了让每个条件下都有足够样本,这里用 6 面骰子(H = log₂ 6 ≈ 2.585 比特)而不是 49 选 6,生成 120 万个符号,然后估计 H(Xt+1 | 前 m 个符号),m 从 0 取到 6。
如果历史有用,条件熵应该随 m 下降。
条件熵随历史长度的变化
120 万个符号,字母表大小 6。随机种子 20260730(固定,可复现)。理论上限 log₂6 ≈ 2.585 比特。两条随机序列的曲线相距仅 0.15 比特,精确数值见下方表格。
三条线,三个结论:
- 绿线(有规律的序列):这是对照组,我人为造了一个「下一个 = 上一个 + 1,但 20% 概率随机替换」的序列。它在
m = 0时的熵仍是满值 2.585——因为 +1 轮换保持均匀分布,只看单个号码的出现频率完全看不出任何异常。但只要把条件放宽到「前 1 个符号」,条件熵立刻掉到约 1.03 比特。真有规律时,一步就能看出来,不需要什么复杂模型。 - 橙线(真随机,朴素估计):随
m增大缓慢下降,到m = 6时降至 2.4345。看起来像是「历史越长,能挖出的信息越多」。 - 蓝线(真随机,偏差校正后):几乎平贴在 2.585,到
m = 6也只降到 2.5724。
绿线那个 1.03 比特是可以手算验证的。注意 20% 的随机替换也有可能正好落回 上一个 + 1,所以
H = − 0.8333 log₂0.8333 − 5 × 0.03333 log₂0.03333 = 1.0370 比特 实测 1.0342,差异来自有限样本。
橙线就是那个陷阱
橙线的下降完全是估计偏差,不是信息。原因是:m 每增加 1,上下文的种类就乘以 6(m = 6 时有 46,656 种),每种上下文分到的样本从数十万骤降到约 26 个。而用频率直接代入熵公式的「朴素估计」在小样本下系统性偏低,偏差约为 −(K−1)/(2N ln2) 比特——代入 K = 6、N = 26 得 −0.139,与实测的 −0.151 吻合。
蓝线加了 Miller–Madow 校正(把上式的相反数补回去),消掉了其中 92% 的偏差。
这个陷阱的现实版本是:模型越复杂、划分越细,越容易「看到」并不存在的规律。训练集上损失下降,往往只是把噪声记住了。这与《德州神枪手谬误》是同一件事在信息论语言里的表述。
由于偏差只有 0.15 比特,在 0–3 的坐标轴上橙线和蓝线几乎叠在一起。把数字直接列出来更清楚:
| m | 每种上下文的平均样本数 | 真随机 · 朴素估计 | 真随机 · MM 校正 | 对照组 · 朴素估计 |
|---|---|---|---|---|
| 0 | 1,200,000 | 2.5850 | 2.5850 | 2.5850 |
| 1 | 200,000 | 2.5849 | 2.5850 | 1.0342 |
| 2 | 33,333 | 2.5849 | 2.5850 | 1.0341 |
| 3 | 5,556 | 2.5843 | 2.5849 | 1.0336 |
| 4 | 926 | 2.5810 | 2.5849 | 1.0308 |
| 5 | 154 | 2.5614 | 2.5848 | 1.0239 |
| 6 | 26 | 2.4345 | 2.5724 | 1.0112 |
看第三列从 2.5850 一路走到 2.4345——如果有人把这个下降当作「发现了六阶规律」,他发现的其实是自己样本不够。而第四列告诉我们真相:真随机序列的条件熵,在任何历史长度上都是满值。这正是第三节 H(Xn+1|Hn) = H(Xn+1) 的实测版本。
五、柯尔莫哥洛夫复杂度
再换一个完全不同的角度:算法信息论。
字符串 s 的柯尔莫哥洛夫复杂度 K(s),定义为能输出 s 的最短程序的长度。
"010101…01"(重复 5000 次):K很小,程序是print("01"*5000)。- 一串真随机的 10000 位:
K ≈ 10000,没有比直接把它写进程序更短的办法。
「存在规律」在这个语言里的精确含义就是「可被压缩」:任何规律都对应一段比原数据更短的描述。
5.1 不可压缩性定理
对任意长度 n 和任意常数 c,满足 K(s) < n − c 的长度为 n 的串,个数少于 2n−c 个。
证明梗概。长度小于 n−c 的程序总共只有 2⁰ + 2¹ + ⋯ + 2n−c−1 = 2n−c − 1 个。每个程序最多输出一个串,所以能被压缩到 n−c 位以下的串最多这么多。∎
而长度为 n 的串共有 2ⁿ 个,所以可压缩超过 c 位的比例小于 2−c:
| 压缩位数 c | 比例上界 2⁻ᶜ | 通俗表述 |
|---|---|---|
| 1 | 50% | 能省 1 位的不到一半 |
| 10 | 0.098% | 能省 10 位的不到千分之一 |
| 20 | 0.000095% | 能省 20 位的约百万分之一 |
| 50 | ≈ 8.9 × 10⁻¹⁶ | 实际上不存在 |
结论:绝大多数字符串都是不可压缩的,也就是没有任何规律的。「有规律」是极其罕见的例外,而不是常态。
还有一层更根本的困难
K(s) 是不可计算的——不存在任何算法能对所有输入算出它(这可以由停机问题归约得到)。
所以「用某种通用算法自动发现数据中的一切规律」这件事,连原则上都做不到。任何实际的分析方法都只能在一个预先划定的假设空间内搜索;而在这个空间里搜得越勤,找到虚假规律的概率就越高——这又回到了多重比较。
六、七种选号策略的实测对比
理论说完了,做个粗暴的实证。下面在 2 万期均匀随机数据上,同时运行七种常见的选号思路,统计每种的平均命中个数。
所有策略都可以自由使用此前的全部历史。
七种选号策略的平均命中个数
2 万期均匀随机数据,49 选 6,每期每种策略各选 6 个号码。随机种子 20260801(固定,可复现)。
七根柱子几乎压在同一条线上。具体数字如下(标准误约 0.0054 个):
| 策略 | 平均命中个数 | 与期望之差 | 标准误倍数 z |
|---|---|---|---|
| 纯随机选号 | 0.7406 | +0.0059 | +1.09 |
| 追最热 6 个 | 0.7198 | −0.0149 | −2.76 |
| 追最冷 6 个 | 0.7456 | +0.0109 | +2.03 |
| 追遗漏最久 | 0.7305 | −0.0042 | −0.78 |
| 照抄上期 | 0.7316 | −0.0031 | −0.59 |
| 固定组合 1–6 | 0.7371 | +0.0024 | +0.45 |
| 上期各加 1 | 0.7310 | −0.0037 | −0.68 |
这张表最有价值的一行,是「追最热」那一行
它的 z = −2.76,单独看的双侧 p 值是 0.0058——如果只做这一个检验,这已经足以在 0.05 水平上宣称「追热号显著更差」。
但我做了 7 个检验。七个里至少有一个偏离超过 2.76 个标准误的概率是 1 − (1 − 0.0058)⁷ ≈ 4%,也就是大约每跑 25 次这样的实验就会遇上一次。这不是发现,这是多重比较的必然产物。
而且我们知道它是假的——因为数据是我用 mulberry32 生成的均匀随机数,真值必然是 0.7347,不存在任何真实差异可供发现。
我本可以换一个随机种子,跑到七根柱子整整齐齐为止,再把那张图放上来。那样文章会更好看,而且没人查得出来。但那正是本站从头到尾在警告的行为,所以这里保留的是第一次运行的结果,种子 20260801 写在图注里,你可以自己跑一遍核对。
撇开这一处噪声,结论是清楚的:追热号、追冷号、追遗漏、照抄上期、固定组合、纯随机——命中率没有任何真实差别。
这不是巧合,而是《期望值与返奖率》里那条期望线性性的必然结果:由于 bᵢ(这里是「选哪些号」)只依赖历史,而每个号码在给定历史下的命中概率恒为 6/49,所以任何选择规则的期望命中数都精确等于 6 × 6/49 = 36/49 ≈ 0.7347。
七、机器学习为什么也不行
「用深度学习 / 大模型 / 大数据分析」是最近几年最常见的说法。它失败的原因和别的方法完全一样,只是需要说得更明确一点。
监督学习要做的事,是从数据里逼近条件分布 P(Y | X)。模型能达到的最优交叉熵损失下界就是条件熵 H(Y | X)。而我们已经证明
所以最优模型的输出,就是忽略输入、直接返回边际分布——对每个号码都给出 6/49。这个「最优模型」用一行代码就能写出来,参数量是 0。
| 改动 | 能改变 I(X;Y) 吗 | 实际效果 |
|---|---|---|
| 增加参数量 | 不能 | 训练损失下降(记住噪声),验证损失上升 |
| 增加训练数据 | 不能 | 模型更快收敛到边际分布 6/49 |
| 特征工程 | 不能(数据处理不等式) | 最好持平,通常损失信息 |
| 更换架构 | 不能 | 收敛速度不同,终点相同 |
| 集成多个模型 | 不能 | 方差降低,偏差不变 |
一个容易被误读的现象
在这类数据上训练模型时,训练集准确率确实会超过 6/49——有时高很多。这看起来像是「模型学到了东西」。
它学到的是那批特定数据的噪声。把同一个模型放到从未见过的数据上,准确率会精确回落到 6/49。这正是第四节橙线的现象在监督学习中的版本,也是为什么任何声称有效的方法都必须给出样本外验证结果——只报告训练集或历史回测表现的,等于什么都没报告。
八、「可我认识一个人真的中了」
这句话是真的,而且必然是真的。它和上面所有数学没有任何冲突。
假设某规则每期有 100 万人参与,单次中奖概率 1/13,983,816。每期的期望中奖人数是 0.0715 人;一年 300 期,期望中奖人数约 21 人。
所以每年都会有二十来个真实的中奖者,他们的故事都是真的。但请注意分母:这一年里还有 3 亿人次没有中。
| 机制 | 运作方式 | 纠正方法 |
|---|---|---|
| 幸存者偏差 | 成功案例被反复讲述,失败案例从不被记录 | 主动追问分母:一共有多少人试过 |
| 可得性启发 | 容易回忆起的事件被高估频率;中奖新闻天然易得 | 用统计数字替代印象 |
| 事后叙事 | 中奖后回溯性地给出「方法」,方法是结果的产物 | 要求方法在事前被完整写下 |
还有一层:如果一个人真的掌握了有效方法,理性行为是安静地使用它,而不是出售它。任何售卖「方法」的行为,本身就是该方法无效的强证据——因为出售的收益如果高于使用的收益,说明使用的收益并不高。
九、三道独立的锁
全站的论证到这里闭合了。它由三条互相独立的结论构成,任何一条单独成立就足以关上这扇门。
| 锁 | 结论 | 依据 |
|---|---|---|
| 第一道 | 历史记录不改变下一次的概率 | 独立性定义 → 赌徒谬误 |
| 第二道 | 历史记录的信息增量精确等于 0 比特,任何方法都提取不出 | 本文:互信息为零 + 数据处理不等式 |
| 第三道 | 即使前两道全部失效,只要 R < 1,改变下注方式也无法改变期望 | 期望线性性 + 可选停时定理 |
第三道锁的特殊地位
第三道锁值得单独强调,因为它是无条件的:即使某台装置真的有偏,即使你真的能完美预测每一次结果,只要返奖率 R < 1,期望净收益仍然是 (R−1) × 总投注额。
换句话说,就算前两道锁被某种方式打开了,第三道锁依然是关着的。
本站存在的目的,就是把这三条说清楚,并且给出可以自己验证的工具(模拟器、计算器)和可以自己复现的代码(所有图表的随机种子都写在图注里)。不需要相信我们,请自己算一遍。
延伸阅读与参考
- Shannon, C. E. (1948). A Mathematical Theory of Communication. Bell System Technical Journal, 27, 379–423 & 623–656. 熵与互信息的原始论文。
- Cover, T. M. & Thomas, J. A. Elements of Information Theory (2nd ed., Wiley, 2006). 第 2 章熵与互信息;第 2.8 节数据处理不等式;第 14 章柯尔莫哥洛夫复杂度。
- Li, M. & Vitányi, P. An Introduction to Kolmogorov Complexity and Its Applications (4th ed., Springer, 2019). 第 2.2 节不可压缩性定理。
- Miller, G. A. (1955). Note on the bias of information estimates. In: Information Theory in Psychology, 95–100. Miller–Madow 校正的出处。
- Paninski, L. (2003). Estimation of entropy and mutual information. Neural Computation, 15(6), 1191–1253. 熵估计偏差的系统分析。
- Kolmogorov, A. N. (1965). Three approaches to the quantitative definition of information. Problems of Information Transmission, 1(1), 1–7.
- Wolpert, D. H. & Macready, W. G. (1997). No Free Lunch Theorems for Optimization. IEEE Trans. Evolutionary Computation, 1(1), 67–82. 无免费午餐定理。
- Tversky, A. & Kahneman, D. (1973). Availability: A heuristic for judging frequency and probability. Cognitive Psychology, 5(2), 207–232.