Все, что должно быть сделано с некоторой задержкой, если набор записей слишком велик.
Предположим, что вы постоянно получаете время, затраченное на пользователя в потоке, вы держите дорожку в размере max
за период, и у вас также есть другая система, которая оценивает точки динамически.
Trigger расчет для очков после решил повторяющийся интервал для существующего набора записей по времени, затраченного в Millis (которые могут храниться в связанном списке или может быть динамически растущий двумерный массив.
Логика точки . Расчет:
Мы ясно видим его в качестве обратной линейной зависимости от времени, затраченного Таким образом, вы знаете, что все записи со значением времени, равный среднему вычисленной выше получает 25 по шкале от 1 - 50.
Следовательно, для данной записи предположим, что 100 мс, где максимальное значение составляет 500 мс, answ er будет 50 * (500 - 100)/500
Есть ли способ растянуть точку, чтобы они не уменьшались так быстро? Примерно через 5 секунд мы достигнем отметки <1 балл. – jbassking
Вы можете взять лог или квадратный корень времени и отрегулировать '100'. Например, если вы используете 'points = 50 * 10/sqrt (time)', вы все равно получите 50 очков за 100 мс, а 5 секунд - примерно 7 очков. Он не ударил бы 1 очко до 250 секунд или чуть более четырех минут. – Geobits
Perfect. Благодаря! – jbassking