У меня поток событий, протекающих через мои серверы. Для меня нецелесообразно хранить их все, но я хотел бы периодически обрабатывать некоторые из них в совокупности. Итак, я хочу сохранить подмножество потока, которое является случайным выборкой всего, что я видел, но имеет максимальный размер.
Итак, для каждого нового элемента мне нужен алгоритм, чтобы решить, добавить ли я его к сохраненному набору, или если я его отброшу. Если я добавлю его, и я уже на пределе, мне нужен алгоритм для выселения одного из старых предметов.
Очевидно, это легко, пока я ниже своего предела (просто сохраните все). Но как я могу поддерживать хороший случайный выбор, не будучи предвзятым к старым предметам или новым предметам, как только я пройду этот предел?
Спасибо,