因果律是不是一条基本的定律？是否存在违反因果律的事情或理论？
对于我们来说是。 但已经有项实验颠覆了因果关系，它证明了未来可以影响现在。 它就是「延迟选择实验」，这个实验是以双缝实验为基础的，但是更为复杂，同时也是更为有趣和出名一个量子实验。 这个实验的名气之大，已经有名到几乎要破圈而出的地步。它也号称是量子物理学中最难以让人理解，并且具备能摧毁正常人三观能力的超级恐怖实验。 这个实验的全称叫「惠勒延迟选择实验」。 惠勒实验的构想其实已经诞生了 40 多年了。在 1979 年，为纪念爱因斯坦诞辰 100 周年，科学界在普林斯顿召开了一场讨论会，在这次会议上，爱因斯坦的一个同事约翰·惠勒提出了「延迟选择实验」的构想。 惠勒通过一个戏剧化的思维实验提出，如果我们进一步改进对电子的双缝干涉实验，将检测电子的时机选择在通过双缝之后，也就是说，我们在发射了单电子后就计算时间，等电子穿过了木板上的缝隙之后，我们再去打开缝隙上的探测器，那么我们会观测到什么呢？电子究竟是以波的形式同时通过了双缝，还是以粒子的形式通过了单缝呢？ 这个思维实验初听起来似乎没有什么特别的地方，如果你有读过我专栏的上一篇内容，已经理解了粒子的波粒二象性，那么应该会理所因当地认为：电子穿过缝隙之后再放入探测器，电子肯定已经以波的形式同时穿过了两道缝隙，已经一分为二了，而探测器必然会在两边都探测到电子啊。 可是，结果并不是这样的！ 惠勒延迟选择实验既然能赢得传说中的世界观颠覆者、人生观毁灭者、因果律杀手、理科生躁郁症的重大致病首因等等各种响亮美名，自然不会是简单的浪得虚名。 实验的结果究竟是怎样的呢？ 我们先不着急揭晓结果，先来详细看看下这个实验具体该怎么做。 惠勒实验虽然原型是用的双缝干涉实验来改进，但是为了达到更好的实现效果，一般都改成了用光子镜面干涉的方式来做，为了方便不太了解该实验的朋友，我花一点文字把实验的具体设置和过程描述一下，如果熟悉的高手们尽可略过。 如图所示，该实验的具体布置非常简单，一共只用到七件主要的实验仪器，分别是单光子光源、半透镜 O、全反射镜 A 和 B、半透镜 C 和两只接收器（探测器）。 所谓半透镜，就是一种半镀银的透镜，有 50% 的概率会反射光线，50% 的概率会让光线直接通过。 我们先看图，我们先不在 C 处放置任何透镜和接收器。如果这时从光源处发射一只光子，那么光子会怎样传播呢？ 不太熟悉量子物理的朋友可能会说，那光子应该 50% 概率走上边，沿着 OAC 路径传播，50% 概率走下边，沿着 OBC 路径传播。 这样说也没错，如果现在光呈现出粒子特性的话，的确会如此。 但是，我们都知道光具备波粒二象性，它还可能像波一样传播。 如果像波一样，那么光就会同时走上下两条路径，同时到达 C 点。这时候，如果你在 C 点放置一个屏幕的话，同时沿着两条路径到达的光波还会与自身发生干涉现象，在屏幕上呈现出干涉图案来。 那么，光到底会呈现出粒子特性还是波动特性呢？ 答案是，取决于实验者所采取的观测手段而定！ 如果实验者在 OAC 或者 OBC 的路径上放探测器，检查光子具体从哪条路径传播，那么光子就马上会呈现出粒子特性，只会从一条具体的路径传播，在 C 点屏幕的干涉图案就消失了。 而如果我们不去检测光子走的哪条路径，故意忽视光子的路径信息的话，光子就会呈现波动特性，干涉图案又出现了。 说到这里，大家应该会心一笑，说我们早就知道量子就是这个尿性，上一章不是讲过吗？ 不检测就相当于虚拟世界里的粒子代码不执行，所以两条路径就会产生两个波函数，互相一叠加干涉图案自然就出现了，如果在路径上添加检测点的话，自然就是代码提前被执行输出了，那就只剩一条路径上有波函数了，自然产生不了干涉图案。 如果你能充分理解上面这段话的话，说明上一站你学的很认真，你的理解也很正确。 但其实，这并不是这个实验真正有趣的地方，这个实验真正有趣的地方是我们决定按照约翰·惠勒的想法来试试，将实验再推进一步。 我们让光子先出发，然后根据光速计算时间，等到光子已经经过了透镜 A 或者 B 之后，再决定如何观测。 具体的做法就是在 C 点，我们再准备一个半镀银的透镜和两只探测器，然后我们就可以先等光子发射，然后精确的控制时间，计算光子的飞行时间，等到光子已经经过了 A 或者 B 点之后，再决定是否插入 C 半透镜，那么现在就可能有两种情况： 这样，我们就可以通过不同的探测器输出模式来判断光子究竟展现的何种特性，以及插入 C 半透镜有没有影响光子之前的行为。 我们如果计算好时间，等光子通过 O 点之后再决定是否插入 C 半透镜的话，那么就能验证约翰·惠勒的想法了。 大家肯定认为，光子都已经经过了半透镜 O 点了，甚至都已经经过了反射镜 AB 了，那要么是以波的形式已经同时走了两条路径了，要么就是以粒子形式只走了一条路径。 介于光子在到达 C 以前肯定是没有被观测过，理论上应该是以波的形式同时走了两条路径吧，等你决定是否在 C 点插入透镜应该并不能改变已经发生过的事情了，也就是说无论实验者在后来再怎样去操作 C 点的透镜，应该都不会改变光子已经同时以波的形式经过了两条路径这个已经发生的事实吧。 所以，我们应该只在一边的探测器上能探测到光子才对。 但是，这时令人大吃一惊的现象出现了！ 我们在实验中居然发现光子经过了 A 或者 B 点之后再插入透镜 C，这个行为依然完全地决定了最后的观测结果。 也就是说，在光子飞到 C 点前的任何时刻，我们只要插入了透镜 C，干涉现象就出现了，我们只能在一边探测器观测到光子，只要不插入，干涉现象就不会出现，两边的探测器还是各有 50% 的概率观测到光子，而不管从时间上看光子是否已经越过了 O 点！ 这说明了什么？ 这说明先发生的光子行为居然非常诡异和后发生的观测行为完美匹配了起来，实验者在 C 点插入半透镜的行为虽然在光子经过 AB 点的时间点之后，但是却反过来影响了光子之前在整个传播过程中的特性表现。 天啊，原来这个实验令人震惊的地方在这里！ 这个实验不简单是证明观测会影响粒子的特性，更夸张的是颠覆了事件的因果关系。 我们在光子经过透镜之后实施的行为，怎么可能反过来去改变光子之前就发生的传播行为呢？这就好像是两者之间的因果关系被倒置了一般，真实世界为什么会发生这种事？ 我们再来梳理一下，从实验逻辑上来看，实验中事件发生的顺序似乎是这样的： 单光子发射 → 经过半透镜 O → 经过镜子 A 或 B → 半透镜 C 被插下 → 回溯修改传播路径 → 经过半透镜 C → 到达探测器 这已经完全不能理解了是吧，而且科学家们还在此基础上继续推进了一步，他们决定将实验中 OA 和 OB 的距离继续加大到星际空间的尺度，采用引力透镜来代替实验中的普通透镜。 结果大家猜怎样？ 实验结果果然与距离大小无关，光子依然我行我素。 不过在这个实验里，将尺度放大到这么夸张的地步后，给人的感觉就非常毛骨悚然了。 假设 OA 和 OB 的距离有一百万光年，那会发生什么？ 也就是说，我们可以等光子发射后，飞行了快一百万年之后，再决定是否插下半透镜 C，观测手段一旦改变，光子就得去修改之前一百万年的传播路径，这可以想象吗？ 那么，这漫长的一百万年的岁月里，这颗光子究竟在哪里呢？是同时在 OA 和 OB 吗？还是哪里都不在呢？它怎么有能力去改变百万年前发生的事情呢？ 一百万年啊，人类的全部历史都没有这么久。 而且，如果只是做思想实验的话，理论上我们可以通过观测行为去影响任意久以前的事情，那么整个宇宙的历史还真实吗？我们到底生活在一个什么世界里？ 好了，我们先放下这个细思极恐的问题，来看看虚拟世界版本的延迟实验诠释吧，也许世界还有救。 我们假设要在虚拟世界里继续开发我们的「量子世界」游戏，游戏里面要制作一个新的场景，于是我们先定义下这个场景的开发需求： 场景里有一位会发射隐形火球的法师，他发射的隐形火球既能像粒子一样飞行，也可以像波一样传播，至于究竟什么时候会怎样我们先放一边。 接着我们又设计了一些道具，包括两块可以一半概率反射火球法术的魔晶 O 和 C，然后还有两个魔法反射镜，两个当做目标的挨打小精灵。 好了，按实验图摆好位置后，一个魔法版的延迟实验我们就可以布置出来了。 接着，我们抓了一位码农，让他来完成这个实验的整个过程。 码农愁眉苦脸地琢磨了一会后，考虑到计算资源的紧张，他发现他不能无止境地计算火球每时每刻的位置和状态，这样做既消耗资源，又没有意义，他应该在关键时刻计算火球的命中结果就好了。 那应该在什么时候进行计算呢，码农分析了一下火球飞行的全过程，他发现有几个时间点可以选择： 第一个时间点就是火球刚刚发射的时候，这时候发射路径方向已经确定，因此全路径情况系统基本都已经得知，但是缺点是在火球飞行的过程中路径上的情况随时随地都会变化，所以系统需要关注路径上任何变化，这样计算量比跟踪火球还大了，所以此时计算过早了； 第二个时间点是路程中遇到交互事件的时候计算，比如遇到魔晶，或者中途跳进来的小精灵等等，但是这种事件太多了，比如说火球碰到了空气中的灰尘算不算呢，如果可能事件这么多，连续进行跟踪计算岂不是和实时计算也没区别了，起不到节省资源的作用。 那么能不能找个时间统一结算呢？那什么时间统一结算最合适呢？码农思考了一下感觉应该在观测之前的最后一刻计算最好，因为这样计算不会漏掉任何路径。所以码农选择了第三个时间点，也就是观测前的最后一刻进行火球飞行的全路径结算。 码农决定这样来安排整个实验的事件过程：