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