第5章 Max函数与北宋漕运(2/2)
西仓监官事后上报:“以往多艘漕船同时抵仓,粮仓门口拥挤不堪,卸粮效率低下,如今按‘取极算具’调度,单船独仓,卸粮时间缩短了一半!”
随着“取计算具”的普及,漕运调度的效率大幅提升。以往,转运司需提前三日核算粮草数据,制定调度方案;如今,漕船抵港前一日,各州府通过驿传上报粮草数额,算吏输入算具后,即刻便能确定“最大粮草路”与“最大库容仓”,调度方案当日便可下达。
熙宁六年秋,汴河遭遇罕见汛期,部分河段水位上涨,漕船通航能力受限,只能单向通行。此时,京东东路、京西路、河北东路的漕船同时请求入港,均载有紧急军需粮草。韩绛心急如焚,若调度不当,军需延误,便是重罪。
沈括建议:“韩大人,可将三路漕船的通航优先级与粮草数额结合,用‘取极算具’筛选‘优先级最高且粮草最多’的漕船,优先放行。”
韩绛采纳了这一建议,将“优先级系数”(紧急为3,一般为2,次要为1)与粮草数额相乘,得到“加权数值”:京东东路(紧急,粮草六千石,加权值)、京西路(一般,粮草八千石,加权值)、河北东路(紧急,粮草七千石,加权值)。将加权数值输入算具,“极数窗”弹出,对应河北东路漕船。
“优先放行河北东路漕船!”韩绛下令。河北东路的军需粮草最紧急且数额较大,优先通航后,及时送达前线,解了军需之困。京东东路与京西路漕船则按加权数值排序,依次通航,既保障了紧急需求,又避免了河道拥堵。
这一改良,让“取极算具”的应用不再局限于单纯的数值比对,而是扩展到“加权极值”的筛选,如同max函数结合if函数的复合运算,进一步提升了决策的精准度。
“取计算具”的影响,还不止于漕运。转运司将其应用于赋税核算,从各州府的赋税数据中提取最大值,重点核查高赋税地区的征收情况,避免了官员虚报瞒报;应用于物资调配,在赈灾时从各地粮仓中提取最大库容,优先调拨粮草,保障了赈灾效率。
沈括在《梦溪笔谈》中记录道:“取极之术,非仅为漕运设也。天下数据,浩如烟海,若能得其极值,则纲举目张,决策自明。如算学中之‘极函数’,虽简,却能定万数之宗。”
四、盛世隐忧
“取极算具”的成功,让沈括声名鹊起,韩绛也因漕运调度得力,被朝廷擢升为三司使。汴河漕运的繁荣,支撑着汴京的盛世景象,酒楼茶肆林立,商铺鳞次栉比,胡商蕃客云集,成为当时世界上最繁华的都市。
但繁华背后,隐忧早已悄然滋生。
首先是对“极值”的过度依赖。部分转运司官员认为,只要抓住“最大粮草路”与“最大库容仓”,便可高枕无忧,忽视了其他数据的协同。一次,两浙路漕船载粮一万二千石(为当期最大值),被调度至西仓(库容一万五千石),可西仓此前已接收淮南西路粮草四千石,剩余库容仅一万一千石,导致两浙路漕船部分粮草无法入库,只能临时堆放。事后查明,算吏只看了西仓的最大库容,却未核算剩余库容——这暴露了“取极算具”的局限性,它只能提取单一维度的最大值,却无法兼顾数据间的关联。
沈括得知后,立刻对算具进行改良,增加了“余值核算”功能,在提取最大库容后,自动减去已用库容,输出剩余最大库容。可这一改良却遭到部分官员的抵制,他们认为“算具越复杂,操作越繁琐”,不如以往“简单取极”便捷。
其次是数据造假的风险。“取极算具”的核心是数据,若各州府上报的粮草数额不实,算具提取的“极值”便失去了意义。一些地方官员为了减少漕运压力,故意低报粮草数额;更有甚者,通过贿赂转运司的算吏,篡改输入算具的数据,导致调度失当。
熙宁七年冬,荆湖南路遭遇雪灾,粮草减产,却上报“粮草八千石”(实际仅五千石)。算具提取的“最大粮草路”为两浙路一万石,被调度至西仓;而荆湖南路的漕船抵港后,因上报数据与实际不符,剩余粮草无处存放,只能滞留渡口,导致部分粮草冻损。韩绛查明真相后,严惩了相关官员与算吏,但数据造假的隐患,却难以根除。
更严重的是,“取计算具”的核心技术被少数人垄断。沈括虽将算具的操作方法教给了转运司的算吏,但核心的齿轮设计、齿数配比等技术,却只有他与几名亲信工匠掌握。随着沈括被朝廷调往西北主持边务,算具的维护与改良陷入停滞。一次,算具的“比对齿轮组”出现故障,算吏们束手无策,只能临时恢复手工核算,漕运调度再次陷入混乱。
韩绛多次上书朝廷,请求让沈括返回汴河,专门负责算具的维护与推广,却因西北边务紧急,未能如愿。此时,朝廷内部的党争也日益激烈,王安石变法的支持者与反对者相互攻讦,“取极算具”被部分反对者视为“新法余孽”,遭到排挤与打压。他们认为,漕运调度应“遵循旧制,凭经验行事”,算具“过于精巧,易生弊端”,请求朝廷废除。
熙宁九年,王安石罢相,司马光等保守派上台,开始废除新法。转运司的“取计算具”也被列入废除名单,理由是“耗费民脂民膏,滋长官员惰性”。韩绛据理力争,却终究无力回天。
“取极算具”被拆解封存,沈括留在工坊的图纸与笔记也被付之一炬。算吏们再次回到了手工核算的时代,汴河漕运的调度效率大幅下降,滞留、霉变的问题再次频发。韩绛看着被拆解的算具碎片,痛心疾首:“一器之废,非仅漕运之损,更是算学之殇!”
五、极数余韵
沈括在西北得知“取极算具”被废的消息,悲愤交加,却因边务缠身,无法返回汴河。他将自己研究“极函数”的心得与算具的设计原理,整理成《取极算经》一书,藏于家中密室,希望后世有人能发现这份珍贵的遗产。
元丰五年,沈括被贬谪随州,晚年隐居润州梦溪园,潜心着述。他在《梦溪笔谈》中详细记录了“极函数”的算法逻辑与“取极算具”的研制过程,虽未明言其在漕运中的应用,却为后世留下了宝贵的算学资料。
北宋灭亡后,汴河漕运体系遭到毁灭性打击,“取极算具”的残片也在战乱中遗失。但沈括的“取极”理念,却并未消失。南宋时期,数学家秦九韶在《数书九章》中提出“大衍求一术”,其中便包含了“从多个数值中提取极值”的思想;元代数学家朱世杰在《四元玉鉴》中,进一步完善了极值运算的方法,将其应用于工程测算、赋税核算等领域。
明清时期,随着商品经济的发展,漕运、盐运再次兴盛。江南的盐商与漕运商人,在沈括“极函数”的基础上,研制出了简化的“取极算筹”,用于核算各地盐价、粮价的最大值,制定贸易策略。这些算筹虽不如沈括的“取极算具”精巧,却延续了“取极”的核心逻辑。
晚清时期,西方列强用坚船利炮打开了中国的国门,西方的近代数学与计算机技术传入中国。数学家华蘅芳、李善兰等人翻译西方数学着作时,发现西方数学中的“最大值运算”与沈括的“极函数”理念不谋而合。华蘅芳在《学算笔谈》中写道:“沈存中(沈括字存中)之‘极函数’,实乃东方算学之瑰宝,与西人算术中‘最大值’之理,异曲同工,足见我华夏算学之精深。”
二十世纪八十年代,电子表格软件excel传入中国