Just another update
This commit is contained in:
parent
a25938f123
commit
00a190b0a6
6591 changed files with 94363 additions and 23227 deletions
31
Task/Permutations/Lua/permutations-2.lua
Normal file
31
Task/Permutations/Lua/permutations-2.lua
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
-- Iterative version
|
||||
function ipermutations(a,b)
|
||||
if a==0 then return end
|
||||
local taken = {} local slots = {}
|
||||
for i=1,a do slots[i]=0 end
|
||||
for i=1,b do taken[i]=false end
|
||||
local index = 1
|
||||
while index > 0 do repeat
|
||||
repeat slots[index] = slots[index] + 1
|
||||
until slots[index] > b or not taken[slots[index]]
|
||||
if slots[index] > b then
|
||||
slots[index] = 0
|
||||
index = index - 1
|
||||
if index > 0 then
|
||||
taken[slots[index]] = false
|
||||
end
|
||||
break
|
||||
else
|
||||
taken[slots[index]] = true
|
||||
end
|
||||
if index == a then
|
||||
for i=1,a do io.write(slots[i]) io.write(" ") end
|
||||
io.write("\n")
|
||||
taken[slots[index]] = false
|
||||
break
|
||||
end
|
||||
index = index + 1
|
||||
until true end
|
||||
end
|
||||
|
||||
ipermutations(3, 3)
|
||||
Loading…
Add table
Add a link
Reference in a new issue