я наткнулся на Q, который был задан в одном из интервью ..Случайный образец набора данных
Q - Представьте, вы получаете действительно большой поток элементов данных (запросы на Google поиск в мае, продукты покупали в Walmart в рождественский сезон, имена в телефонной книге, что угодно). Ваша цель - эффективно возвращать случайную выборку из 1000 элементов, равномерно распределенных из исходного потока. Как бы вы это сделали?
Ищу -
- Что случайная выборка из набора данных в виду? (Я имею в виду, что я могу просто сделать бросок монеты и выбрать строку из ввода, если результат равен 1, и сделать это, пока у меня не будет 1000 образцов.)
- Что мне нужно учитывать при этом? Например, если смежные строки могут быть лучше, чем принимать несмежные строки .. перефразировать - лучше ли я выбирать смежные 1000 строк случайным образом или лучше выбрать одну строку за раз, например, подбрасывать монетку.
Возможно, это смутный вопрос. Я попытался выполнить «случайный выбор данных» Google, но не нашел соответствующих результатов.
Поскольку вы не можете хранить бесконечный набор, справедливо ли считать, что у вас есть бесконечная последовательность строк, которые вы видите по одному? В этом случае это сводится к выборке двоичной выборки/не-выборки для каждой строки по мере ее получения, и единственным вопросом является то, что скорость принятия вы хотите для этого выбора. – pjs
@pjs ..«у вас есть бесконечная последовательность строк, которые вы видите по одному», - кажется, все в порядке. – abipc
В таком случае предложение бросить монетку выглядит как правильный подход, за исключением того, что вы, вероятно, хотите, чтобы вероятность принятия была чем-то другим чем 1/2. – pjs