Бих искал някакъв метод за създаване на доста дълга последователност от произволни числа, която мога да прелиствам назад и напред. Като машина с бутони "следващ" и "предишен", която ще ви даде произволни числа.
Нещо като 10-битова резолюция (т.е. положителни цели числа в диапазон от 0 до 1023) е достатъчно и последователност от >100k числа. Това е за просто приложение от тип игра, не ми трябва произволност на силата на криптиране или нещо такова, но искам да се чувства доста произволно. Все пак имам ограничено количество памет, така че не мога просто да генерирам част от произволни данни и да ги прегледам. Трябва да получа числата в "интерактивно време" - лесно мога да прекарам няколко милисекунди в мислене за следващото число, но не е удобно много повече от това. В крайна сметка ще работи на някакъв микроконтролер, вероятно просто Arduino.
Мога да го направя с прост линеен конгруентен генератор (LCG). Вървенето напред е просто, за да се върна назад, ще трябва да кеширам най-новите числа и да съхранявам някои точки на интервали, за да мога да пресъздам последователността от там.
Но може би ИМА някакъв псевдослучаен генератор, който ви позволява да вървите както напред, така и напред? Трябва да е възможно да се свържат два регистъра за преместване с линейна обратна връзка (LFSR), които да се въртят в различни посоки, нали?
Или може би мога просто да изкривя номера на индекса с помощта на някаква хеш функция? Първо ще опитам това.
Някакви други идеи?