如何在 Lua 中测试关系是否是传递的?

我需要制作一个程序来测试给定关系是否是传递的。

我有一个想法,在这个问题中使用链表,但我不知道该如何实现。我已经看过类似问题的答案,但没有一个是针对 Lua 的。由于我正在学习编程,我不知道如何使这些答案对我有用。

这是我目前对此的尝试:

relation={{1,1}, {1,2}, {2,1}}
n=3
for i=1,n do
if relation[i][1] == relation[i][2] then
print("传递")
else if relation[i][1] ~= relation[i][2] then
print("正在检查")
for q=1,n do
_G["x"..i]=relation[q][1]
_G["y"..i]=relation[q][2]
end
if _G["x"..i] == nil then
print("传递")
end
for w=1,3 do
if
_G["y"..i] == relation[w][1] then
relation[w][2] = z
for e=1,3 do
if
z == relation[e][2] and e ~= w then
if relation[e][2] == _G["x"..i] then
print("传递")
end
else print("不传递")
end
end
end
end
end
end
end
print("循环1结束")
for i=n,1,-1 do
if relation[i][1] == relation[i][2] then
print("传递")
else if relation[i][1] ~= relation[i][2] then
print("正在检查")
for q=n,1,-1 do
_G["x"..i]=relation[q][1]
_G["y"..i]=relation[q][2]
end
if _G["x"..i] == nil then
print("传递")
end
for w=n,1,-1 do
if
_G["y"..i] == relation[w][1] then
relation[w][2] = z
for e=n,1,-1 do
if
z == relation[e][2] and e ~= w then
if relation[e][2] == _G["x"..i] then
print("传递")
end
else print("不传递")
end
end
end
end
end
end
end
点赞
用户11985168
用户11985168
relation={{1,2}, {2,1}, {2,2}}
n=3
for i=1,n do
如果 relation[i][1] == relation[i][2] then
print("传递的")
else if relation[i][1] ~= relation[i][2] then
print("检查中")
for q=1,n do
_G["x"..i]=relation[i][1]
_G["y"..i]=relation[i][2]
end
if _G["x"..i] == nil then
print("传递的")
end
for w=1,3 do
如果
_G["y"..i] == relation[w][1] and w ~= i then
relation[w][2] = z
for e=1,3 do
如果
z == relation[e][2] and e ~= w then
如果 relation[e][2] == _G["x"..i] then
print("传递的")
end
else print("不是传递的")
end
end
end
end
end
print("第一次循环结束")
for i=n,1,-1 do
如果 relation[i][1] == relation[i][2] then
print("传递的")
else if relation[i][1] ~= relation[i][2] then
print("检查中")
for q=n,1,-1 do
_G["x"..i]=relation[i][1]
_G["y"..i]=relation[i][2]
end
if _G["x"..i] == nil then
print("传递的")
end
for w=n,1,-1 do
如果
_G["y"..i] == relation[w][1] and w ~= i then
relation[w][2] = z
for e=n,1,-1 do
如果
z == relation[e][2] and e ~= w then
如果 relation[e][2] == _G["x"..i] then
print("传递的")
end
else print("不是传递的")
end
end
end
end
end
end
2019-10-02 17:47:56