Кстати, насчет применения для решения этой задачи линейного генератора. У выхода такого генератора будет как минимум одна аномалия — он будет выдавать четные числа после нечетных и наоборот. Это старшие биты такого генератора более-менее случайны, не даром же сишный rand() выдает только 15 старших бит зерна. И то у него со статистикой не все в порядке. Я как-то пробовал пожать выход rand()%256 с помощью компрессора paq8 (это такой статистический упаковщик на основе нейронных сетей). Пожался. Насколько помню, где-то на 2%.
And if you listen very hard the alg will come to you at last.