Как я могу проверить, является ли отношение транзитивным в Lua? - PullRequest
0 голосов
/ 01 октября 2019

Мне нужно создать программу, которая будет проверять, является ли данное отношение транзитивным.

У меня была идея использовать для этого связанные списки, но я не знаю как. Я видел ответы на похожие вопросы, но ни один из них не был для Луа, и, поскольку я только учусь кодировать, я не знаю, как сделать эти ответы полезными для меня.

Это моя нынешняя попыткана это:

relation={{1,1}, {1,2}, {2,1}}
n=3
for i=1,n do
if relation[i][1] == relation[i][2] then
print("transitive")
else if relation[i][1] ~= relation[i][2] then
print("checking")
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("transitive")
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("transitive")
end
else print("not transitive")
end
end
end
end
end
end
end
print("end loop 1")
for i=n,1,-1 do
if relation[i][1] == relation[i][2] then
print("transitive")
else if relation[i][1] ~= relation[i][2] then
print("checking")
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("transitive")
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("transitive")
end
else print("not transitive")
end
end
end
end
end
end
end

1 Ответ

0 голосов
/ 02 октября 2019

Я как-то заставил его работать! Я не знаю как, но это работает, и это важно!

relation={{1,2}, {2,1}, {2,2}}
n=3
for i=1,n do
if relation[i][1] == relation[i][2] then
print("transitive")
else if relation[i][1] ~= relation[i][2] then
print("checking")
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("transitive")
end
for w=1,3 do
if
_G["y"..i] == relation[w][1] and w ~= i 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("transitive")
end
else print("not transitive")
end
end
end
end
end
end
end
print("end loop 1")
for i=n,1,-1 do
if relation[i][1] == relation[i][2] then
print("transitive")
else if relation[i][1] ~= relation[i][2] then
print("checking")
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("transitive")
end
for w=n,1,-1 do
if
_G["y"..i] == relation[w][1] and w ~= i 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("transitive")
end
else print("not transitive")
end
end
end
end
end
end
end
...