问题标签 [lcg]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
568 浏览

python - 线性同余生成器 - 如何选择种子和统计检验

我需要做一个线性同余生成器,它将成功通过选定的统计测试。

我的问题是:如何正确选择生成器的数字以及我应该选择哪些统计测试?

我想过:

  1. 卡方频率均匀性检验

    • 每种生成方法收集 10,000 个数字

    • 将[0.1) 细分为 10 个相等的细分

  2. Kolmogorov-Smirnov 均匀性检验

    • 由于 KS 测试更适用于较小的数字集,因此您可以使用您为卡方频率测试生成的 10,000 个中的前 100 个

这是代码示例:

在选择种子时,我在考虑纳秒,但我不知道如何实现它,它是否有意义?这个想法是为了表明所选择的种子是随机选择的,而不是从帽子中挑选出来的

0 投票
0 回答
327 浏览

python - 在 Python 中测试线性同余生成器

在 python 中应该对这个 LCG 进行哪些测试?

我想到的一切都是:Diehard,chi-square,kol-smirnov,这显然足以满足我的目的(这是一项家庭作业),但我已经阅读了一些关于这些测试的文章和文档以更好地理解它们,但它仍然相当摘要让我以 Python 代码的形式编写它

0 投票
1 回答
398 浏览

python - Dieharder 随机测试套件 - 令人怀疑的好结果

我根据以下生成器生成了一个txt文件(2500000个数字)

我使用以下代码保存了文件:

第一个单元格

第二个细胞

然后我使用Diehard 套件按以下方式进行测试:

我不确定测试是否真的在我的 txt 文件上运行,以及我的 txt 文件是否正确。250 万个数字的样本约为 30mb。

我很惊讶所有的测试都进行得很顺利。

下面是终端中的结果。

我很困惑,因为名字是MT19937- 这不是我的名字,文件是“output5.txt”是我的文件。我不知道是否对我的文件进行了测试

在此处输入图像描述

0 投票
1 回答
245 浏览

python - 线性同余生成器 - 弱测试结果

我正在尝试对我的线性同余生成器进行Dieharder Suite测试。

我不确定测试是在我的发电机上执行的,还是只是结果太弱了。

我使用生成器生成 2,5 条 mio 行,并将它们保存到文件 testrands.txt 中,并带有以下标头:

我遵循了这个指令(如示例)

然后我使用Dieharder 套件按以下方式进行测试:

现在结果出奇的弱(也许我生成的数字太少了?)

1

2

我按照指南中的方式进行操作,但似乎仍然不是应该的-LCG通过了生日间隔(我认为它不应该)并且剩余的结果出奇地弱

我的LCG:

0 投票
0 回答
45 浏览

java - 如何使用此乘法 LCG 生成 (x,y) 坐标?

我用Java开发了以下代码:

并有下一个例子:

LCG 示例

我随机生成 50 个点;实际上是八:

  • p1(x1,y1) = (5,5)
  • p2(x2,y2) = (25,25)
  • p3(x3,y3) = (29,29)
  • p4(x4,y4) = (17,17)
  • p5(x5,y5) = (21,21)
  • p6(x6,y6) = (9,9)
  • p7(x7,y7) = (13,13)
  • p8(x8,y8) = (1,1)

接下来的42分是同一时期。这是我得到的输出:

输出

但是,我的老师告诉我结果是错误的;因为它应该只分布在我画布的坐标 x,y 中的五个点以上;或者换一种说法,我的点数是错误的,我的坐标“y”不正确。我当然不明白为什么它应该只有五个不同的点,或者我应该如何生成我的“y”坐​​标。

如果该 LCG 生成的周期是 8,这是否意味着程序正在为我的画布生成八个不同的“x”坐标?我真的很困惑,我不是要代码;但是对于为什么我的输出不正确的一些解释。

0 投票
2 回答
224 浏览

c - 线性同余生成器的浮点异常(核心转储)

我正在完成基于线性同余生成器 (LCG) 的密码程序的头文件。它接收两个 unsigned long 值(m 和 c)并使用这些值生成 LCG 结构。在我的 getA() 中,我试图让它将 temp 变量添加到 uPrimes 数组中(以防它不能减少到 1,因此在计算 p 时可以包含它)但我一直收到错误:“浮点异常(核心转储)”。如果我不尝试这样做,它将运行到完成,但不会按需要执行。在最新的迭代中,我尝试将 uPrimes 数组的第一个值分配为 1,一旦 while 循环完成,它会将 temp 的值分配给第一个值,结果相同。任何帮助将不胜感激!(我提前为不匹配的变量声明道歉,

这是给我的测试文件,用于验证我的头文件是否按需要工作:

0 投票
0 回答
95 浏览

random - 如何从 Lua 中的 LCG 生成器的结果中获取种子?

我目前正在开发Library Of Babel的 Lua 端口。

据我所知,它通过使用十六进制、书架、书架和卷号随机生成标题和书籍来工作。为了在 Lua 中实现这一点,我使用了 randomlua,因为 Lua 的内置随机 API 对我来说效果不佳。

到目前为止,我唯一的问题是它不允许我从 LCG 反转结果来获取种子,我需要这样做来实现搜索书籍。当谈到这样的数学时,我没有那么聪明,所以我不知道从哪里开始。

这是生成随机数的代码:

我完全不知道如何反转函数以使其返回发生该结果的种子。非常感谢您对此的任何帮助。

这就是我计算页面标题和内容的方式:

标题为 8 个字符,内容为 3200 个字符。

0 投票
2 回答
98 浏览

python - Python:不从线性同余生成器函数返回值

我正在尝试使用 LCG 方法制作随机生成的图。虽然情节行为有效,但我的问题是当我尝试将列表返回到变量时。我的目标是让递归函数将一个列表返回给一个变量,但它似乎在退出定义时什么都不做。

递归函数(内部定义):

来自:

我的尝试是将种子设置为randnum并在每次检索随机生成的值列表时清除randnum2。但是,尝试单步执行该文件表明它成功执行了递归,但是当它移动到下一个轴列表时返回一个 NoneType 对象。

我尝试创建全局变量并检查执行递归操作后是否可以移动randnum2,但我没有任何运气。

0 投票
1 回答
136 浏览

matlab - 调用期间未分配输出参数:Matlab

我正在尝试使用 LCG 为一个项目生成 2500 个伪随机数。但是,当我尝试运行代码时,我不断收到错误“在调用 lcgg 期间未分配输出参数‘p’(可能还有其他)。”。我希望有人可以帮助我理解为什么 p 不在输出中以及如何解决这个问题?

0 投票
1 回答
158 浏览

python - 在python中反转线性同余生成器的代码

x 的索引 0 是种子,但是如果您想知道 x 的索引 -1 怎么办。

我正在使用 pygame 在 python 中制作游戏,我需要帮助,因为我需要在世界生成中使用它

编辑:

x 是随机数,x 的索引 0 是种子

LCG看起来像这样

x[i + 1] = (x[i] * mu + inc) % m

m 是模数

inc 是增量

mu 是乘数