Я бы хотел, чтобы какой-то метод создал довольно длинную последовательность случайных чисел , которая может пролистывать вперед и назад . Как машина с кнопками «следующий» и «предыдущий», которая даст вам случайные числа.
Достаточно что-то вроде 10-битного разрешения (то есть положительных целых чисел в диапазоне от 0 до 1023) и последовательности из> 100k чисел. Это для простого приложения игрового типа: Мне не нужна случайность с шифрованием или что-то еще, но я хочу, чтобы оно выглядело довольно случайным. У меня есть ограниченный объем памяти , поэтому я не могу просто сгенерировать кусок случайных данных и просмотреть их. Мне нужно получить числа в «интерактивном времени» - я легко могу потратить несколько мс, думая о следующем числе, но не намного удобнее, чем это. В конце концов он будет работать на каком-то микроконтроллере, возможно, просто на Arduino.
Я мог бы сделать это с помощью простого линейного конгруэнтного генератора (LCG). Движение вперед - это просто, чтобы вернуться назад, я должен был бы кэшировать самые последние числа и сохранять некоторые точки с интервалами, чтобы я мог воссоздать последовательность оттуда.
Но, может быть, есть какой-то псевдослучайный генератор, который позволяет вам идти вперед и назад? Должна быть возможность подключения двух регистров сдвига с линейной обратной связью (LFSR) для вращения в разные стороны, не так ли?
Или, может быть, я могу просто обойтись с искажением номера индекса, используя какую-то хеш-функцию? Я собираюсь попробовать это в первую очередь.
Есть еще идеи?