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