Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

7.1 进入区域:坍缩即实例化(坍缩即实例化)

(Entering the Zone - Collapse as Instantiation)

波函数坍缩:类与实例

“波函数从未‘坍缩’,它只是被‘实例化’了。就像代码里的类(Class)从来不会因为你创建了一个对象(Object)而消失。薛定谔的猫不是既死又活,它是还没被初始化的数据。”

量子力学最大的谜题就是:为什么微观粒子是概率的(波),而宏观世界是确定的(粒子)? 为什么必须有人看一眼,它才确定下来?

艾泽拉斯代码里,这不是物理悖论,这是面向对象编程(OOP)的标准流程。 本节将论证:物理学中的“坍缩”,就是计算机科学中的实例化(Instantiation)

7.1.1 类型错误:类 vs 对象

在旧物理学里,大家把波函数和粒子当成同一种东西。这是类型错误

  1. 波函数是代码(Class)

    • 它描述了可能发生什么(掉率表、属性范围)。
    • 它不占内存,它只是规则。
    • 例如:Creature_Tiger(一张老虎的设计图)。
  2. 粒子是实例(Object)

    • 它是具体的、独一无二的实体。
    • 它占据具体的坐标,有具体的血量。
    • 例如:Guid_10086(荆棘谷的那只特定的老虎)。

结论: 波函数与粒子是同一逻辑实体的两种不同状态。它们之间的转化(测量),就是系统执行了构造函数(Constructor)

7.1.2 谁触发了构造函数?

既然世界本来是代码(波),为什么会变成实体(粒子)? 答案是:交互请求

当一个电子与宏观环境(比如你的视网膜,或者暴风城的城墙)发生互动时,宏观环境——作为一个复杂的系统——向电子发出了属性查询

  • 查询Tiger.getPosition()(老虎在哪?)
  • 系统响应
    1. 检测到老虎处于未实例化的叠加态(在草丛里,可能在左也可能在右)。
    2. 调用随机数生成器(RNG),根据概率分布抽取一个数。
    3. 运行构造函数new Tiger(x, y)
    4. 分配显存:在坐标 处渲染一只老虎。
    5. 返回结果:你看到老虎在那儿。

在观测者看来,波函数瞬间收缩到了那一点。但在系统底层,这只是从概率表生成了具体数值

7.1.3 JIT物理学

JIT物理学:按需渲染

现代游戏引擎广泛使用**即时编译(JIT)**技术:只有当资源即将进入玩家视野时,才会被加载。

定理 7.1.1(JIT 实在性定理)

为了省资源,物理系统仅在交互界面处生成确定的实体。在没人看的地方(没加载的地图),物理实在保持在**中间代码(波函数)**状态。

这解释了为什么我们找不到隐变量(Hidden Variables)。 隐变量理论认为:老虎在被发现前,位置就已经确定了。 计算理论认为:在被发现前,老虎的位置属性根本没有被分配内存。 试图去问“被发现前在哪”,就像试图读取一个空指针(Null Pointer)。

7.1.4 薛定谔猫的面向对象解释

现在我们可以完美解决薛定谔的猫

盒子里的猫,是一个闭包(Closure)惰性对象。 系统记录了:State = Depend_on(Poison) -> Depend_on(Atom)

此时,猫并没有“死”或“活”的属性,因为它还没有被求值(Evaluated)。它只是一个待执行的函数

当你打开盒子(执行观测):

  1. 你触发了强制求值
  2. 系统追溯因果链,扔骰子判定原子是否衰变。
  3. 根据结果,即时实例化出一只死猫或活猫的模型。

猫从未处于“既死又活”的状态,它只是处于**“等待加载”**的状态。

7.1.5 总结:世界是动态生成的

坍缩即实例化的观点彻底消除了量子力学的神秘感。

  • 波函数是艾泽拉斯的源代码
  • 粒子是艾泽拉斯的运行实例
  • 测量是连接二者的编译器

我们生活在一个巨大的**事件驱动(Event-Driven)**程序中。每一次观测,都是一次对宇宙代码的执行;每一个确定的瞬间,都是从概率的海洋中通过计算结晶出的岛屿。