这份练习围绕设施供电的优先级分配展开,给出独立的虚构输入、明确的规则和完整推演记录。它不对应任何品牌或真实产品的默认参数,适合先自己算一遍,再逐行核对。重点是分清输入、可见状态与规则,而不是把最后一组数字当成需要记忆的答案。

理解机制

电量不足时按优先级逐台分配,与追求最多设备开启是不同目标。严格执行既定顺序,能解释为什么有的高耗电设备没有开启,但后面的低耗电设备还能工作。

本例每台只能全额供电或完全关闭,不允许部分供电。一次分配从总预算重新开始,同优先级按编号小者先,不延续上一轮的占用。

规则与独立输入

优先级大者先,同级编号小者先。当前余量足够则全额开启并扣除,否则跳过继续检查后面的设备;每轮从新预算独立开始。

设备0需7单位,优先级1 设备1需3单位,优先级1 设备2需4单位,优先级3 设备3需9单位,优先级1 设备4需3单位,优先级3 设备5需11单位,优先级1 设备6需8单位,优先级2 各轮预算[35, 15, 40, 34, 26, 17, 32]

逐步推演

预算35,按[2, 4, 6, 0, 1, 3, 5]检查,逐项“编号、是否开启、余量”为[[2, True, 31], [4, True, 28], [6, True, 20], [0, True, 13], [1, True, 10], [3, True, 1], [5, False, 1]],最终开启[2, 4, 6, 0, 1, 3]。

预算15,按[2, 4, 6, 0, 1, 3, 5]检查,逐项“编号、是否开启、余量”为[[2, True, 11], [4, True, 8], [6, True, 0], [0, False, 0], [1, False, 0], [3, False, 0], [5, False, 0]],最终开启[2, 4, 6]。

预算40,按[2, 4, 6, 0, 1, 3, 5]检查,逐项“编号、是否开启、余量”为[[2, True, 36], [4, True, 33], [6, True, 25], [0, True, 18], [1, True, 15], [3, True, 6], [5, False, 6]],最终开启[2, 4, 6, 0, 1, 3]。

预算34,按[2, 4, 6, 0, 1, 3, 5]检查,逐项“编号、是否开启、余量”为[[2, True, 30], [4, True, 27], [6, True, 19], [0, True, 12], [1, True, 9], [3, True, 0], [5, False, 0]],最终开启[2, 4, 6, 0, 1, 3]。

预算26,按[2, 4, 6, 0, 1, 3, 5]检查,逐项“编号、是否开启、余量”为[[2, True, 22], [4, True, 19], [6, True, 11], [0, True, 4], [1, True, 1], [3, False, 1], [5, False, 1]],最终开启[2, 4, 6, 0, 1]。

预算17,按[2, 4, 6, 0, 1, 3, 5]检查,逐项“编号、是否开启、余量”为[[2, True, 13], [4, True, 10], [6, True, 2], [0, False, 2], [1, False, 2], [3, False, 2], [5, False, 2]],最终开启[2, 4, 6]。

预算32,按[2, 4, 6, 0, 1, 3, 5]检查,逐项“编号、是否开启、余量”为[[2, True, 28], [4, True, 25], [6, True, 17], [0, True, 10], [1, True, 7], [3, False, 7], [5, False, 7]],最终开启[2, 4, 6, 0, 1]。

结果与交叉核对

最后一轮开启[2, 4, 6, 0, 1],余量7。

每轮原预算等于开启设备需求之和加剩余量。按处理前缀逐步核对,被跳过设备的需求在当时必须严格大于余量;不应因为它未开启,就停止整条后续分配流程。

复盘练习

动手复盘时,把每一步的输入、操作前值、判断依据和操作后值分开写。若与示例不一致,先定位第一处分歧,检查边界是否包含、顺序是否颠倒、编号和单位是否一致。不要跳过中间状态只修正最后数字,也不要把未规定的行为凭经验补进去。

再做一次练习时只调整一项输入,先预测哪些后续行会变化,再重新推演并保留两份记录。对没有变化的部分也说明原因,能帮助判断机制的作用范围。应用到真实游戏之前,应先在说明或可重复场景中确认对应条件;不同作品可能使用不同边界、优先级和时间约定。