Время для тестирования математических навыков...
Я использую php для нахождения среднего числа $num1, $num2, $num3 и так далее; до суммы сброса чисел. Это тогда сохраняет то среднее число к базе данных.
В следующий раз, когда сценарий PHP называют, новое число добавляется к соединению.
Есть ли математика (наиболее вероятная алгебра) уравнение, которое я могу использовать для нахождения среднего числа исходных чисел с новым числом включенным. Или я должен сохранить исходные числа в базе данных, таким образом, я могу запросить их и повторно вычислить весь набор чисел вместе?
Если то, что вы подразумеваете под средним значением, является средним, и вы не хотите хранить все числа, сохраните количество чисел:
$last_average = 100;
$total_numbers = 10;
$new_number = 54;
$new_average = (($last_average * $total_numbers) + $new_number) / ($total_number + 1);
Вам необходимо сохранить все исходные номера в базе данных.
Average = Sum / Number of values
Просто храните все 3 значения, нет необходимости ничего сложного.
Если вы храните в среднем
и SUM
, затем рассчитать количество значений
, вы потеряете немного точности из-за усечения среднего.
Если вы храните в среднем
и количество значений
, затем рассчитать Sum
, вы потеряете еще более точно. У вас есть больше поля для ошибки при расчете правильного значения для Количество значений
, чем Sum
Сумма Благодаря этому - это целое число.
Обычно то, что вы можете сделать, это сохранить две части информации:
всякий раз, когда вы хотите получить среднее, разделить Сумма по количеству (позаботиться о случае счета == 0, конечно). Всякий раз, когда вы хотите включить новый номер, добавьте новый номер на сумму и увеличивайте счетчик на 1.
-121--2422905-Это называется «беговой средней» или « в среднем в среднем ».
Если база данных хранит среднее значение и количество средств, усредненное, можно будет рассчитать новое среднее значение для каждого нового значения.
Обычно то, что вы можете сделать, это экономить две части информации:
всякий раз, когда вы хотите получить Среднее, разделите сумму по счетчику (позаботиться о случае счета == 0, конечно). Всякий раз, когда вы хотите включить новый номер, добавьте новый номер в сумму и увеличивайте счетчик на 1.
Если вы знаете количество чисел, вы можете рассчитать старую сумму, добавить новую сумму и разделить старую сумму плюс один.
$oldsum = $average * $amount;
$newaverage = ($oldsum + $newnum) / ($amount + 1);