这份练习围绕设施供电的优先级分配展开,给出独立的虚构输入、明确的规则和完整推演记录。它不对应任何品牌或真实产品的默认参数,适合先自己算一遍,再逐行核对。重点是分清输入、可见状态与规则,而不是把最后一组数字当成需要记忆的答案。
理解机制
电量不足时按优先级逐台分配,与追求最多设备开启是不同目标。严格执行既定顺序,能解释为什么有的高耗电设备没有开启,但后面的低耗电设备还能工作。
本例每台只能全额供电或完全关闭,不允许部分供电。一次分配从总预算重新开始,同优先级按编号小者先,不延续上一轮的占用。
规则与独立输入
优先级大者先,同级编号小者先。当前余量足够则全额开启并扣除,否则跳过继续检查后面的设备;每轮从新预算独立开始。
设备0需4单位,优先级2 设备1需10单位,优先级3 设备2需10单位,优先级3 设备3需12单位,优先级3 设备4需12单位,优先级1 设备5需10单位,优先级2 设备6需4单位,优先级3 各轮预算[40, 19, 16, 37, 27, 33, 19]
逐步推演
预算40,按[1, 2, 3, 6, 0, 5, 4]检查,逐项“编号、是否开启、余量”为[[1, True, 30], [2, True, 20], [3, True, 8], [6, True, 4], [0, True, 0], [5, False, 0], [4, False, 0]],最终开启[1, 2, 3, 6, 0]。
预算19,按[1, 2, 3, 6, 0, 5, 4]检查,逐项“编号、是否开启、余量”为[[1, True, 9], [2, False, 9], [3, False, 9], [6, True, 5], [0, True, 1], [5, False, 1], [4, False, 1]],最终开启[1, 6, 0]。
预算16,按[1, 2, 3, 6, 0, 5, 4]检查,逐项“编号、是否开启、余量”为[[1, True, 6], [2, False, 6], [3, False, 6], [6, True, 2], [0, False, 2], [5, False, 2], [4, False, 2]],最终开启[1, 6]。
预算37,按[1, 2, 3, 6, 0, 5, 4]检查,逐项“编号、是否开启、余量”为[[1, True, 27], [2, True, 17], [3, True, 5], [6, True, 1], [0, False, 1], [5, False, 1], [4, False, 1]],最终开启[1, 2, 3, 6]。
预算27,按[1, 2, 3, 6, 0, 5, 4]检查,逐项“编号、是否开启、余量”为[[1, True, 17], [2, True, 7], [3, False, 7], [6, True, 3], [0, False, 3], [5, False, 3], [4, False, 3]],最终开启[1, 2, 6]。
预算33,按[1, 2, 3, 6, 0, 5, 4]检查,逐项“编号、是否开启、余量”为[[1, True, 23], [2, True, 13], [3, True, 1], [6, False, 1], [0, False, 1], [5, False, 1], [4, False, 1]],最终开启[1, 2, 3]。
预算19,按[1, 2, 3, 6, 0, 5, 4]检查,逐项“编号、是否开启、余量”为[[1, True, 9], [2, False, 9], [3, False, 9], [6, True, 5], [0, True, 1], [5, False, 1], [4, False, 1]],最终开启[1, 6, 0]。
结果与交叉核对
最后一轮开启[1, 6, 0],余量1。
每轮原预算等于开启设备需求之和加剩余量。按处理前缀逐步核对,被跳过设备的需求在当时必须严格大于余量;不应因为它未开启,就停止整条后续分配流程。
复盘练习
动手复盘时,把每一步的输入、操作前值、判断依据和操作后值分开写。若与示例不一致,先定位第一处分歧,检查边界是否包含、顺序是否颠倒、编号和单位是否一致。不要跳过中间状态只修正最后数字,也不要把未规定的行为凭经验补进去。
再做一次练习时只调整一项输入,先预测哪些后续行会变化,再重新推演并保留两份记录。对没有变化的部分也说明原因,能帮助判断机制的作用范围。应用到真实游戏之前,应先在说明或可重复场景中确认对应条件;不同作品可能使用不同边界、优先级和时间约定。
