随机生成一个表格 Corona SDK / Lua

有人可以帮我找一种随机填充 N 个值的方法,其中这些值是 1 到 M,不允许重复吗?

干杯。

点赞
用户1979583
用户1979583

可能会对你有所帮助...

local myArray = {}
local valueArray = {1,2,3,4,5,6,7,8,9,10}  -- 假设这是值为 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])    -- 输出:打乱后的数组
        end
     end
  else
    addTomyArray()
  end
end
timer.performWithDelay(0,addTomyArray,#valueArray)  -- #valueArray

继续编码......

2013-04-02 15:07:21
用户1190388
用户1190388
本地变量 M、N、tNonFinal 和 tFinal 的默认值分别为 50020、{} 和 {}。

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

2013-04-02 15:16:37