Me han pasado este programa que calcula la moda de una serie.
Entiendo que foreach() funciona para ir recorriendo la lista. El problema lo tengo en la línea siguiente.
Haciendo un print() de b (dentro del bucle) veo que es como un sumatorio de las veces que aparece cada número, pero no entiendo cómo lo hace.
Si alguien me puede ayudar...
Gracias
Using perl Syntax Highlighting
- #!/usr/bin/perl -w
- @a = (10, 30, 30, 20, 30, 40, 30, 40, 30, 20, 20, 20);
- foreach $n (@a) {
- $b[$n]++;
- }
- $max = $pos = 0;
- foreach $n (@b) {
- if ($max < $n) {
- $max = $n;
- $moda = $pos;
- };
- $pos++;
- }
- print "La moda es el valor $moda que aparece $max veces\n";
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4