查看“模块:Random”的源代码
←
模块:Random
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
local module = {} local getArgs = require('Module:Arguments').getArgs function _main(args) local upset = 0 function upsetRandomSeed() math.randomseed(tostring(os.time()):reverse():sub(1, 7)..upset..args['upset']) upset = upset + 1 end upsetRandomSeed() local count = tonumber(args['count'] or 1) if count < 1 then count = 1 end local result = {} function testRepetition(val) for i, v in ipairs(result) do if v == val then return true end end return false end function getRandomNumber() local ran, min, max = 0, 0, 1 if args[1] == nil then return math.random(0, 1), 0, 1 elseif args[1] == 'raw' then ran = math.random() else if args[2] then min, max = tonumber(args[1]), tonumber(args[2]) else max = tonumber(args[1]) end if min > max then min, max = max, min end ran = math.random(min, max) end return ran, min, max end repeat local ran, min, max = getRandomNumber() if testRepetition(ran) == false or args['allowrepeat'] then result[#result + 1] = ran end if args[1] ~= 'raw' and #result >= max - min + 1 then for i=#result + 1, count do if args[1] == nil then upsetRandomSeed() end result[i] = math.random(min, max) end end until(#result >= count) return table.concat(result, ',') end function module.main(frame) local args = getArgs(frame) return _main(args) end return module
该页面使用的模板:
模块:Random/doc
(
查看源代码
)
返回至
模块:Random
。
导航菜单
个人工具
登录
名字空间
模块
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
随机页面
最近更改
最新文件
常用
上传多个文件
工具
链入页面
相关更改
特殊页面
页面信息