-- 不用这套方案了
--~ 卡对排
function d.荐名(o1_0)
local k1
--~ 名
k1 = d.荐字段名(o1_0)
if k1 then
else
k1 = d.荐卡名(o1_0)
end
if k1 then
return k1
else
return "请便"
end
end
--~ 卡对排
function d.荐卡名(o1_0)
local k1_0
--~ 卡名排
k1_0 = 历排库.历排(o1_0, d.取卡名)
return 历排取一库.筛最短文(k1_0)
end
--~ 卡对
function d.取卡名(o1_0)
return o1_0.name
end
--~ 卡对排
function d.取字段对(o1_0)
local k1, k2, k3, k4
local k1_0
--~ 字段对
k1_0 = {}
for o1 = 1, #o1_0 do
--~ 字段数
k1 = 字节库.to_uint64(o1_0[o1].setcode)
if k1 < 1 then
else
if k1 > 0xffffFFFFffff then
k1 = k1 - 1
else
for o2 = 1, 11112222 do
if k1 < 1 then
break
else
--~ 大字段号
k2 = 位算库.位和(k1, 0xffff)
k1 = 位算库.位右移(k1, 基算库.乘法(4, 4))
--~ 字段名
k3 = 字段名对[tonumber(k2)]
if k3 then
if k1_0[k3] then
k1_0[k3] = 基算库.加法(k1_0[k3], 1)
else
k1_0[k3] = 1
end
if k2 > 0xfff then
--~ 小字段号
k4 = 位算库.位和(k2, 0xfff)
k3 = 字段名对[tonumber(k4)]
if k3 then
if k1_0[k3] then
k1_0[k3] = 基算库.加法(k1_0[k3], 1)
else
k1_0[k3] = 1
end
else
end
else
end
else
end
end
end
end
end
end
return k1_0
end
--~ 卡对排
function d.荐字段名(o1_0)
local k1
local k1_0
--~ 字段对
k1_0 = d.取字段对(o1_0)
--~ 最大的字段名数量
_, k1 = 历对取一库.筛最大值(k1_0)
--~ 最高频字段名对
k2_0 = 历对库.历对(k1_0, 历对库.全等筛值, k1)
return 历对取一库.筛最短键(k2_0)
end