La
mediana se calcula:
- ordenando los valores, de menor a mayor. Esto lo puedes hacer con sort()
- si el número de valores es impar, la mediana es el valor que está en la parte central. Para saber si es impar lo puedes sacar con la operación módulo (%). Y luego calcular el índice de la mitad es fácil
- si el número es par, la mediana es la mitad de la suma de los dos valores centrales. Calculas el índice del valor medio inferior con int(), y el superior es justo el siguiente.
En cuanto al cálculo de un logaritmo en base 2, hay que aplicar un poco de matemáticas ya que la función log() de Perl solo está en base
e. Entonces, para calcular el logaritmo en otra base hay que hacer:
log base n = log base e / log base nque es justo como te lo comentan en
perlfunc:
log EXPR
log Devuelve el logaritmo natural (base e) de EXPR. Si EXPR se omite, devuelve el logaritmo de $_. Para obtener el logaritmo de otra base, use álgebra básica: el logaritmo de base N de un número es igual al logaritmo natural de ese número dividido por el logaritmo natural de N. Por ejemplo:
Using perl Syntax Highlighting
sub log10 {
my $n = shift;
return log($n)/log(10);
}
Coloreado en 0.002 segundos, usando
GeSHi 1.0.8.4
Vea también "exp" para la operación inversa.
El ejemplo que muestra es para calcular el logaritmo en base 10, así que el de base 2 es fácil de hacer, ¿no?