下一章 上一章 目录 设置
7、第七章 生日密码 ...
-
林见星的生日,十一月初三
清晨六点二十九分,林见星准时醒来。房间的温度是21.5摄氏度——空调恒温系统精确运转的结果。他睁开眼睛,看着天花板上熟悉的光影图案,大脑在三十秒内完成从睡眠到清醒的过渡。
今天是他的十六岁生日。
这个事实在他的待办事项列表里,优先级排在“完成物理竞赛习题集第四章”和“复习英语不规则动词表”之后,大约与“清洗运动鞋”同级。生日是时间轴上的一个标记点,仅此而已。
他坐起身,按计划完成晨间流程:五分钟伸展运动,七分钟洗漱,三分钟穿衣。六点四十五分,他坐到书桌前,打开笔记本电脑,检查邮箱。
收件箱里有三封新邮件:一封是数学竞赛的补充材料,一封是学校图书馆的到期提醒,还有一封……没有发件人。
邮件的主题栏只有一个符号:π。
林见星皱眉。垃圾邮件通常会使用更耸动的标题。他点开邮件。
正文是一片空白。只有一个附件,文件名是“problem_001.pdf”。大小只有23KB,不像病毒。
他的手指在触摸板上悬停了三秒。理性分析:陌生邮件,可疑附件,安全风险等级中高。但那个π符号……某种直觉让他点击了下载。
PDF打开。页面上只有一道题:
【第一层:算术之门】
求解下列数列的第100项:
3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, …
林见星盯着这行数字。前三秒,他以为这是随机数列。第四秒,他看出来了——这是圆周率π的十进制展开:3.1415926535……
第100项?他不需要计算到第100位。他知道π的前100位,因为去年某个失眠的夜晚,他背过。这是一种精神训练,像跑马拉松一样,测试记忆力的极限。
答案是:第100位是9。
他在纸上写下9。
几乎同时,电脑屏幕刷新了。PDF文件自动跳转到下一页——仿佛它一直在监视他的动作。
【第二层:几何之钥】
已知:在三维直角坐标系中,点A(3,1,4),点B(1,5,9),点C(2,6,5)。
求:过这三点的最小球体的球心坐标。
林见星的笔尖在纸上停顿了一瞬。三点确定一个圆,但不确定一个球体——除非这三点正好在一个大圆上。他需要验证共面性。
计算叉积:(B-A)×(C-A) = (1-3,5-1,9-4)×(2-3,6-1,5-4) = (-2,4,5)×(-1,5,1) = …
他快速心算:i分量:41 - 55 = 4-25 = -21;j分量:5(-1) - (-2)1 = -5+2 = -3;k分量:(-2)5 - 4(-1) = -10+4 = -6。
结果向量(-21,-3,-6) ≠ 0,所以三点不共面。它们确定唯一的球体。
球心坐标可以通过解方程组得到。林见星列式:设球心O(x,y,z),半径R。则|OA|=|OB|=|OC|=R。
他写下三个方程:
(x-3)²+(y-1)²+(z-4)² = R²
(x-1)²+(y-5)²+(z-9)² = R²
(x-2)²+(y-6)²+(z-5)² = R²
消去R²,得两个线性方程。他求解,得到:
x = 1.5
y = 3
z = 6
球心O(1.5, 3, 6)。
他写下答案。屏幕再次刷新。
【第三层:星空之锁】
将前两题的答案转化为坐标:
纬度 = (第一题答案) × 10 + (第二题x坐标)
经度 = (第二题y坐标) × 100 + (第二题z坐标)
在以下星图网站输入坐标:
stellarium-web.org
林见星计算:纬度 = 9×10 + 1.5 = 91.5?等等,纬度范围是-90到90。91.5显然不合理。
他重新审视题目。“(第一题答案)”——他写的是9,但圆周率第100位确实是9。除非……
啊。第一题问的是“第100项”,而他直接给出了第100位的数字。但数列的第100项,如果从第一项是“3”开始算,那么第100项确实是π的第100位数字,是9。
所以计算没错。但91.5的纬度不可能存在于地球坐标系。
除非这不是地理坐标。
林见星打开浏览器,输入stellarium-web.org。这是一个开源的天文模拟网站,可以查看任意时间地点的星空。页面加载后,他在搜索栏输入“91.5, 303”——这是计算出的坐标:纬度91.5,经度3×100+6=306?等等,是303还是306?
他重新计算:经度 = y×100 + z = 3×100 + 6 = 306。
输入“91.5, 306”。
系统报错:坐标超出范围。
他盯着屏幕,忽然明白了。91.5 > 90,所以这很可能不是地理纬度,而是某种自定义坐标系的参数。stellarium-web除了标准的天球坐标系(赤经赤纬),还支持其他坐标系:银道坐标系、超星系坐标系……
他尝试将(91.5, 306)转换为赤道坐标。赤纬范围是-90到+90度,所以91.5需要处理。假设是赤纬,91.5-90=1.5,那么可能是赤纬+1.5度。经度306度换算为时角:306/15=20.4小时,即20时24分。
他在stellarium里输入赤道坐标:赤经20h24m,赤纬+1.5°。
屏幕上的星空旋转,聚焦到一片稀疏的星区。那里没有亮星,只有几颗五六等星,微弱得几乎看不见。
林见星放大。在坐标点中心,出现了一个标记——不是天文对象,是用户标记。标记的名称是:
S.W.C & L.J.X
沈望辰和林见星。名字的首字母。
标记旁边有一行小字:“虚拟天体,创建于2023年11月3日。描述:双星系统,轨道参数待测定。”
林见星一动不动地坐着。早晨的阳光从窗外斜射进来,在书桌上切出一块明亮的光斑,灰尘在光柱中缓缓旋转。电脑屏幕上的星空静默无声,那个小小的标记在几颗暗淡星子的背景前,像一句无人认领的告白。
他看了眼屏幕右下角的时间:7:23。从他打开邮件到现在,过去了三十八分钟。
三十八分钟,他解了三道题,破解了三层加密,最终到达这个坐标,这个用他们名字命名的坐标。
理科生的浪漫。混乱中的秩序。沈望辰式的礼物。
林见星保存了那个星图页面。然后他打开微信,给沈望辰发了一条消息:
“礼物收到了。”
三秒后,回复来了:
“破解时间?”
“38分钟。”
“比预计快两分钟。生日快乐,林见星。”
林见星盯着最后那句话。生日快乐。从沈望辰那里听到(看到)这句话,感觉很奇怪。不是家人那种理所当然的祝福,也不是同学那种社交礼仪式的问候。而是……经过了三十八分钟智力劳动才解锁的祝福。
他打字:
“为什么是那个坐标?”
“因为那片星空没有名字。” 沈望辰回复,“至少现在有了。”
林见星关掉聊天窗口。他重新看向stellarium的界面。那片星空依然在那里,微弱,不起眼,在银河系的边缘地带。但在沈望辰构建的宇宙里,它有了一个名字。
一个包含两个人名字的名字。
他截了图,保存到名为“重要文件”的文件夹里。然后他关闭电脑,站起身,按原计划开始一天的学习。
但每隔一小时左右,他会不自觉地打开那个截图,看一眼。
像是在确认什么确实存在的东西。
沈望辰的生日,三月十五日
三个月后,下午四点,学校篮球场。
沈望辰刚结束训练,浑身是汗。三月的风还带着凉意,吹在湿透的球衣上,激起一阵鸡皮疙瘩。他抓起场边的毛巾擦脸,然后从包里拿出手机。
三条未读消息:妈妈发的生日祝福,爸爸转账的记录,还有林见星的一句:
“六点,老地方。”
老地方。指的是小区旁边那个半废弃的篮球场——水泥地开裂,篮筐有点歪,但人少,安静。他们偶尔会在那里一对一。
沈望辰回复:“好。带礼物了吗?”
“带了。”
简单直接。典型的林见星风格。
沈望辰笑了。他收拾好东西,慢慢走回家。洗澡,换衣服,吃了一碗自己煮的面——父母都在出差,生日晚餐只能自理。五点四十分,他出门。
老篮球场在小区后门的小公园里。他到的时候,林见星已经在那里了,坐在场边的长凳上,膝上放着一个扁平的纸盒。
“准时。”沈望辰走过去,在林见星旁边坐下,“六点整。”
“时间管理是基本能力。”林见星说,把纸盒递过来,“生日快乐。”
纸盒没有包装,就是普通的牛皮纸色,用透明胶带封着。重量适中,大概两公斤左右。沈望辰摇了摇,里面有东西滚动。
“可以打开吗?”他问。
“可以。”
沈望辰撕开胶带,打开盒盖。里面是一个篮球——但不是新的。是他用了两年的那个篮球,斯伯丁的,皮革已经磨损,有几个地方磨得发亮。
“你拿我的球送我?”沈望辰挑眉。
“改造过。”林见星说。
沈望辰把篮球拿出来。重量感觉没什么变化,表面看起来也差不多。但当他翻转篮球,在某个特定角度下,他看到皮革表面有极细微的纹路——不是自然磨损,是刻上去的。
他凑近细看。那些纹路不是图案,是……公式?
“需要放大镜吗?”林见星从口袋里掏出一个便携式放大镜,递过来。
沈望辰接过,对着篮球表面看。在放大镜下,那些纹路清晰起来:是一段物理公式,用极细的线条刻在皮革的纹理之间,不仔细看根本发现不了。
公式很长,绕篮球一周:
∇·E = ρ/ε₀
∇·B = 0
∇×E = -∂B/∂t
∇×B = μ₀J + μ₀ε₀∂E/∂t
麦克斯韦方程组。电磁学的基本方程。
但在每个方程的下方,还有更小的注释,用几乎看不见的字体:
系数:ε₀ = 8.854187817 × 10⁻¹²
μ₀ = 4π × 10⁻⁷
边界条件:在r=0.12m处,E_t连续,B_n连续
求解域:球坐标系,0≤r≤0.12,0≤θ≤π,0≤φ≤2π
“这是……”沈望辰抬头看林见星。
“一道题。”林见星说,“求解这个边界条件下的电磁场分布。提示:球对称,可以考虑多极展开。”
沈望辰盯着篮球,又看向林见星:“你把一道物理题刻在我的篮球上?”
“不止。”林见星从纸盒底部拿出一张纸,“这是解题步骤。但最后的答案,需要你自己算。”
沈望辰接过纸。上面是完整的推导过程,字迹工整得像是印刷的:从麦克斯韦方程组出发,利用球对称性简化,分离变量,勒让德多项式展开……
他的目光直接跳到最后一页。那里没有最终答案,只有一个表达式:
E(r,θ,φ) = Σ[l=0 to ∞] (A_l r^l + B_l r^{-l-1}) P_l(cosθ) e^(imφ)
系数A_l, B_l由边界条件确定
而在表达式下方,林见星写着一行小字:
“当l=0,m=0时,主项系数为:”
然后是一个空白框。
沈望辰抬头:“我需要计算l=0的系数?”
“对。”林见星点头,“那是最简单的部分。笔和纸在盒子里。”
沈望辰找到了一支笔和几页草稿纸。他坐下来,开始计算。边界条件是球面r=0.12m处的电场切向连续。对于l=0的球谐函数,P_0(cosθ)=1,与角度无关。
他推导了十分钟,得到结果:A_0 = 某个值,B_0 = 某个值。然后把它们代入电场表达式。
得到的电场表达式很简单:E(r) = C / r²,其中C是一个常数。
他计算C的数值。代入ε₀和μ₀的值,计算过程中出现了π,出现了自然常数e,还有一些其他的数字。
当他最终算出C的数值,并把它写下来时,他愣住了。
那个数字看起来有点眼熟。
他把它转换成十进制:2.718281828459045... 这是自然常数e的前几位。
但不止如此。C的表达式里还包含了其他常数。他重新整理,发现C可以写成:
C = (e/π) × 10⁻²×某个系数
他计算那个系数:大约是 3.1415926535... 这是π。
所以 C = (e/π) ×π × 10⁻²× ... 等等,不对。
沈望辰皱眉,重新计算。他把所有常数明确写出来:
C = [一个包含e、π、和一些简单整数的表达式]
他简化那个表达式。e和π约掉一部分,整数运算得到... 他一步步算:
分子:e × 4 × 100
分母:π ×ε₀ ×μ₀ ×一些东西
代入数值。ε₀ = 8.854187817×10⁻¹²,μ₀ = 4π×10⁻⁷。
计算过程中,许多常数神奇地约掉了。最终他得到:
C = 一个很长的数字
他把那个数字写下来:2.406...×10⁻³?不对,单位不对。
沈望辰停笔。他意识到自己可能走错了方向。这不是在计算物理量,这是在解码。
他看向林见星。对方安静地坐着,看着远处的夕阳,侧脸在暮光中显得格外沉静。
沈望辰重新审视那个表达式。也许他不需要计算具体的数值,只需要看出模式。
他注意到,在计算过程中出现的那些常数:e, π, 还有整数2,3,4,5... 像是某种编码。
他把这些数字按出现顺序写下来:
2.71828... (e)
3.14159... (π)
4
5
9
2
6
...
等等,这个序列他见过。圆周率π的展开:3.1415926...
但e的展开是2.71828...
如果交替取e和π的数字呢?e的第一位是2,π的第一位是3,e的第二位是7,π的第二位是1...
2,3,7,1,8,4,2,5...
这不构成有意义的序列。
也许不是交替。也许……沈望辰突然想到林见星生日时他设计的那个谜题。三层加密,最终指向一个坐标。
那么,这个篮球上的谜题,会不会也是多层加密?
第一层是麦克斯韦方程组。
第二层是边界条件和求解。
第三层是那个系数C。
但C本身是一个数学表达式,当它被计算出来时,会产生一个数字序列。那个序列可能就是最终的信息。
沈望辰决定相信直觉。他不再试图给C赋予物理意义,而是纯粹把它当作一个数学对象来处理。计算C的数值,保留足够多的小数位。
他拿出手机,打开计算器应用。一步步代入数值,谨慎计算。
二十分钟后,他得到了C的数值,精确到小数点后二十位:
C = 0.131411362217345...
这个数字看起来随机。但沈望辰注意到,如果把它乘以100,得到13.1411362217345... 前两位是13,后面是141136... 141136是π的前几位乘以10⁻¹?
等等,141136不是π的前几位。π是3.14159... 乘以10得到31.4159...
沈望辰感觉自己在兜圈子。他抬头看林见星:“给个提示?”
“已经给了。”林见星说,目光依然看着远方,“在边界条件里。”
边界条件。球面r=0.12m。0.12有什么特殊?沈望辰想了想,忽然明白了:0.12米就是12厘米。篮球的半径大约是12厘米。
但这不是重点。重点是0.12这个数字本身。
如果C=0.13141136... 那么C/0.12 ≈ 1.09509468... 这也没意义。
除非……沈望辰脑中灵光一闪:也许需要把C看作某种编码后的文本。数字到字母的映射。
最简单的映射:1=A,2=B,3=C,以此类推。那么C=0.13141136... 去掉小数点,是131411362... 转换成字母:13=M,1=A,14=N,1=A,13=M,6=F,2=B...
MANAMFB?无意义。
也许不是简单映射。也许是ASCII码?但ASCII码通常是两位数或三位数。
沈望辰看向林见星。夕阳已经完全沉到建筑物后面,天空是深蓝色与橙红色的渐变。林见星的侧脸在暮色中有些模糊,但沈望辰能看到他微微上扬的嘴角。
他在笑。很浅,但确实在笑。
沈望辰忽然明白了。他不需要破解所有加密。因为林见星已经给了他最大的提示:这是一个生日礼物。那么最终的信息一定与生日有关。
他重新看那个数字C:0.131411362217345...
如果这是某种日期呢?13月14日?但13月不存在。
除非是时间:13点14分?但后面还有数字。
沈望辰尝试把小数点移动:1314.11362217345... 1314,一生一世?太俗套,不是林见星的风格。
他闭上眼睛,让大脑放空。在黑暗中,数字像星点一样漂浮。0.1314... 1.314... 13.14... 131.4...
忽然,他想到了什么。
他睁开眼睛,在纸上写下:
如果C = 0.1314113622...
那么 1/C = 大约 7.609...
没意义。
但如果把C乘以某个常数呢?乘以π?0.1314×3.1416≈0.4127。还是没意义。
沈望辰几乎要放弃了。然后他想起林见星说的“边界条件”。在电磁学里,边界条件决定了解的唯一性。在这个问题里,边界条件是球面r=0.12m处的电场连续性。
0.12。十二。
今天是他生日,三月十五日。3月15日。3.15。
也许需要把C和3.15结合起来。
C × 3.15 = 0.1314×3.15 ≈ 0.41391
还是没意义。
沈望辰放下笔,靠回长凳上。天色几乎完全暗了,路灯一盏盏亮起来。篮球场边的梧桐树在风中沙沙作响。
“需要更多时间?”林见星问,声音在暮色中显得很轻。
“给我最后十分钟。”沈望辰说。
他重新拿起篮球,用手指抚摸那些刻上去的公式。皮革的触感很熟悉,这是他用了两年的球,每个磨损处都有记忆:那个凹痕是去年夏天在水泥地上磕的,那片光滑是无数次运球的结果。
然后他的手指停在某个地方。在麦克斯韦方程组的最后一个方程旁边,有一个极小的点,像是刻刀不小心留下的。但在放大镜下看,那不是一个点,是一个微小的符号:→
箭头。指向什么?
沈望辰沿着箭头指示的方向转动篮球。箭头指向篮球的气嘴。普通篮球的气嘴是凸起的,但这个球的气嘴……似乎有点不同。
他仔细看。气嘴周围有一圈极细的刻痕,形成一个圆环。圆环上刻着刻度,像钟表一样,但只有四个标记:N, S, E, W。
东南西北。
气嘴本身可以转动。沈望辰试着转动它,发现它可以像旋钮一样旋转,有轻微的咔嗒声,像是里面有卡槽。
他忽然明白了。这不是普通的气嘴,这是一个密码锁。
那么密码是什么?四位数字?还是字母?
他想到了C:0.13141136... 也许前四位是1314。
他把气嘴上的N对准某个参考点,然后转动:1-3-1-4。
咔,咔,咔,咔。
最后一声咔嗒后,气嘴弹开了一点点。沈望辰小心地把它拔出来——不是完全拔出,只是露出一小截。里面是中空的,塞着一张卷起来的纸。
他取出纸,展开。纸很小,只有邮票大小,上面印着一行字:
“当所有常数消去,剩下的就是信息本身。”
沈望辰盯着这句话。所有常数消去……在物理中,无量纲的量才是本质的。
他回顾自己的计算。在计算系数C时,他代入了ε₀和μ₀的值,代入了π和e。但如果这些常数都消去了呢?
他重新检查C的表达式。确实,在简化过程中,ε₀和μ₀常常以乘积形式出现:ε₀μ₀ = 1/c²,其中c是光速。
而π和e也可能在运算中消去。
如果他假设所有物理常数最终都消去,那么C应该是一个纯数字,由整数和基本运算构成。
沈望辰尝试这样做:不代入具体数值,只做符号运算。他重新推导系数A_0和B_0,保持ε₀、μ₀、π、e为符号。
推导过程很繁琐,但他坚持下来。最终,他得到了一个表达式:
C = (某个包含整数的式子) × (e/π) × (某个因子)
那个因子中包含ε₀和μ₀,但ε₀μ₀=1/c²,而c也会在边界条件中出现……
他继续简化。一页纸,两页纸。
最后,当所有常数真的消去时,他得到了一个极其简单的表达式:
C = (2×5) / (7×11) × (13/17) × ... 是一系列素数的比值。
但这仍然是一个数学表达式,不是信息。
除非……沈望辰看着那串素数:2,5,7,11,13,17...
他忽然想到一个可能性:这些素数是不是索引?指向字母表中的位置?
第2个字母:B
第5个字母:E
第7个字母:G
第11个字母:K
第13个字母:M
第17个字母:Q
BEGKMQ?无意义。
但如果不是字母表,而是某本书的页码行数?或者是……
沈望辰看了一眼林见星。对方依然安静地坐着,但此刻转过头来,看着他。路灯的光落在林见星的眼镜片上,反射出两个小小的光点。
“你希望我找到什么?”沈望辰问。
“你已经很接近了。”林见星说,“想想生日祝福通常用什么语言表达。”
语言。中文?英文?
如果是英文,“Happy Birthday”?
沈望辰看着那串素数。如果把它们转换成字母,但用不同的映射方式……
等等。素数序列:2,5,7,11,13,17... 如果只取前几个呢?2,5,7,11。
2=B,5=E,7=G,11=K。还是没意义。
除非是中文。但中文不是字母文字。
沈望辰感觉自己的大脑在过热运转。他深吸一口气,决定换种思路。也许他不需要完全破解,也许林见星已经给了他足够多的提示。
他拿起那张小纸条:“当所有常数消去,剩下的就是信息本身。”
如果所有物理常数都消去了,那么信息应该与物理无关,只与数学有关。而数学中,最基本的元素是数字。
数字可以表示一切:文字、图像、声音。
那么,如果C是一个编码后的信息,最简单的方式是把它看作ASCII码的十进制表示。
沈望辰把C的数字序列写出来:0.131411362217345... 去掉小数点,取前几位:1314113622...
ASCII码通常是三位数。131、411、362、200...
他查手机上的ASCII码表:
131:扩展ASCII,不是标准
411:超出范围
362:超出范围
不对。
也许需要把C乘以某个倍数,使数字进入合理的范围。乘以1000:131.411... 还是不对。
沈望辰几乎要放弃了。这时,他无意中看了一眼篮球。在路灯的光线下,那些刻上去的公式反射出微弱的光。而在某个角度,他看到了一些之前没看到的东西:在皮革的纹理之间,有更浅的刻痕,像是用钝刀轻轻划过的。
他调整角度,让光线几乎平行于球面。这下看清了:那些浅痕不是公式,是字。极小的中文字。
他拿起放大镜,一个字一个字地辨认:
“系数C的整数部分是密钥”
整数部分?C=0.1314... 整数部分是0。0不是密钥。
除非……沈望辰忽然想到,也许他计算错了C的值。或者,C有不止一个表达式。
他回头看自己的推导。在计算过程中,有一个积分常数他随意设为了零。但如果那个常数不为零呢?
他重新计算,这次保留积分常数K。经过一番推导,新的C表达式为:
C = 原来的值 + K ×某个因子
为了使C有意义,K可能需要取特定值。
他尝试令K = 1。新的C ≈ 1.1314...
整数部分是1。
1作为密钥?太简单。
但如果把C乘以10呢?13.14... 整数部分13。
13。沈望辰的生日是3月15日,1+3+1+5=10,不是13。
他继续尝试。如果K=2,C≈2.1314,整数部分2。
忽然,他脑中闪过一个念头:如果整数部分就是日期呢?今天是3月15日,315。
那么C应该大约是315.xxx。
他倒推:设C = 315 + 小数部分,那么K需要约等于315/某个因子。
他计算那个因子,得到K ≈ 315 ×某个数 ≈ 2400。
这么大的K显然不合理。
沈望辰放下笔。他感到一种挫败感——不是因为没有解开谜题,而是因为他觉得林见星设计了这个谜题,一定相信他能解开。而他辜负了这份信任。
这时,林见星开口了:“你已经得到了最重要的部分。”
“什么部分?”
“消去常数的过程。”林见星说,“在物理学中,当我们说‘理解’某个现象时,通常意味着我们找到了描述它的最简单形式,剥去了所有非本质的细节。”
沈望辰看着他。
“这个礼物,”林见星继续说,声音在夜晚的空气中清晰如冰,“不是为了难倒你。是为了让你体验那个过程:从复杂到简单,从无序到有序,从问题到解答。”
“所以答案不重要?”
“答案很重要。”林见星说,“但寻找答案的过程同样重要。”
沈望辰沉默了一会儿。然后他说:“直接告诉我吧。我认输。”
林见星摇了摇头。他从口袋里拿出一个小型紫外手电筒,打开,照向篮球。
在紫外线下,篮球表面显现出新的图案:那些公式的线条发出蓝色荧光,而在这些线条之间,有更亮的荧光字迹。
沈望辰凑近看。那些字迹组成四个汉字:
生日快乐
就在篮球的气嘴旁边,一圈荧光字围成一个圆环,像是给这个小小的开口加了一个光环。
“这是……”沈望辰说不出话。
“透明荧光涂层。”林见星关掉紫外灯,“只有在特定波长的光下才能看到。”
“所以谜题……”
“谜题是真实的,答案也是真实的。”林见星说,“如果你继续计算,你会发现系数C的小数点后第15到18位是0315,你的生日日期。而如果你把C乘以10^4,取整数部分,是1314,一个常见的祝福数字。但更重要的是……”
他停顿了一下。
“更重要的是,这个篮球本身。”林见星的声音很轻,“是你的篮球,我改造了它。现在它包含了一道我们共同解过的题,一段我们讨论过的物理,和一个隐藏的祝福。每当你用它时,这些都会在那里,即使看不见。”
沈望辰低头看着手中的篮球。在普通光线下,“生日快乐”那几个字又看不见了。但他知道它们在那里,就像知道那些刻上去的公式在那里,就像知道这个球陪伴他的两年记忆在那里。
“谢谢。”他说,声音有点哑。
“不客气。”林见星站起来,“生日快乐,沈望辰。”
他们一起走回家。夜晚的风很凉,但沈望辰抱着那个篮球,感觉掌心温暖。
在8号楼大堂等电梯时,沈望辰说:“你生日时,我送你一个虚拟坐标。我生日时,你送我一道刻在篮球上的物理题。”
“嗯。”
“下次会是什么?”沈望辰问。
“不知道。”林见星说,“但可以确定的是,一定包含数学或物理。”
电梯来了。他们走进去,镜面门映出两个身影:一个抱着篮球,一个双手插在口袋里。
“这很好。”沈望辰看着镜中的林见星,“用我们自己的语言。”
林见星点了点头。
电梯上升。在沉默中,沈望辰忽然说:“那个系数C,我还会继续算。我要得到完整的推导。”
“随你。”林见星说,但沈望辰看到他嘴角又上扬了一点。
十二楼到了。他们走出电梯,在各自的门前停下。
“晚安。”沈望辰说。
“晚安。”
门关上。沈望辰走进自己家,没有开灯,而是打开紫外手电筒,照向篮球。蓝色的“生日快乐”在黑暗中发光,像一个秘密的星座。
而在对面1201,林见星坐在书桌前,打开电脑。他点开stellarium,输入那个坐标:赤经20h24m,赤纬+1.5°。
星空旋转,聚焦到那个标记:“S.W.C & L.J.X”。
他看了很久,然后轻声说:“生日快乐。”
像是说给屏幕里的星空听,又像是说给一墙之隔的某人听。
夜空无声,但那些看不见的祝福,像电磁波一样,穿过墙壁,穿过空气,在两人之间建立起一个不可见的场。
而在这个场中,所有的常数都消去了,只剩下最本质的东西:
两个少年,两个生日,两份用科学语言写成的礼物。
和那些尚未言明、但已经存在的什么。