【问题标题】:randoming a table Corona SDK / Lua随机表 Corona SDK / Lua
【发布时间】:2013-03-23 21:24:29
【问题描述】:

谁能帮助我用 N 个值随机填充一个表,其中值是 1,...,M 不允许重复?

干杯。

【问题讨论】:

标签: random lua coronasdk lua-table


【解决方案1】:
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

【讨论】:

    【解决方案2】:

    这可能对你有帮助...

    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
    

    继续编码............?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-04
      • 2016-04-05
      • 2012-05-08
      • 1970-01-01
      • 1970-01-01
      • 2019-06-15
      • 2012-02-06
      相关资源
      最近更新 更多