Generador de secuencia pseudoaleatoria reversible

Me gustaría algún tipo de método para crear unsecuencia larga de números aleatorios que puedo hojearhacia atrás y hacia adelante. Al igual que una máquina con botones "siguiente" y "anterior", eso le dará números aleatorios.

Algo similar a una resolución de 10 bits (es decir, enteros positivos en un rango de 0 a 1023) es suficiente y una secuencia de> 100k números. Es para una aplicación simple de tipo juego,No necesito aleatoriedad con fuerza de cifrado o cualquier cosa, pero quiero que se sienta bastante al azar. tengo uncantidad limitada de memoria disponible, así que no puedo generar una gran cantidad de datos aleatorios y revisarlos. Necesito obtener los números en "tiempo interactivo". Puedo pasar fácilmente unos cuantos minutos pensando en el próximo número, pero no mucho más que eso. Eventualmente se ejecutará en algún tipo de microcontrolador, probablemente solo un Arduino.

Podría hacerlo con un simple generador congruencial lineal (LCG). Ir hacia adelante es simple, para ir hacia atrás tendría que guardar en caché los números más recientes y almacenar algunos puntos a intervalos para poder recrear la secuencia desde allí.

¿Pero tal vez hay algún generador pseudoaleatorio que te permita avanzar y avanzar? Debería ser posible conectar dos registros de desplazamiento de retroalimentación lineal (LFSR) para rodar en diferentes direcciones, ¿no?

¿O tal vez puedo pasar el tiempo con el número índice usando una función hash de algún tipo? Voy a intentar eso primero.

¿Alguna otra idea?

Respuestas a la pregunta(7)

Su respuesta a la pregunta