那台计算器和四十四个数字
二〇二三年十一月十九号,下午四点半,我在城南那家叫「拾光」的旧货店里翻到一台卡西欧 fx-82MS,外壳被晒得发黄,按键上的数字磨掉了一层。老板姓陈,我们都叫他陈叔,他坐在柜台后面剥橘子,抬头说了一句:「这个五块,能按,就是电池盖松了。」我把它拿在手里,食指不由自主地按了一下 RAND,屏幕跳出一个 0.734。那一瞬间我知道我为什么要买它了。陈叔多看了我一眼,没说话,把橘子皮扔进脚边的铁皮桶里,桶壁被砸得「当」一声。
回家路上我在想一个词:随机。我们总说「随便」「看运气」「碰一碰」,可手指真正落在按键上的时候,几乎没有一次是随便的。我买下这台计算器不是因为它随机,恰恰是因为它不随机——它被晒黄了、被按旧了、被某个人在某一年带到某个地方,这些痕迹全是确定的。所以后来我决定做这个站时,第一件事不是写代码,而是先弄清楚:我到底想让「数字随机模拟器」模拟什么?是模拟那种没人能预测的运气,还是模拟我们心里那点「假装交给天意」的心思?
陈叔那天还讲了个细节,让我记到现在。他说他年轻时在县城的粮站干活,每天下午要把一整摞单据上的编号念给同事抄录,编号是流水号,不会重样。可他念到第 139 号那天,发现前一页的最后一号也是 139,两张纸摞在一起,他愣了半分钟,最后谁也没告诉,把那张纸塞进了抽屉。我问他为什么不说,他把橘子咽下去,说:「说了就得查,查出来也还是这样,不如让那两个 139 待在一起。」你看,人对数字的感情,从来不在数字本身,而在它多出来的那一点点意外的重影。
回到计算器。按 RAND 得到的数是 0 到 1 之间的小数,按一次换一次,这台机器的算法在老式计算器里算得上简陋,但足够。我在晚上八点多坐在书桌前,打开台灯,一边按一边把结果记在便签上,从 0.734 开始,四十七次。中间有一件事我到现在都没法解释:在第 31 次和第 46 次,屏幕上先后两次出现了 0.428,中间隔了十几个数。我把这两条用红笔圈起来,盯着看了很久。你要问我随机数会不会重复,教科书会说会,可我心里知道,那天晚上我盯着这两个 0.428 的样子,一点也不像在看数学,倒像在看两扇位置相同的窗户。
我后来把这个习惯搬到了网页上。站里做了一个数字随机模拟器页面,可以按需生成数字串、设定上下限、固定小数位,还能把结果导出成一张带时间戳的便签——这是故意的,我不想让它变成一台冷冰冰的出号机器。有一次读者留言说,他用它给女儿抽周末去哪儿玩,抽到第 7 个结果时抽到了「植物园」,因为女儿属兔,他高兴了一晚上。这种留言我一条没删。4499浏览器直接进入 那个链接是我们自己测试用的入口,当初写出来只是为了省时间,现在反倒成了读者常点的一条路。
说到「随机数」这个词,我得说句可能不太讨喜的话:绝大多数人想要的不是随机,是公平的错觉。他们希望结果不可预测,又希望结果符合预期;希望没人作弊,又希望那个人是自己。这几乎是矛盾的。我在设计模拟器的时候,一度想加一个「连抽」功能,后来又砍掉了——因为连抽最容易让人产生「快要中了」的念头,而那个念头跟随机没有关系,是赌徒的呼吸。工具要诚实,诚实就得有点不好用。
也有读者拿它去干正经事。一位姓周的老师给我发过邮件,说她带小学四年级的数学课,用 1到49随机选二十个数 这个页面的原理讲抽样,让孩子们先在纸上写二十个自己觉得「够散」的数,再用工具跑一遍,然后比一比哪个更像真的。她挑了个叫个「子谦」的男孩,写出来的二十个数里有十一个是连着的。全班笑作一团,子谦红着脸说「我以为这样才不规律」。这个细节我一直记着,它比任何一段说明文字都说明问题:人对随机的直觉,大概从十岁起就已经在骗自己了。
我还收集旧排版软件留下的碎片,比如 小月美化包官方网站 那种老论坛时代的东西,花花绿绿的边框、滴水的水滴、会闪的「欢迎光临」。有人觉得丑,我倒觉得那是真有人用手一段段敲出来的痕迹。这种手工感和随机数其实很像:每一处都是人为,合在一起却像偶然。我现在还留着那只计算器,电池盖用透明胶带缠了两道,按 RAND 的时候会先顿一下,再跳数。四十七次里出现的两个 0.428,我把便签贴在书桌左上角,纸边已经卷了。
二〇二四年开春陈叔的店搬过一次,我去帮忙抬箱子,在柜台抽屉最底下看见一张压得发脆的粮站单据,编号果然是 139。他看了一眼,笑说:「怎么还在这。」我说留着吧。我们俩谁也没再提那两个数。有些随机就是这样,你把它当没发生过,它就真的只在纸里待着。