Есть ли способ оценить это с помощью анализа выходных данных этого генератора?
Как говорится в комментариях, не совсем (если только генератор не был очень плохим).
Я пытаюсь анализировать циклы в 16-битных частях 128-битных выходов.
Кстати, разве мы не должны ожидать, что случайное 16-битное число будет встречаться один раз в каждом $2^{16}$ шаги?
Что должен делать хороший PRNG, так это перемешивать все биты состояния вместе, поэтому просмотр усеченных 16-битных фрагментов ничего вам не скажет.
С другой стороны, вы, кажется, перечисляете пробелы в вхождениях определенного 216-битного значения (14649), и эти пробелы выглядят довольно странно. Если бы PRNG был хорошим, мы ожидали бы, что промежутки между появлениями будут следовать экспоненциальному распределению (со средним значением 65536, как вы сказали); хотя иногда вы будете видеть разрывы, значительно превышающие среднее значение, вы почти никогда не должны видеть разрыв в 100 раз больше среднего (и вы показываете даже большие) - это тип "многократного выигрыша в лотерею" событие. Тот факт, что вы, кажется, указывает на то, что: а) я неправильно интерпретирую данные, б) вы неправильно измеряете разрыв, или в) PRNG серьезно неоднороден.
Проверка на неравномерность проста — просто запустите PRNG и подсчитайте, сколько раз вы видите каждое значение — если вы видите значения, количество которых является большим кратным стандартному отклонению от среднего (в любом направлении), у вас есть серьезные проблемы. проблема.
Конечно, если это должен быть криптографически безопасный генератор случайных чисел, то требования к нему существенно строже...