Lua随机数? [复制]

2023-11-30

如何生成每次运行脚本时都不同的随机整数?我目前正在做一个“不可能的测验”,它使用随机数从表格中选择一个问题。每次我运行脚本时,问题的顺序都是相同的。我还使用 table.remove() 在提出问题后从表中删除问题。然而,一旦被删除,它就会继续问同样的问题,因为它没有选择一个新的随机数(我正在使用 math.random(1, #Questions) 从“问题”表中选择一个随机问题.)

    local lives = 3

Questions = {
    {"What is the magic word?", "lotion"},
    {"Does anyone love you?", "no"},
    {"How many fingers do you have?", "10"},
    {"What is 1 + 1?", "window"}
}

function lookForAnswer(ans)
    table.remove(Questions[number])
    local input = io.read() tostring(input)
    if input:lower() == ans then
        return true
    end
    lives = lives - 1
    if lives <= 0 then
        exit()
    end
    return false
end

for i = 1, #Questions do
    number = math.random(1, #Questions)
    local q = Questions[number][1]
    local a = Questions[number][2]
    print(q)
    if lookForAnswer(a) then
        print("Correct!\n")
    else
        print("WRONG!  Lives: " .. lives .. "\n")
    end
end

io.read()

您需要通过调用来播种随机数生成器math.randomseed()打电话之前math.random()。使用起来很常见os.time()作为种子值(math.randomseed(os.time())).

重要的是要注意math.random()是确定性的,因此熵必须来自种子值。如果将相同的值传递给种子,您将获得相同的值math.random(). Since os.time()仅分辨率低至秒,这意味着如果您在给定秒内多次调用该命令,您将得到相同的值。您可以尝试使用更多熵源进行播种(/dev/random) 如果你喜欢。

需要澄清的是,如果它是真正随机的,您不能保证每次值都会不同。您所能做的就是确保获得相同值的概率足够低。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Lua随机数? [复制] 的相关文章

  • python随机字典键,并访问它[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 import random Cards Spade 2 3 4 5 6 7 8 9 10 Jack Queen King
  • 如何在Conky中实现一个基本的Lua功能?

    我正在尝试向我的 Conky 添加一个函数 该函数打印字符串的长度以用于调试目的 代码位于名为的文件内test lua 非常简单 function test word return string len word end 我这样加载它 在我
  • 尝试将 nil 与数字堆栈回溯进行比较?

    我正在通过以下链接玩 Lua https www lua org pil 4 2 html https www lua org pil 4 2 html并对某一点感到困惑 Lua 5 2 4 Copyright C 1994 2015 Lu
  • 使用 FastCGI 运行 Lua 脚本

    我目前正在尝试找出使用 FastCGI 与 lighttpd 或 Nginx 一起运行 Lua 脚本的方法 我唯一能挖到的是WSAPI http keplerproject github com wsapi 开普勒计划的一部分 但我想知道是
  • 如何使用 Android Studio 2.1.3 从 Android 中的文本文件中获取随机行?

    我有一个 500 行的文本文件 我将此文本文件放置在 app src main assets 文件夹中 名称为 words txt 在此文件中 每一行都用换行符分隔 现在我需要从这个文本文件中获取随机行 在发布此内容之前 我访问了以下问题
  • lua中的权限问题

    是否需要在 corona build settings 中设置一些特定权限才能将高分永久保存在文件中 每次运行代码时都会出现 权限被拒绝 的错误 如何纠正这个错误 这是我尝试过的代码 function read score local f1
  • 使用 rmultinom() 函数从 R 中的多项分布生成随机数

    我想从具有三个值的多项分布生成大小为 20 的样本 例如1 2 and 3 例如 样本可以是这样的sam 1 2 2 2 2 3 1 1 1 3 3 3 2 1 2 3 1 下面的代码可以工作 但没有得到预期的结果 gt rmultinom
  • 如何在Java中从一组选定的颜色中输出随机颜色? (安卓)

    因此 我希望每当用户输入答案时都为字符串赋予随机颜色 我的问题是 我不确定如何使字符串的随机颜色成为特定范围的颜色 例如 如果我希望字符串随机变成蓝色 红色 绿色 粉色 白色或棕色 只有这些颜色 没有其他颜色 到目前为止 我已经使用以下代码
  • 安装Lua套接字库

    要么我太累了 要么我瞎了 我想学习 Lua 网络 因此我必须安装socketlib 所以我可以轻松地要求它 但我不知道我应该 要求 哪些文件 例子说 local socket require socket 但正如我所说 如果我使用 我不知道
  • 随机打乱列表[重复]

    这个问题在这里已经有答案了 可能的重复 在 C 中随机化 List https stackoverflow com questions 273313 randomize a listt in c sharp 随机播放 随机重新排列 List
  • scipy.stats....rvs 和 numpy.random 随机抽取之间的区别

    看起来是否是相同的分布 从中抽取随机样本numpy random比这样做更快scipy stats rvs 我想知道是什么原因导致两者之间的速度差异 scipy stats uniform实际上使用了numpy 这里是stats中对应的函数
  • Lua中按字符分割字符串

    我有像这样的字符串 ABC DEF 我需要将它们分开 字符并将两个部分分别分配给一个变量 在 Ruby 中 我会这样做 a b ABC DEF split 显然Lua没有这么简单的方法 经过一番挖掘后 我找不到一种简短的方法来实现我所追求的
  • 检查多个位置的值并仅在源唯一时返回匹配项

    假设我有一个清单Vendors 阿斯达 乐购 Spar 我有一个清单Sources 或者这个类比中的供应商 家乐氏 Kellogg 吉百利 Cadbury 雀巢 Nestle 强生 Johnsons 帮宝适 Pampers Simple 等
  • 即使我调用 srand(time(NULL)) [重复],rand 函数在每次运行时都会给我相同的结果

    这个问题在这里已经有答案了 我有问题 我想使用rand 获得 0 到 6 之间的随机数 但每次运行它总是给我 4 即使我打电话srand time NULL include
  • Python错误代码:IndexError:索引错误列表索引超出范围

    我正在尝试用 Python 编写一个模拟赛马的函数 虽然没有获胜者 但它会清除屏幕 显示马匹列表 所有马匹的索引都从零开始 然后 在我标记的行上 代码变得混乱 我发现索引错误列表超出范围 我正在尝试随机选择一匹马 随机选择一个索引号 并将该
  • VBA rand 如何使用上限和下限生成随机数?

    所以也许这是多余的 也许这就像问为什么大多数人生来就有 5 个手指 最后的简短答案总是 因为事情就是这样 而且它就是这样工作的 但我讨厌这个答案 该死的我想知道怎么做VBA 中的 Rnd 函数有效 Ms Office Excel 的 MSD
  • 在 Go 中生成随机、固定长度的字节数组

    我有一个字节数组 固定长度为4 token make byte 4 我需要将每个字节设置为随机字节 我怎样才能以最有效的方式做到这一点 这math rand就我而言 方法不提供随机字节函数 也许有一种内置的方法 或者我应该生成一个随机字符串
  • 如何在 emacs lua-mode 中配置缩进?

    完整的 emacs 新手在这里 我在 Ubuntu 上使用 emacs 23 1 1emacs 入门套件 https github com technomancy emacs starter kit 我主要在 lua 模式下工作 安装了pa
  • 线性同余生成器 - 如何选择种子和统计检验

    我需要做一个线性同余生成器 它将成功通过所选的统计测试 我的问题是 如何正确选择发电机的数字以及 我应该选择哪些统计检验 我想 均匀性的卡方频率测试 每代收集10 000个号码的方法 将 0 1 细分为10个相等的细分 柯尔莫哥洛夫 斯米尔
  • C++ 中的随机数生成...第一个数字不是很随机

    我试图在 C 中获得 0 到 1 之间的统一随机数 而不使用 boost 我不想依赖图书馆 每当我开始我的计划时 我都会种子 srand 时间 NULL 然后我打印 8 个随机数 我用空行分隔程序的不同运行 Random number 0

随机推荐

  • AttributeError:'tuple'对象没有属性'encode' - MySQLdb Python

    我正在用 MySQL 编写 Python 代码 我的数据库架构如下 id name 以下是我的代码的一部分 cursor self conn cursor query SELECT name FROM TABLENAME WHERE id
  • 正则表达式 - 精确匹配一个标签

    我有一个正则表达式来从 HTML 字体标签中提取文本 font face font 在我有一些嵌套的字体标签之前 这一切都很好 而不是匹配 font face Fett font 字符串的结果 font face Fett font u U
  • 您可以导入 .so 文件吗?

    我有一个名为的 so 文件tissue classifier cpython 37m x86 64 linux gnu so来自我想要导入的外部库 以便我可以在我的本地类之一中扩展它 由于我正在扩展一个类 因此我需要使用以下命令将其作为扩展
  • 如何为 adobe air 应用程序设置图标

    我正在开发 Adob e Air 应用程序 我需要为应用程序设置一个图标 以便它显示在任务栏上 我将图标标签添加到描述符文件中 但它不起作用 我真的不知道为什么 有什么想法吗 有两件事可能会让你失望 1 图标块在自动生成的描述符文件中默认被
  • 首次使用 AVX 256 位向量会减慢 128 位向量和 AVX 标量运算

    最初 我试图重现 Agner Fog 的微架构指南部分 YMM 和 ZMM 向量指令的预热期 中描述的效果 其中写道 处理器在不使用时关闭向量执行单元的上部部分 以节省电力 在大约 56 000 个时钟周期或 14 s 的初始预热期间 具有
  • 将流类型包含到 JSDoc 中

    我读过一些issues在 github 上和projects构建在 Flow 之上 用于在 Flow 和 JSDoc 之间创建 桥梁 或者简单地从 Flow 类型注释生成 JSDoc 他们都没有回答我的这个 简单 需求 问 如何将 Flow
  • 使用C C++删除文件恢复程序[关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 我想编写一个程序 可以从硬盘驱动器 FAT32 NTFS分区Windows 恢复已删除的文件 我不知道从哪里开始 这件事的出发点应该是什么 我应该读什么来追求这个目标 需要帮助 我应该
  • 没有模型和 Ajax 的 POST Json

    现在 我只想使用 HTTP POST 将 json 发送到 asp net mvc2 控制器 由于 JSON 实际上是 JSON 对象的列表 并且每个对象都有不同的字段和长度 因此我很难构建输入模型 所以我想知道是否有一种方法可以将没有模型
  • 如何在 lucene 4.0 中使用 ngram tokenizer?

    我正在研究不带空格的文本索引大型文本文件 目前我有 ngram 方法来生成长度为 12 的字符串 然后对它们进行索引 与搜索方式相同 我从用户处获取字符串 生成 12 的 ngram 然后使用它来构建查询 在搜索时 请阅读 lucene 中
  • 无法绑定到属于 C#/XAML 应用程序中 WindowsFormsHost Child 对象的属性的解决方法?

    我有一个 C WPF 4 51 应用程序 据我所知 您不能绑定到属于 WPF 子对象的对象的属性WindowsFormsHost控制 如果我的这个假设是错误的 请告诉我该怎么做 与 WindowsFormsHost 绑定 就我而言 我有一个
  • TFS 非 Windows 用户

    如何将非 Windows 用户添加到我的 Team Foundation Server 2012 Express 版本 我们与一家外包公司合作 我们希望建立一个可供国内外团队访问 TFS Express 版本的设置 由于外部开发人员不是我们
  • 如何求两个CG点之间的距离?

    当我们在 UIScrollView 中用两根手指进行多点触控时 我们得到两个 CG 点 我想找出他们之间的距离 然后当我们再次捏 内部或外部 时 我们将再次得到两点 然后在再次找到这两点之间的距离后 我想决定是捏进去还是捏出来 如果我捏紧了
  • 在 Visual C++ IDE 的输出窗口上打印输出

    如何在 Visual C 中的输出窗口上进行打印 我正在处理的项目不是控制台窗口项目类型 当我构建并运行它时 它不会打开控制台窗口 相反 它会打开一个 win32 应用程序 该应用程序不是我构建的 我只是向其中添加一些东西 我对 C 还很陌
  • 如何在 jetpack compose 中将视图模型从一个屏幕共享到另一个屏幕?

    我正在尝试学习 android jetpack compose 并且我有简单的应用程序 在 ScreenA 中 我有一个文本字段 当我单击按钮时 我会将这些数据保存到 firestore 当我进入 ScreenB 时 我想将城市名称也保存在
  • HTML 列表结构中的 PHP 递归菜单

    这是 html 结构 它应该是这样的 li a href class menulink Dropdown One a ul li a href Navigation Item 1 a li li a href class sub Navig
  • Subsonic 3 Linq 投影问题

    好吧 我用这个把头撞在墙上 给定数据库中名为 Address Customer 和 CustomerType 的表 我想要显示有关客户的组合摘要信息 因此我创建一个查询来连接这两个表并检索指定的结果 var customers from c
  • C# 闭包,为什么循环变量是通过引用捕获的?

    在此示例中 我尝试按值传递 但改为传递引用 for int i 0 i lt 10 i Thread t new Thread gt new PhoneJobTest i t Start 这可以这样补救 for int i 0 i lt 1
  • javascript 创建 INcode 工作区(框架)

    如果我有一个面向公众的小 框架 我怎样才能打造自己的 工作空间 所以我可以使用我想要的任何变量名称 我怎样才能完成它 使用匿名函数包装器 使用定义的任何变量var不适用于包装器外部的代码 每当您想要定义方法或属性时 请将它们添加到tobep
  • Flutter:为什么 setState(( ) { }) 一次又一次设置数据

    I use setState 用于为变量赋值 但它一次又一次地打印 为什么会出现这样的反应呢 我该如何解决它 这是我的代码 class Sample extends StatefulWidget override SampleState c
  • Lua随机数? [复制]

    这个问题在这里已经有答案了 如何生成每次运行脚本时都不同的随机整数 我目前正在做一个 不可能的测验 它使用随机数从表格中选择一个问题 每次我运行脚本时 问题的顺序都是相同的 我还使用 table remove 在提出问题后从表中删除问题 然