Index: 残局文料/lua_lib/常用库.lua ================================================================== --- 残局文料/lua_lib/常用库.lua +++ 残局文料/lua_lib/常用库.lua @@ -32,24 +32,44 @@ --~ 能 function d.历排取一(o1_0, o1) local k1 for o2 = 1, #o1_0 do --~ 值 - k1 = o1(k1, o1_0[o2]) + k1 = d.历排取一的模(k1, o1_0[o2], o1) end return k1 + end +--~ 值 +--~ 排中值 +function d.历排取一的模(o1, o2, o3) + if o1 == nil then + return o2 + elseif o3(o1, o2) then + return o2 + else + return o1 + end end --~ 对 --~ 能 function d.历对取一(o1_0, o1) local k1, k2 for o2, o2_0 in pairs(o1_0) do --~ 键 --~ 值 - k1, k2 = o1(k1, k2, o2, o2_0) + k1, k2 = d.历对取一的模(k1, k2, o2, o2_0, o1) end return k1, k2 + end +function d.历对取一的模(o1, o2, o3, o4, o5) + if o1 == nil then + return o3, o4 + elseif o5(o1, o2, o3, o4) then + return o3, o4 + else + return o1, o2 + end end function d.历对(o1_0, o1, o2) local k1 local k1_0, k2_0 --~ 对 @@ -220,40 +240,28 @@ --~ 键 --~ 最大值 --~ 键 --~ 值 function d.筛对中最大值(o1, o2, o3, o4) - if o2 == nil then - return o3, o4 - elseif o2 < o4 then - return o3, o4 - else - return o1, o2 + if o2 < o4 then + return true end end ---~ 键 --~ 最短键 +--~ 值 --~ 键 --~ 值 function d.筛对中最短键(o1, o2, o3, o4) - if o1 == nil then - return o3, o4 - elseif #o1 > #o3 then - return o3, o4 - else - return o1, o2 + if #o1 > #o3 then + return true end end --~ 最短文 --~ 值 function d.筛排中最短文(o1, o2) - if o1 == nil then - return o2 - elseif #o1 > #o2 then - return o2 - else - return o1 + if #o1 > #o2 then + return true end end --~ 内数 function d.to_uint64(o1) local uint64_pointer = ffi.new("uint64_t[1]", o1) Index: 残局文料/残局荐名.lua ================================================================== --- 残局文料/残局荐名.lua +++ 残局文料/残局荐名.lua @@ -169,23 +169,19 @@ end return k1_0 end --~ 卡对排 function d.荐字段名(o1_0) - local k1, k2 + local k1 local k1_0 --~ 字段对 k1_0 = d.取字段对(o1_0) --~ 最大的字段名数量 _, k1 = f.历对取一(k1_0, f.筛对中最大值) --~ 最高频字段名对 k2_0 = f.历对(k1_0, f.全等筛对中值, k1) - --~ 最短的最高频字段 - k2 = f.历对取一(k2_0, f.筛对中最短键) - if k2 then - return k2 - end + return f.历对取一(k2_0, f.筛对中最短键) end --~ 目对 function d.残局荐名(o1_0) local k1_0, k2_0, k3_0, k4_0, k5_0, k6_0, k7_0, k8_0 --~ 文件名排