两个小姑娘兴致勃勃地让岑言去买了一堆模具和材料。
“这些是侧垫片,夹板和配套的螺丝螺母,备份的在这边,小心点用哈,这些模具可不便宜……”
岑言把快递里的模具和耗材都取出来。
还好自己是回到2015年,网购已经很火热了,这时候啥都能在网上买到。
实验器材自然也可以。
正负极材料,隔膜,模具等等,就连用来给梁晓鸥他们配置6M KOH电解液的KOH粉末都能买得到。
这条件。
也亏国内没有多少人喜欢拉瓦锡和诺贝尔的,不然轻轻松松自制新型土炸弹。
自己要是回到05年。
想采购这些东西,可就得跑东跑西了。
也不对。
回到05年,自己个半大孩子能干嘛?
抛开杂念。
岑言看着跟拿到了新玩具的小孩一样欢天喜地的梁晓鸥和白棠,又忍不住多交代了几句。
“做实验的时候记得在通风橱里做啊,要开,电极要保证干燥清洁,别短路了,做的时候得确认正负极……”
岑言觉得自己又回到了当带教牛马大师兄的时代,婆婆妈妈的啰嗦得很。
“知道了,知道了,我们没问题的!”
梁晓鸥已经迫不及待的想要验证由她亲手设计的实验流程了。
能做实验。
不管是什么实验。
白棠都是充满兴趣的。
她也很想知道,在没有岑言演示的情况下,由自己来亲自上手从零开始做实验会是什么样的?
然后……
岑言坐在电脑前。
他正在给自己准备对拍程序。
对拍是一种自动化测试方法,简单来说就是通过生成随机输入数据,同时运行暴力程序和优化程序,来比较两者输出结果是否一致。
这样在竞赛赛场上能够自动生成大量的测试数据,也可以针对性的生成边界数据,进行自动化验证,减少失误。
毕竟在比赛的时候。
手动输入数据找bug的效率很低,寻找边界情况的时候也容易遗漏。
再加上竞赛的压力和平时练习的压力完全不一样,很容易因为紧张而出现很基础的易错点。
对拍做好了,相当于带了个自动排雷步兵。
最基础的小学生级对拍,就是先准备一个慢办法程序,例如从1数到100,每个数都验证一下,这样能保证正确,但是很慢,再准备一个快办法程序,测试你想测试的优化解法,最后再加个数据生成器。
用批处理脚本运行,一旦快办法出错,程序就会自动停止报错。
而竞赛级别的对拍程序。
则是会用专业级的数据生成器和。带时间控制的Linux对拍脚本。
使用for循环实现多组数据测试,timeout命令实现超时检测,ulimit-v限制实现内存检测,最后用分段生成加合并的方式完成大数据生成。
这在NOIP和ACM这样标准赛事里都是完全通用的。
竞赛队的教练们为队员们准备的对拍程序一般就是这样的。
不过岑言自己做了点优化。
首先是对对拍策略的优化。
通过先测试小程序,再逐步增大的优先级测试,和专门生成让程序崩溃的定向爆破测试,来快速寻找漏洞。
并且通过同时对比三个版本程序的多程序对拍,来降低错验可能。
最后通过自动bisect找出最小出错样例,完成自动化调试。
甚至针对交互题,他也编写了交互脚本,针对SPJ题(Special Judge答案不唯一的特殊评测程序),也有修改比较脚本,调用SPJ程序判断。
总而言之。
岑言几乎是以一己之力,点对点级别地完成了一个自带的评测系统。