Rdieharder текстовый файл в качестве ввода - PullRequest
0 голосов
/ 08 апреля 2020

Сводка

Я пытаюсь протестировать ГСЧ, которая генерирует числа в текстовый файл, в идеале с использованием десятичных чисел от 0 до 1. Это с использованием пакета Rdieharder. (Обратите внимание, что я впервые использую R или любой другой тест rng)

Попытка

Мне известно о существовании функций rng = file_input и file_input_raw. Все мои попытки запустить двоичные или десятичные числа в текстовых файлах через них не увенчались успехом. Либо приводит к фатальным ошибкам, которые замораживают Rstudio, либо следующим образом (изображение).

Plot binary attempt

Код

Мои попытки выглядят так в Rstudio.

library(RDieHarder)
library(random)

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

plot(dh)

Я пробовал разные подходы к форматированию текстового файла.

Binary

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

В результате получается

Plot binary attempt

Похоже, что программа распознает мой ввод как 0.

Десятичное число

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

Это замораживает Rstudio как для "file_input", так и для "file_input_raw".

Числа не указывают на конечные результаты. На данный момент я просто пытаюсь получить значимый результат от dieharder. У меня неправильное форматирование или мне нужен другой rng =? Или кто-нибудь знает простой способ использовать rdieharder для текстового файла?

1 Ответ

0 голосов
/ 08 апреля 2020

Следующие инструкции работают как положено. Это только передача имени файла в 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)

enter image description here

...