【发布时间】:2013-03-23 21:24:29
【问题描述】:
谁能帮助我用 N 个值随机填充一个表,其中值是 1,...,M 不允许重复?
干杯。
【问题讨论】:
-
那么您的问题的答案将是:“是的,有办法做到这一点。”请查看faq#dontask。
-
我已经编辑了我的问题。
标签: random lua coronasdk lua-table
谁能帮助我用 N 个值随机填充一个表,其中值是 1,...,M 不允许重复?
干杯。
【问题讨论】:
标签: random lua coronasdk lua-table
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
【讨论】:
这可能对你有帮助...
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
继续编码............?
【讨论】: