本篇用一组独立的虚构记录研究设施连线的网络分组。先规定输入和边界,再逐步推演结果;所有规则都为练习而设,不代表某个真实产品的默认实现。你可以先遮住答案,用纸记录中间状态,再比较第一处产生分歧的位置,而不只看最终结论。
机制与注意点
沙盒设施通过连线组成网络时,能否相互连接要看整条路径,而不只是两点之间有没有直接连线。加入一条跨组连接可能同时合并多个设施的所属网络。
本例连线无方向,只研究连通关系,不研究能量损耗、容量或流量。重复连接与同组内连线不会再增加一个新的网络。
明确规则与输入
按输入添加无向连线,网络就是所有能沿连线路径相互到达的设施。每步展示各组内递增、各组按列表顺序排序。
设施0至6初始独立 连线0:5—3 连线1:3—4 连线2:4—3 连线3:4—5 连线4:3—4 连线5:3—4 连线6:1—6 连线7:6—5 连线8:3—4
逐步核对记录
连线5—3后共有6组:[[0], [1], [2], [3, 5], [4], [6]]。
连线3—4后共有5组:[[0], [1], [2], [3, 4, 5], [6]]。
连线4—3后共有5组:[[0], [1], [2], [3, 4, 5], [6]]。
连线4—5后共有5组:[[0], [1], [2], [3, 4, 5], [6]]。
连线3—4后共有5组:[[0], [1], [2], [3, 4, 5], [6]]。
连线3—4后共有5组:[[0], [1], [2], [3, 4, 5], [6]]。
连线1—6后共有4组:[[0], [1, 6], [2], [3, 4, 5]]。
连线6—5后共有3组:[[0], [1, 3, 4, 5, 6], [2]]。
连线3—4后共有3组:[[0], [1, 3, 4, 5, 6], [2]]。
结果及另一种检查
最终网络分组[[0], [1, 3, 4, 5, 6], [2]],共3组。
不依赖组的合并过程,可以从每个未访问设施开始沿现有边扩张,收集一个完整网络,再选下一个未访问设施。所有组互不相交且合起来恰好包含七个设施,组数只能保持或减少。
自己动手复盘
复核时把数据、判断条件和更新后的状态分开写。相等边界、编号从零还是从一开始、先筛选还是先排序,都可能造成看似微小却会延续到后续步骤的差别。不要为了让最后数字吻合而跳过中间错误;先找到第一处不同,再按同一规则重新推演。
进一步练习只改变一项输入,例如一个边界值、一个标签或一次操作,先预测受影响的部分,再计算新结果。把不受影响的部分也记录下来,能更清楚地看出规则的作用范围。应用到真实游戏前,先核对其帮助说明或在可重复场景中验证条件,避免把本例的虚构约定当成通用标准。
