结果差异巨大。“法律原文”组的程序在时长一小时的行驶过程中平均开出了490张罚单,“法律意图”组的程序则平均开出了1.5张罚单,而第三组的程序连一张罚单都没开出来。程序员个体之间的差异甚至更大:一位程序员给这次短短的行驶过程开出了932张罚单,而许多人只开出了一两张。
差异因何而来?实验结果表明,几乎所有的预先规定都能以不同的方式被解释和编写。仅对“如何界定违规”这一问题就有许多不同的答案。某人在限速每小时50公里的区域时速快了两公里,然后将降到48公里,而后又加速到54公里,之后又降速到47公里。他违规了多少次呢?因为两次超过了限速而算作两次违规,还是因为加入了对违规时间间隔的考虑,而将两次违规算在一起从而只算一次违规?那么两次超速行为间隔多久,才能被算作一次超速呢?程序员们有的选择30秒,有的选择30分钟。又或者,因为驾驶员一直在宽容限度之内行驶,所以在本例中一次违规行为都没有?那么这个宽容限度又该是多少呢?
还有许多其他的问题。一位程序员开出的罚单以此为依据:看驾驶员在违规时有无收到系统的警告,因为他在收到警告后有几秒钟的时间调整行驶速度。这样的反馈系统会大大改变罚单的数量。另外一位程序员建议,惩戒视情况而定:针对深夜空荡荡的高速公路上的违规行为的惩戒应该与白天繁忙的城市交通中的有所不同。另一个影响罚单数量的重要因素,是程序员们选择何种粒度的数据。行车记录中的速度精确到了小数点后6位,但在进一步的观察中科学家发现,程序员在编写程序时行车速度只精确到了每小时0.6公里。也就是说,程序员如何取整数值,也能造成巨大的差别。
139
第四章超负荷的制度