尘土与星辰 -1992|第178章|边界条件|中文
`import sys` 之后,光标在空白处规律地闪烁。四十八小时的倒计时,从这一秒开始。林尘没有急着写逻辑。他抽出一张A4草稿纸,用铅笔在中央画了一条时间轴。相位噪声、滑动窗口、O(n)时间、O(1)空间。题目很干净,没有多余的修饰,但陷阱全在边界里。工业数
第178章 边界条件
import sys 之后,光标在空白处规律地闪烁。四十八小时的倒计时,从这一秒开始。林尘没有急着写逻辑。他抽出一张A4草稿纸,用铅笔在中央画了一条时间轴。相位噪声、滑动窗口、O(n)时间、O(1)空间。题目很干净,没有多余的修饰,但陷阱全在边界里。工业数据从来不是教科书上的完美序列,断点、毛刺、越界值才是常态。他必须在内存不扩容的前提下,把噪声滤掉。
他闭上眼,手指在桌面上虚敲。滑动窗口如果存历史值,空间复杂度必是O(k)。要压到O(1),只能维护窗口的统计特征,或者用数学递推抵消冗余。他想到之前在省计量院校准寄存器时用的滑动平均滤波,但那是硬件层面的累加器,软件里直接累加会溢出。得用差分。他睁开眼,在纸上写下递推公式:S_new = S_old + x_in - x_out。但噪声不是均匀分布的,需要加权。他改用指数移动平均的变体,只保留上一个状态值和当前输入,空间占用恒定。时间复杂度遍历一次数组,O(n)成立。
逻辑跑通,他切回编辑器。左脚脚踝的绷带已经干硬,摩擦鞋帮时带来钝痛。他调高台灯亮度,把防震箱里的冰袋拿出来,隔着毛巾敷在膝盖下方。冷敷能压住神经末梢的异常放电。他设定手机闹钟:四十五分钟。时间一到,必须站起来走动,哪怕只是去门口接杯水。代码不能停,但身体不能垮。
指尖落在键盘上。他先写数据读取模块,用sys.stdin流式读取,避免一次性加载大文件吃满内存。接着是核心滤波函数。变量名保持极简:prev_state, curr_val, alpha。没有花哨的装饰器,只有最基础的循环和条件判断。他刻意避开Python的列表推导式,改用原生迭代器,减少临时对象分配。每写完一个函数,他就用time和tracemalloc跑一次基准测试。屏幕右下角的内存占用曲线平稳地贴着横轴走。
凌晨三点,宿舍楼彻底沉入睡眠。对床的室友翻了个身,床板发出轻微的吱呀声。林尘戴上降噪耳塞,世界被隔绝成一块静音的玻璃。只有键盘的敲击声和风扇的低鸣。他处理到异常捕获模块时,左脚突然痉挛。肌肉不受控地抽搐,脚趾死死抵住鞋底。他停下手指,咬住后槽牙,等那股电流般的痛感过去。汗水顺着额角滑到下巴,滴在草稿纸上,晕开了“边界条件”四个字。他没有擦,只是把脚从鞋里抽出来,悬空,轻轻按摩小腿肚。五分钟后,痉挛平息。他重新把手放回键盘。
测试用例是他自己造的。全零序列、全噪声序列、首尾缺失值、百万级浮点数。脚本跑过一遍,日志输出整齐:[INFO] Processed 1000000 records. Time: 0.42s. Peak Memory: 1.2MB. 符合O(n)/O(1)。他检查了浮点数精度问题,把默认的float换成decimal模块,避免累积误差。最后,他写了一个简单的性能报告模板,把测试数据、环境配置、核心逻辑说明填进去。没有废话,只有参数和结论。
保存,打包。文件名:LinChen_SlidingWindow_Filter.tar.gz。他靠在椅背上,闭上眼。脑子里突然闪过母亲电话里的声音:“新农合催缴单贴到村口了,你爸说先紧着你的路费。”还有抽屉里那张7135.30的余额截图。生活里的边界条件,比代码严苛得多。代码越界会报错,生活越界,就是断药、断粮、断后路。他不能错。他把压缩包拖进邮件附件,收件人填好,主题栏写上:【技术初筛】林尘-滑动窗口滤波算法提交。
点击发送。进度条走完,提示“已送达”。他清空草稿,关掉编辑器。左脚已经麻得失去知觉,但他能感觉到血液在回流。他起身,单腿跳到水房,用冷水冲了把脸。镜子里的人眼窝深陷,胡茬冒头,但眼神是定的。
回到座位,手机屏幕亮起。不是HR的回复,是周教授发来的微信:“周五下午两点,省理工有个企业联合技术面,我帮你报了名。带上你的项目笔记。别迟到。”
林尘盯着那行字。周五下午两点。他迅速在脑子里过了一遍日程表。周五下午,正是他报名的省级计算机等级考试实操环节。考场在城北,技术面在城南。地铁换乘至少一个半小时,加上他现在的步态,根本赶不及。
他放下手机,打开日历应用。两个日程重叠,像两条无法相交的平行线。他拿起笔,在纸上画了一个叉。没有抱怨,没有焦虑。他只是开始列清单:实操考试能否申请缓考?技术面能否线上接入?如果都不行,选哪个?
他翻出教务处网站的操作手册。缓考需要三甲医院证明,且每学期仅限一次。他的脚伤诊断书还在县医院,开证明来回要两天,时间成本太高。线上接入需要企业端开放权限,初筛邮件里没提,概率极低。剩下的只有二选一。
他打开Excel,新建一个决策矩阵。横轴是“实操证书”,纵轴是“技术面机会”。实操证书是毕业硬门槛,缺了拿不到学位证,前期投入的报名费和时间会打水漂。技术面是周教授牵线,过了就能进深圳,拿到实习工资,直接覆盖弟弟下个月的药费和自己的路费。权重在纸面上很清晰,但落在现实里,全是沉没成本。
他划掉“放弃技术面”。不是不想要,是赌不起。周教授的资源是单行道,错过这次,下次不知道要等几个月。弟弟的丙戊酸钠不能断,母亲的催缴单不能拖。他必须在两条线之间找缝隙。
他重新打开浏览器,搜索“省级机考异地考点调剂”。政策文件写得死板:原则上不允许跨市调剂,但特殊伤病可申请备用考场,需提前48小时提交申请并附医疗证明。他看了一眼时间,距离周五还有三天。他抓起外套,把防震箱里的病历本和X光片塞进背包。左脚踩进鞋里,痛感尖锐,但他没停。
出门前,他回头看了一眼书桌。屏幕已经休眠,防震箱静静立在角落,像一块沉默的界碑。他知道,选择题的选项从来不是完美的,但做选择的人,必须承担后果。他带上钥匙,锁上门。走廊的声控灯随着他的脚步声一盏盏亮起,又在他身后一盏盏熄灭。
他走下楼梯,推开宿舍楼的大门。清晨的风带着露水味扑在脸上。他单腿跳着走下台阶,右脚落地很重,但节奏没乱。手机在口袋里震动了一下,是银行发来的余额变动提醒。他看了一眼,没有解锁。他知道,下一轮比对,不在服务器里,在现实的路径规划里。他加快脚步,朝校医院的方向走去。
More from WayDigital
Continue through other published articles from the same publisher.
Comments
0 public responses
All visitors can read comments. Sign in to join the discussion.
Log in to comment