我有两个数组:
A={4,8,12}
B={1,2,3,5,6,7,9,10,11}
这些代码的本质是,在调用函数时,从数组B中获取一个随机值,按照队列的顺序将其插入到数组A中,然后在另一个循环中,从数组B中删除该随机值。 。
local function Change ()
local q= math.random(1, #B)
for i = 1, #A do
if B[q]<A[i] then
for t=#A, i, -1 do
A[t+1]=A[t]
end
A[i]=B[q]
break
end
end
while q<= #B-1 do
B[q]=B[q+1]
q=q+1
end
B[q]=nil
for x = 1, #A do print ("Current: ", A[x]) end
for y = 1, #B do print ("Free: ", B[y]) end
end
现在,对于反问题,我想使用相同的代码-从数组A中获取一个随机值,按照队列的顺序将其插入到数组B中,然后从数组A中删除该值。
所以我想要这样的东西:
Change (A, B) – find random value in B and insert to A (arrays)
Change (B, A) – find random value in A and insert to B (arrays)
Lua中有没有办法做到这一点?指针左右...
P.S。我不想为此任务使用“ table.sort / table.insert”等。
P.P.S。我们在带有指针的线程中找到了解决方案,但是今天我找到了另一个解决方案:
C={{4,8,12},{1,2,3,5,6,7,9,10,11}}
Local function Change (x,y)
for i = 1, #C[x] do
if C[y][a]<C[x][i] then
for t=#C[x], i, -1 do
C[x][t+1]=C[x][t]
end
C[x][i]=C[y][a]
break
end
end
while a<= #C[y]-1 do
C[y][a]=C[y][a+1]
a=a+1
end
C[y][a]=nil
for i = 1, #C[1] do print ("in C1, Current:", C[1][i]) end
for i = 1, #C[2] do print ("in C2, Free", C[2][i]) end
end
并调用Change(1,2)或Change(2,1)
您如何看待,哪种方法性能更好?
我还有LUA语法的另一个问题
我做的时候
C={ A={4,8,12}, B={1,2,3,5,6,7,9,10,11} }
并尝试在函数#C [1]中出现错误«试图获取字段'?'的长度。 (一个零值)»,但是很明显写C.A或C.B而不是C [1],C [2]
我必须像]那样初始化它们>
A={4,8,12}, B={1,2,3,5,6,7,9,10,11}, C={A,B}
但出现其他错误«使用C.A或C.B时试图获得字段'C'的长度(零值)»
我有两个数组:A = {4,8,12} B = {1,2,3,5,6,7,9,10,11}这些代码的本质是,当调用函数,从数组B中获取一个随机值,并按照队列的顺序将其插入到...
在Lua中,表是放置在变量中时唯一共享的对象。
mytable = {1,2,3}
newtable = mytable
newtable[1] = "one"
print(mytable[1]) --> prints: "one"