【问题标题】:Rdieharder text file as inputRdieharder 文本文件作为输入
【发布时间】:2020-04-08 10:13:36
【问题描述】:

总结

我正在尝试测试一个 RNG,它生成一个文本文件的数字,最好使用 0 到 1 之间的十进制数字。这使用 Rdieharder 包。(请注意,这是我第一次使用 R 或任何 rng 测试)

尝试

我知道存在 rng = file_input 和 file_input_raw 函数。我通过它们在文本文件中运行二进制或十进制数字的所有尝试均未成功。要么导致导致 Rstudio 冻结的致命错误,要么如下(图像)。

代码

我在 Rstudio 中的尝试如下所示。

library(RDieHarder)
library(random)

dh <- dieharder(rng = "file_input_raw", inputfile = "Random.txt")

plot(dh)

我尝试了不同的方法来格式化文本文件。

二进制

32 bit binary numbers as follows:
111000010100001100011011110010
1110000100111111011001011011001
11100001001110111001100100100111
111111101001011010100100000111
....
2,500,000 numbers

这导致以下

这似乎程序将我的输入识别为 0。

十进制

0.667371
0.673781
0.663682
0.684186
0.642766
0.726927
0.556512
...
1000 numbers

这会冻结“file_input”和“file_input_raw”的 Rstudio。

这些数字并不代表最终结果 目前我只是想从顽固分子那里得到一个有意义的结果。我的格式是错误的还是我需要不同的 rng= ?或者有人知道在文本文件上使用 rdieharder 的简单方法吗?

【问题讨论】:

  • 这就够了:dh &lt;- dieharder(inputfile = "Random.txt")。参数rng 必须是dieharderGenerators() 之一,可以是字符串(names 列)或id 数字。

标签: r random rstudio


【解决方案1】:

以下说明按预期工作。只需在dieharder() 参数inputfile 中传递文件名。

创建测试数据。

set.seed(1234)    # Make the results reproducible
r <- runif(1000)
f <- file("Random.txt", open = "wt")
writeLines(as.character(r), con = f)
close(f)

现在测试随机性。

dh <- dieharder(inputfile =  "Random.txt")

plot(dh)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-06
    • 2015-01-22
    • 1970-01-01
    • 2014-12-06
    相关资源
    最近更新 更多