PHP - Media Armó

 
Vista:
sin imagen de perfil
Val: 29
Ha aumentado su posición en 7 puestos en PHP (en relación al último mes)
Gráfica de PHP

Media Armó

Publicado por Patricia (8 intervenciones) el 19/05/2021 19:24:54
En el siguiente código estoy intentando realizar la media armónica. No obstante, el resultado previsto no es el esperado.

Alguien podría comentarme qué estoy haciendo mal?

Gracias.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
function mediaArmonica($vector) {
 
    for ($k = 0; $k < count($vector); $k++) {
 
        $elementos = $vector[$k];
 
        if ($elementos < 0) {
            echo "No está definida";
 
            return;
        } else {
 
            $total = count($vector);
 
            $final = 0;
 
            for ($k = 0; $k < $total; $k++) {
 
                $final = $final + (1 / intval($vector[$k]));
 
                $armonica = $total / $final;
            }
        }
    }
 
    return $armonica;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Media Armó

Publicado por Alejandro (839 intervenciones) el 19/05/2021 22:18:35
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
No se que es la media armonica pero tiene 2 bucles anidados los cuales usan la misma variable de control $k.
Como optimización contar $vector en cada iteración es innecesario.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 29
Ha aumentado su posición en 7 puestos en PHP (en relación al último mes)
Gráfica de PHP

Media Armó

Publicado por Patricia (8 intervenciones) el 20/05/2021 17:20:17
La media armónica es la inversa de la media aritmética de los valores de ella. Además, no está definida en el caso de que exista un valor nulo.


EJEMPLO:

- Tengo un vector con los valores: 1,2,3,4,5. Calculo el número total ( n = 5).

- Aplico la fórmula de la media armónica: n / (1/x1 + 1/x2 + 1/x3+ 1/x4 + 1/x5) = 5 / (1/1 + 1/2 + 1/3 + 1/4 + 1/5) y finalmente, obtendría el resultado. El probado con el siguiente código:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
 
$vector = [1,2,3,4,5];
 
function mediaArmonica($vector) {
 
    $final = 0;
 
    $resultado = 0;
 
 
    for ($k = 0; $k <count($vector); $k++){
 
        $resultado = $resultado + $vector[$k];
 
    }
 
    $final = $resultado / (1 / $vector[$k]);
 
    return $final;
}
 
echo "La media armónica es: ". mediaArmonica($vector);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Media Armó

Publicado por Alejandro (839 intervenciones) el 20/05/2021 23:23:12
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
Según tu ejemplo, te entiendo que es así:
1
2
3
4
5
6
$resultado = 0 ;
$t = count($vector);
for ($k = 0; $k < $t; $k++){
    $resultado += 1 / $vector[$k];
}
$final = $t / $resultado;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar