Существуют различные варианты регистров сдвига с линейной обратной связью, такие как сжатие и самоусадка , которые изменяют выход одного LFSR на основе выхода другого.
Схема этих попыток создания случайных чисел, где вероятность получить два бита одинаковыми в строке равна 0,5, а получить три бита подряд - 0,25 и т. Д.
Должна быть возможность связать два LFSR, чтобы запретить или инвертировать вывод, когда происходит последовательность похожих битов - первый LFSR использует обычный примитивный полином, а вывод первого - во второй. Второй регистр сдвига короче, не имеет примитивного полинома. Вместо этого он используется для инвертирования вывода, если все его биты одинаковы, поэтому ни один цикл не может превышать размер второго регистра сдвига.
Очевидно, что это уничтожает случайность вывода - если у вас есть N битов подряд, следующий бит полностью предсказуем. Возиться с использованием выхода другого случайного источника, чтобы определить, будет ли инвертировать выход, побеждать второй сдвиговый регистр - вы не сможете обнаружить разницу между этим и только одним случайным источником.