楚戈愣住了,半张着嘴。
「偏了?按条件判断分配,这不是编程书上教的最稳妥的统筹方法吗?」
陈拙没急着解释。
他伸手把刚才那张写满了物理推导公式的草稿纸拿了过来。
他看了一眼纸面上密密麻麻的算式,那是刚刚补全的朗道理论,陈拙很自然地把纸翻了个面,露出印着废弃C语言代码的那一面。这上面的代码行距很宽,中间有很多留白的区域。
在空白处,用钢笔轻轻点了一个黑色的墨点。
「你们把这些订单当成了排队买票的人。」
陈拙一边画,一边说。
「队伍太长,你们就在检票口设了三个不同的通道,每过来一个人,你们都要问一遍:你是哪里的?然後再决定让他走哪个通道,人一多,检票口就彻底堵死楚戈凑近了点,盯着陈拙笔尖下那个黑点。
「那不排队怎麽分?」楚戈问。
陈拙在那个黑点旁边,又画了几个相隔很远的黑点,然後用直线把它们连接起来。
「当成一个个独立的状态节点。」
陈拙手腕微转,在纸上画出了一个二分图的结构,而不是楚戈说的树状分支。
「放弃线性遍历的思维,把医院、药房、诊所,直接抽象成带有不同权重的代数点,把现有的库存物资,也抽象成一个集合。」陈拙在纸上的空白处,快速写下几个离散数学里的基础变量,然後套用了一个极简的矩阵映射公式。「在这个离散矩阵里,不需要去问如果,订单进来,自带权重值,医院是3,药房是2,诊所是1,直接让订单矩阵和库存矩阵做乘法映射,权重高的,自然优先匹配到库存节点。」
陈拙在公式末尾补了一笔。
「如果库存节点归零,它在矩阵里就失效了,後续的映射自动跳过,所有的判断都在一步矩阵运算里完成,而不是去跑几万次的嵌套循环。」写完最後一行,陈拙把草稿纸推到楚戈面前。
楚戈低头盯着纸上那个清晰的矩阵结构,他的大脑在迅速把这些数学符号翻译成自己熟悉的资料库语言。楚戈虽然数学底子没有陈拙他们那麽好,但毕竟还是能混进科大少年班这种地方待着,逻辑理解能力还勉强算是一流的。看了大概半分钟。
「我...」
楚戈猛地擡起头,眼睛里刚才那种颓废感一扫而空,取而代之的是一种豁然开朗的亮光。
「哈希表映射加权重排序....」楚戈看着陈拙。
「把所有的条件判断提前转化为键值权重,然後直接做集合映射,这样一来,伺服器根本不需要去逐条比对,它只做一次整体的代数运算!」「嗯。」
陈拙把钢笔放下。
「运算量起码能降几个数量级,再多的模拟数据冲进来,也就是矩阵的维度变大了一点,CPU不会满载。」楚戈一把抓起桌上那张草稿纸,就像抓着一张救命的支票。
他连看都没看纸的背面写着什麽,直接站起身。
「大勇,水温着,别倒!」楚戈冲着角落喊了一嗓子,声音都劈叉了,「咱们今晚有救了!」说完,楚戈拿着那张双面草稿纸,头也不回地冲出了215宿舍。
风风火火地跑向对面,紧接着是216的门被一脚踢开的声音。
「陆嘉!别死磕你那个嵌套循环了!快来看看拙哥画的这个离散矩阵!把逻辑重构一下!」楚戈的大嗓门在对面宿舍里回荡。
215宿舍里重新安静了下来。
王大勇麻溜地把电热杯的插头重新插上墙上的插座,刚才还没凉透的水,没过一会儿又开始冒出细密的气泡,盖子再次发出叮当的响声。陈拙坐在椅子上,伸手轻轻揉了揉自己的後脖颈。
>本章未完,点击下一页继续阅读