Может ли кто-нибудь помочь мне с возможностью случайного заполнения таблицы значениями N, где значения 1, ..., M не допускают дубликатов?randoming table Corona SDK/Lua
Cheers.
Может ли кто-нибудь помочь мне с возможностью случайного заполнения таблицы значениями N, где значения 1, ..., M не допускают дубликатов?randoming table Corona SDK/Lua
Cheers.
local M, N, tNonFinal, tFinal = 500, 20, {}, {}
math.randomseed(os.time())
for i = 1, N, 1 do
local iRandom = math.random(1, M)
while tNonFinal[iRandom] do
iRandom = math.random(1, M)
end
table.insert(tNonFinal, iRandom, true)
tFinal[i] = iRandom
end
Ваш требуемую таблицу будет tFinal
. Вы также можете добавить условие, в котором if M < N then N = M end
Большое вам спасибо! – Eyeball
Это может помочь вам ...
local myArray = {}
local valueArray = {1,2,3,4,5,6,7,8,9,10} -- let it be the array with values 1,2...M
local index = 0
local isFetched = {}
for i=1,#valueArray do
isFetched[i] = 0
end
local randomValue = 0
local function addTomyArray()
randomValue = math.random(#valueArray)
if(isFetched[randomValue]==0)then
index = index + 1
isFetched[randomValue] = 1
myArray[index] = valueArray[randomValue]
if(index==#valueArray)then
for i=1,#myArray do
print(myArray[i]) -- result : shuffled array
end
end
else
addTomyArray()
end
end
timer.performWithDelay(0,addTomyArray,#valueArray) -- #valueArray
Держите кодирование ........
Спасибо за помощь! Я получил его на работу = D – Eyeball
Тогда ответ на ваш вопрос будет следующим: «Да, есть способ сделать это». Проверьте флажок [faq # dontask] (http://stackoverflow.com/faq#dontask). – hjpotter92
Ive отредактировал мой вопрос. – Eyeball
Связанные: http://stackoverflow.com/q/158716 – finnw