本站页面(多半)转载自萌娘百科的同名页面,依CC BY-NC-SA 3.0引入,贡献者可以在历史页查询。
因各种原因页面内容可能和源页面有所出入,非本站特有页面内容请以萌娘百科为准。
因各种原因页面内容可能和源页面有所出入,非本站特有页面内容请以萌娘百科为准。
- 你好~!欢迎来到萌娘百科镜像站!如需查看或编辑,请联系本站管理员注册账号。
- 本镜像站和其他萌娘百科的镜像站无关,请注意分别。
Module:Sandbox/红石小蝈/Dice
< Module:Sandbox | 红石小蝈
跳到导航
跳到搜索
local ret = {} prime = 998244353 local function fastpow(a, b, mod) local n = 1 local r = a local p = b while p > 0 do if p % 2 == 1 then n = n * r % mod end r = r * r % mod p = (p-(p%2)) / 2 end return n end local function seed(frame) local t = os.time() t = fastpow(3, t, prime) return t end rand = {} rand.seed = seed() rand.dice = function(num) rand.seed = rand.seed * 114514 % prime if num <= prime then return rand.seed%num else return fastpow(num % prime, rand.seed, num) end end rand.run = function(str) local stack = {0, 0} stack.top = 0 for i = 1, mw.ustring.len(str) do local chr = mw.ustring.sub(str, i, i) local ord = mw.ustring.byte(chr) if ord >= 48 and ord < 58 then stack.top = stack.top * 10 + (ord - 48) elseif chr == 'd' or chr == 'D' then end end end ret.seed = seed return ret