模块:沙盒/Shinonome Akebono/S

< 模块:沙盒
Shinonome Akebono讨论 | 贡献2020年7月8日 (三) 21:01的版本 (Shinonome Akebono移动页面模块:沙盒/Sm模块:沙盒/Shinonome Akebono/S,不留重定向)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
50px 模块文档[创建]
local p = {}

local getArgs = require('Module:Arguments').getArgs

function p.hello()
    return "Hello world!"
end

function p.lang(frame)
    local args=getArgs(frame)
    local text=args[1]
    local lang=args[2]
    local span=mw.html.create('span')
        :attr('lang',lang)
        :wikitext(text)
    return span
end

local function qp(a,b,c)
    local ans=1
    local base=a
    local exp=b
    while exp>0 do
        if exp%2==1 then
            ans=ans*base%c
        end
        base=base*base%c
        exp=(exp-(exp%2))/2
    end
    return ans
end

function p.rand(frame)
    local prime=0x125E591
    local args=getArgs(frame)
    local bound=args[1]
    local time=math.modf(os.time()*math.random())%prime
    local pert=3254518517%prime
    pert=qp(qp(pert,time,prime),qp(time,pert,prime),prime)
    return pert%bound
end
return p