Мне нужно сделать эффективный алгоритм для перемещения целых чисел.Среднее значение для перемещаемых объектов
Для примера, из 100 предметов. Так как 100 номеров приходят, в среднем за 1..100 чисел .. в 101 числа приходит в среднем 2..101 .. , как 102 номер приходит в среднем 3..102 ..
Я думал из одного решения, но я не могу придумать, чтобы минимальные числа могли быть сохранены (как после подопечных, я должен делать в микропроцессоре, но сначала эффективен на C/C++):
Шаг 1: хранить номера от 1 .. 100 и принять среднее значение Шаг 2: заменить 1 на 101 и принять среднее значение: 101,2,3 ... 100 Шаг 3: заменить 2 на 102 и принять среднее значение: 101,102,3,4 ... 100
Но он неэффективен, так как мне также нужно использовать меньший оператор разделения.
Может ли кто-нибудь помочь мне, пожалуйста.
google for moving average –
Если вы сохранили сумму (а не среднюю) предыдущего шага, вам не придется полностью пересчитывать среднее значение для всех 100 номеров. Вы просто вычтите одно значение из суммы и добавьте новое значение, и вы разделите сумму на 100. Однако это не уменьшает количество делений. – jogojapan
Вы * необходимо * использовать оператор разделения меньше? Или вам просто хочется попросить, чтобы проблема была сложнее, а решение «быстрее»? – Potatoswatter