60c256f91b 2024-06-27 1: local s = {}
60c256f91b 2024-06-27 2: -- 启
60c256f91b 2024-06-27 3: --~ 对
60c256f91b 2024-06-27 4: --~ 能
60c256f91b 2024-06-27 5: function s.历对(u1_0, u1)
60c256f91b 2024-06-27 6: local h1, h2
60c256f91b 2024-06-27 7: for u2, u3 in pairs(u1_0) do
60c256f91b 2024-06-27 8: --~ 键
60c256f91b 2024-06-27 9: --~ 值
60c256f91b 2024-06-27 10: h1, h2 = s.模(h1, h2, u2, u3, u1)
60c256f91b 2024-06-27 11: end
60c256f91b 2024-06-27 12: return h1, h2
60c256f91b 2024-06-27 13: end
60c256f91b 2024-06-27 14: -- 模
60c256f91b 2024-06-27 15: --~ 键
60c256f91b 2024-06-27 16: --~ 值
60c256f91b 2024-06-27 17: --~ 对中键
60c256f91b 2024-06-27 18: --~ 对中值
60c256f91b 2024-06-27 19: --~ 能
60c256f91b 2024-06-27 20: function s.模(u1, u2, u3, u4, u5)
60c256f91b 2024-06-27 21: if u1 == nil then
60c256f91b 2024-06-27 22: return u3, u4
60c256f91b 2024-06-27 23: elseif u5(u1, u2, u3, u4) then
60c256f91b 2024-06-27 24: return u3, u4
60c256f91b 2024-06-27 25: else
60c256f91b 2024-06-27 26: return u1, u2
60c256f91b 2024-06-27 27: end
60c256f91b 2024-06-27 28: end
60c256f91b 2024-06-27 29: -- 最短
60c256f91b 2024-06-27 30: --~ 最短键
60c256f91b 2024-06-27 31: --~ 值
60c256f91b 2024-06-27 32: --~ 键
60c256f91b 2024-06-27 33: --~ 值
60c256f91b 2024-06-27 34: function s._筛最短键(u1, u2, u3, u4)
60c256f91b 2024-06-27 35: if #u1 > #u3 then
60c256f91b 2024-06-27 36: return true
60c256f91b 2024-06-27 37: end
60c256f91b 2024-06-27 38: end
60c256f91b 2024-06-27 39: --~ 对
60c256f91b 2024-06-27 40: function s.筛最短键(u1_0)
60c256f91b 2024-06-27 41: return s.历对(u1_0, s._筛最短键)
60c256f91b 2024-06-27 42: end
60c256f91b 2024-06-27 43: -- 最大
60c256f91b 2024-06-27 44: --~ 键
60c256f91b 2024-06-27 45: --~ 最大值
60c256f91b 2024-06-27 46: --~ 键
60c256f91b 2024-06-27 47: --~ 值
60c256f91b 2024-06-27 48: function s._筛最大值(u1, u2, u3, u4)
60c256f91b 2024-06-27 49: if u2 < u4 then
60c256f91b 2024-06-27 50: return true
60c256f91b 2024-06-27 51: end
60c256f91b 2024-06-27 52: end
60c256f91b 2024-06-27 53: --~ 对
60c256f91b 2024-06-27 54: function s.筛最大值(u1_0)
60c256f91b 2024-06-27 55: return s.历对(u1_0, s._筛最大值)
60c256f91b 2024-06-27 56: end
60c256f91b 2024-06-27 57: return s