Lua随机数和排序结合

    初学Lua,看到有个题目要取随机的几个整数并排序再输出,我忽然发现这个题目可以更好玩一点更有难度一点

就是给这个随机取得的函数保证它不同时候然后又从大到小或者从小到大输出。于是乎,对于这么一个初学者的我,就迷迷糊糊去写了一个满足了排序的Lua代码

这是从小大到大的排序,sort函数自带这个功能

    table.sort(table1)
    for key ,var in pairs(table1)do 
    print(var) 
    end
然后从大到小需要自己写了就稍微添加了一个function加进去而已

    table.sort(table1,function (a,b) return a>b end)
    for key ,var in pairs(table1)do 
    print(var) 
    end
研究一下,为了保证存进table的数字都不相同必须要添加一个if判断,然后需要一个function来循环判断是否相等,每次不相同的时候插入到table末尾,这样就可以得到规定数目的不同的数字

function shuffle(starNum, endNum, count)
    local shuffleNum = {}
    local function isExist(num)
        for key, var in pairs(shuffleNum) do
            if var == num then
                return true
            end          
        end
          return false
   end                   
    -- 生成随机数
    local function generateShuffle()
        local number = math.random(starNum, endNum)
        if isExist(number) then
            -- 如果存在,则继续随机
            generateShuffle()
        else
            -- 不存在,加入到随机数表中
            table.insert(shuffleNum, number)
            if #shuffleNum < count then
                generateShuffle()
            end
        end
    end

    generateShuffle()
    
    for key, var in pairs(shuffleNum) do
         print(var.."\n")
    end
end

最后需要自己调用suffle这个函数给他设定自己需要的参数,输出结果大概是这样的
[LUA-print] 8
[LUA-print] 7
[LUA-print] 6
[LUA-print] 1
[LUA-print] 4
[LUA-print] 5
[LUA-print] 2
[LUA-print] 10
[LUA-print] 3
[LUA-print] 9

我一个新手花费的时间就有点久了,希望以后解决问题能有更快速方案

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值