Estou programando um LFSR (Linear Feedback Shift Register) em software para fins de aprendizado e encontrei algumas limitações em seu uso como um gerador de números pseudo-aleatórios (PRNG).
- Se a semente tem poucos bits '1' e poucos toques são usados, é necessário um grande "tempo de inicialização" para produzir uma saída aparentemente aleatória, com distribuição quase igual entre as execuções '1 e' 0 'ou' 0 'curto. Eu acho que com mais toques, essa inicialização seria muito mais rápida, mas todas as tabelas pré-calculadas que encontro dão dois ou quatro toques.
- Os números sequenciais são altamente correlacionados, o que é de se esperar, dado que, se o bit de saída for 0, o próximo número será metade do número anterior. Para um LFSR de 15 bits com toques [15, 14], plotar um par de números seqüenciais como pontos em um plano fornece o seguinte. Um PRNG ideal deve espalhar esses pontos por todo o lugar.
Eu sei que os LFSRs são usados como contador de hardware rápido, mas também vi que é usado como um PRNG para criar ruído branco. Como é usado em aplicações do mundo real com qualidade tão ruim?