¿Hay alguna manera de encontrar la media aritmética "mejor" que sum () / N?

Supongamos que tenemos N números (enteros, flotantes, lo que quieras) y queremos encontrar su media aritmética. El método más simple es sumar todos los valores y dividir por el número de valores:

def simple_mean(array[N]): # pseudocode
    sum = 0
    for i = 1 to N
       sum += array[i]
    return sum / N

Funciona bien, pero requiere grandes enteros. Si no queremos grandes enteros y estamos bien con los errores de redondeo, y N es la potencia de dos, podemos usar 'dividir y conquistar':((a+b)/2 + (c+d)/2)/2 = (a+b+c+d)/4, ((a+b+c+d)/4 + (e+f+g+h)/4)/2 = (a+b+c+d+e+f+g+h)/8, pronto.

def bisection_average(array[N]):
   if N == 1: return array[1]
   return (bisection_average(array[:N/2])+bisection_average(array[N/2:]))/2

¿Alguna otra manera?

PD.parque infantil para perezosos

Respuestas a la pregunta(6)

Su respuesta a la pregunta