Моя цель здесь - создать систему, аналогичную той, что была на первой странице reddit.
У меня есть вещи, и ради простоты эти вещи имеют голоса.Лучшая система, которую я сгенерировал, использует спад времени.При периоде полураспада 7 дней, если голосование сегодня стоит 20 баллов, то через семь дней оно будет стоить 10 баллов, а через 14 дней оно будет стоить всего 5 баллов.
Проблема в том, чтоХотя это дает результаты, которыми я очень доволен, оно не масштабируется.Каждое голосование требует от меня эффективного пересчета стоимости каждого другого голоса.
Итак, я подумал, что смогу перевернуть эту идею.Голосование сегодня стоит 1 балл.Голосование через семь дней стоит 2 балла, а через 14 дней - 4 балла и так далее.Это хорошо работает, потому что для каждого голосования мне нужно обновить только одну строку.Проблема в том, что к концу года мне понадобится тип данных, который может содержать фантастически огромные числа.
Итак, я попытался использовать линейный рост, который дал ужасные рейтинги.Я пробовал полиномиальный рост (возведение в квадрат и кубирование числа дней с момента запуска и отправки сайта), и он дал немного лучшие результаты.Однако по мере того, как я получаю немного лучшие результаты, я быстро возвращаюсь к неуправляемым числам.
Итак, я прихожу к вам в стеке потока.У кого есть гениальная идея или ссылка на идею о том, как смоделировать эту систему, чтобы она хорошо масштабировалась для веб-приложения.