Есть ли какое-либо программное обеспечение для тестирования последовательностей для неслучайности в Java?

Я ищу программу или библиотеку на Java, способную находить неслучайные свойства последовательности байтов. Что-то при предоставлении огромного файла запускает некоторые статистические тесты и отчеты, если данные показывают какие-либо закономерности.

Я знаю три таких программы, но не на Java. Я пробовал их всех, но они действительно не работают для меня (что довольно удивительно, так как один из них - NIST). Самый старый из них diehard работает отлично, но это немного сложно использовать.

Ответы

Ответ 1

Как уже отмечали некоторые комментаторы, это действительно проблема экспертной математики. Самое простое объяснение, которое я могу найти для вас, это:

Выполнить тесты для неслучайности

Автокорреляция

Это интересно, но поскольку он использует "головы или хвосты" для упрощения своего примера, вы обнаружите, что вам нужно гораздо глубже применить ту же теорию к шифрованию/криптографии и т.д., но это хороший старт.

Ответ 2

Другим подходом будет использование Нечеткая логика. Вы можете извлекать нечеткие ассоциативные правила из наборов данных. Эти правила в основном имеют последствия в форме:

если A тогда B, интерпретируется, например, "если 01101 (присутствует), то 1111 (будет следовать)"

Googling "интеллектуальный анализ нечетких данных" / "извлечение нечетких ассоциативных правил" должен дать вам более чем достаточный результат.

Ваша проблемная область на самом деле довольно велика, так как это то, чем занимается интеллектуальный анализ данных/текста. Это и статистический и комбинаторный анализ, просто чтобы назвать несколько.

О программе, которая это делает - посмотрите this.

Ответ 3

Не так много ответов на ваш вопрос, а на ваш комментарий, что "any observable pattern is bad". Что заставило меня думать, что случайность - это не проблема, а скорее наблюдаемые закономерности, и для решения этой проблемы наверняка вам понадобятся наблюдатели. Итак, словом, просто создайте веб-сайт и выложите его.

Некоторые примеры этого метода применяются для обозначения цвета: http://blog.xkcd.com/2010/05/03/color-survey-results/ и http://www.hpl.hp.com/personal/Nathan_Moroney/color-name-hpl.html