![]() |
善良的煎饼果子 · c语言如何打乱一个数组 | PingCode智库· 1 月前 · |
![]() |
温暖的可乐 · Python random模块及用法· 1 月前 · |
![]() |
有腹肌的夕阳 · 【C++11算法】random_shuffl ...· 1 月前 · |
![]() |
大力的黑框眼镜 · 线性同余生成随机数的一点思考· 2 周前 · |
![]() |
活泼的枕头 · mac解决axure闪退问题 - 简书· 2 月前 · |
![]() |
文质彬彬的伏特加 · 我们的眼科医生|King and Rose· 3 月前 · |
![]() |
气势凌人的伤疤 · 数百名律师致信拜登,吁美国暂停单边经济制裁: ...· 3 月前 · |
![]() |
爱健身的鼠标垫 · Crosswork Network ...· 5 月前 · |
![]() |
酷酷的仙人球 · 【解放日报】实验室牵头建3个“国字号”中心 ...· 5 月前 · |
![]() |
善良的煎饼果子 · c语言如何打乱一个数组 | PingCode智库 1 月前 |
![]() |
温暖的可乐 · Python random模块及用法 1 月前 |
![]() |
大力的黑框眼镜 · 线性同余生成随机数的一点思考 2 周前 |
![]() |
活泼的枕头 · mac解决axure闪退问题 - 简书 2 月前 |
![]() |
文质彬彬的伏特加 · 我们的眼科医生|King and Rose 3 月前 |
我正在这样使用随机函数:
math.randomseed(os.time()) num = math.random() and math.random() and math.random() and math.random(0, 10)
这个很有效。另一种选择是改进内置的随机函数,可以在这里中找到说明。
2018-10-11 06:32:25 stackoverflow用户17162144这可能有帮助!我不得不使用这些函数来编写一个生成 Nano ID 的类。我基本上使用了 os.clock() 函数中的毫秒数,并使用它来设置 math.randomseed()。
NanoId = { validCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-", generate = function (size, validChars) local response = "" local ms = string.match(tostring(os.clock()), "%d%.(%d+)") local temp = math.randomseed(ms) if (size > 0 and string.len(validChars) > 0) then for i = 1, size do local num = math.random(string.len(validChars)) response = response..string.sub(validChars, num, num) return response function NanoId:Generate() return self.generate(21, self.validCharacters) -- 运行测试 for i = 1, 10 do print(NanoId:Generate()) >>> p2r2-WqwvzvoIljKa6qDH >>> pMoxTET2BrIjYUVXNMDNH >>> w-nN7J0RVDdN6-R9iv4i- >>> cfRMzXB4jZmc3quWEkAxj >>> aFeYCA2kgOx-s4UN02s0s >>> xegA--_EjEmcDk3Q1zh7K >>> 6dkVRaNpW4cMwzCPDL3zt >>> R2Fct5Up5OwnHeExDnqZI >>> JwnlLZcp8kml-MHUEFAgm >>> xPr5dULuv48UMaSTzdW5J 2022-06-14 22:37:38 评论区的留言会收到邮件通知哦~