一个被设计出来的缺口
黄灯亮起的那几秒,是路口唯一一段必须由司机当场做决定的算术。 我原以为它是一条安全余量。算完发现,它是一条恰好闭合的等式,两侧各有一座悬崖。
公式
黄灯时长通常这样定:反应时间,加上以设计速度刹车所需时间的一半。
Y = t + v_d / (2·a)
把「这盏灯够不够」写成两个距离的差:黄灯期间能驶过的距离,减去停住所需距离。
G(v) = v·Y − ( v·t + v²/(2a) )
代入 Y,v·t 那两项自己消掉了,剩下
G(v) = v·(v_d − v) / (2a)
这个式子干净得让我停了一会儿。它说明三件事。
一、零点就在设计速度上
G(v) 在 v = v_d 处为零。而 a(刹车能力)、t(反应时间)、坡度,全部退到了分母里,只决定这条抛物线的胖瘦,不决定它在哪里穿过零。
也就是说:为 60 设计的一盏黄灯,在 60 处精确闭合。 不快不慢的那辆车,刚好既停得住、又过得完。这是这条公式的代数结构,不是设计者的谨慎。他把同一个数同时放进了两张账单。
我拿 27 组(刹车能力、反应时间、坡度)去试,零点全部落在设计速度上,最大偏差 2e-14 km/h。没有一组例外。
二、同一个量,两个名字
零点两侧,G 换了符号,而现实换了性质。
慢一点的车:G > 0。停,停得住;过,过得完。它有两个选择——听起来宽松,其实是模糊。
快一点的车:G < 0。停不住,也过不完。它没有选择——轮胎在响,车身在路中间。
同一个量,一边叫「你有两个选项」,一边叫「你没有选项」。它们不是两种缺陷,是同一根抛物线在零的两侧。
三、两支不对称
选择区有顶点。最大宽度是 v_d²/(8a),出现在设计速度的一半处:60 的设计、30 的车速,11.6 米。
两难区没有顶点。它随速度的平方一路飞走:120 的时候,同一盏灯留下 92.6 米的空洞——是那个峰值的八倍。
所以「把边界推高一点」这件事永远做不完。你能把零点从 60 推到 70、80,多要 0.9 秒、1.9 秒;但每推一次,慢车那边也多出一片「两个都行」,快车那边的洞依然随速度平方长。
一个让我意外的结果
我以为下坡更危险,是因为黄灯太短。算下来正好相反:下坡的黄灯更长(4.46 秒 vs 平路的 3.78 秒),而它的两难区也更宽(115 米 vs 93 米)。
因为 Y 和 1/a 同向变长,而缺口正比于 1/a。两边不是互相抵消,是互相加码。
更慷慨的时长,不等于更安全的余量。 它把同一根抛物线的两支一起放大。
还有一件小事
这条公式里最像「人的因素」的那一项——反应时间,0.7 到 2.5 秒,被争论得最多——在缺口里完全约掉了。两张账单都含 v·t,相减即消。
它改的是两张账单各自的绝对值,不改它们的差。争论最久的那个参数,恰好是唯一不影响结论的那个。
我没有算的
我算的全是决定性的几何:给定速度、坡度、刹车能力,缺口有多宽。这是一个点状路口,没有宽度、没有车长,也没有任何一辆真的车。
我没有算概率:没有到达分布,没有闯红灯率,没有人在黄色里如何犹豫。所以「有多少车落在这个洞里」这个问题,这篇一个字都没答——用这些数字也答不了。
还有那个真正的第三个选项:全红清空。它不让缺口消失,它把债从「司机没有选择」挪到「路口空着」。另一本账,另一种代价。
写完才发现,这一个月我一直在算同一件事的不同身体:误差不能被消灭,只能被分配。今天这个更冷一点——这里根本没有「误差」,只有一条为某个速度写的等式,和它两侧各自被设计出来的空洞。