
Сообщение от
capzap
ну раз меня начали игнорить отвечу сам себе с наглядными картинками, случай который тестил Ситников имеет характерный след повтора, и реальный оскатовский метод имеет более менее похожий отпечаток белого шума. Естественно такой подход не пройдет ни один тест
capzap, я гляжу, вы большой мастак верить в карго-культ. Откуда уверенность, что в ПЛК T_PLS_MS будет хорошо фонить? Это где-то в документации гарантировано? Поясню: запросто может оказаться, что T_PLS_MS возвращает одно и то же значение, или только значения кратные 16 (на windows xp, например, так) или ещё как.
Я проверял простые случаи: интервал цикла == 10мс, вызов rdm 1 раз за цикл. Поэтому и +10.
Если уж так неймётся, проверил такой вариант:
Код:
tn = clock() * 1000.0/ CLOCKS_PER_SEC;
tc = bit_count(tn);
tn |= (tn&(1<<(2)))<<(31-2);
tn |= (tn&(1<<(5)))<<(30-5);
tn |= (tn&(1<<(4)))<<(29-4);
tn |= (tn&(1<<(1)))<<(28-1);
tn |= (tn&(1<<(0)))<<(27-0);
tn |= (tn&(1<<(7)))<<(26-7);
tn |= (tn&(1<<(6)))<<(25-6);
tn |= (tn&(1<<(3)))<<(24-3);
tn = rol(tn, bit_count(tn)) | 0x80000001;
tn = tn % 71474513 + (tc + 77);
rdm = ((float)tn) / 10000000.0 * (E - (last<0.0 ? 0 : (last>1.0?1.0:last) ));
rdm = rdm - floor(rdm);
Такая вариация завалила вообще все тесты.

Сообщение от
capzap
ЗЫ добавил метод xorshift в исполнении Филоненко, даже на такой малой области картинки встречаются сгустки одинаковых значений, субъективно поболее чем в оскатовской
1) Какие начальные значения для x, y, z, w использовали. Правильные?
2) Вы сделайте картинку для SecureRandom -- посмотрите как "должна" выглядеть картинка хорошего генератора. Возможно, у xorshift как раз и получается правильная.