Як щодо чогось подібного до процедури бінінгу? Припустимо (для ілюстрації), що ви знаєте, що значення складають від 1 до 1 мільйона. Налаштуйте N бункерів, розміром S. Отже, якщо S = 10000, у вас буде 100 бункерів, що відповідають значенням [1: 10000, 10001: 20000, ..., 990001: 1000000]
Потім перегляньте значення. Замість того, щоб зберігати кожне значення, просто додайте лічильник у відповідний контейнер. Використовуючи середню точку кожного бункера як оцінку, можна зробити розумне наближення медіани. Ви можете змінити масштаб до такої точної чи великої роздільної здатності, змінивши розмір бункерів. Ви обмежені лише кількістю пам'яті.
Оскільки ви не знаєте, наскільки великі можуть отримати ваші значення, просто виберіть розмір контейнера, достатньо великий, щоб у вас, швидше за все, не вистачало пам’яті, використовуючи кілька швидких зворотних підрахунків конверту. Ви також можете зберігати бункери рідко, так що ви додаєте контейнер лише тоді, коли він містить значення.
Редагувати:
Посилання ryfm надає приклад цього, з додатковим кроком використання кумулятивних відсотків для більш точної оцінки точки в медіанному біні, а не просто використання серединних точок. Це приємне поліпшення.