Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl -w
- use strict;
- use constant MAX => 5;
- sub generar_numeros {
- my ($a,$m,$lista_ref) = @_;
- my ($b,$n) = (0,20);
- $$lista_ref[0] = 1; #$a - $m
- for(my $i=1;$i<MAX;$i++) {
- push @$lista_ref, ($a*$$lista_ref[$i-1] + $b)%$m;
- }
- }
- sub ordenar_lista {
- my $lista_ref = shift;
- @$lista_ref = sort {$a <=> $b} @$lista_ref;
- }
- sub normalizar {
- my ($m,$lista_sin_normalizar,$lista_normalizada) = @_;
- # Diviendo entre el m?dulo
- push @$lista_normalizada, $_/$m for (@$lista_sin_normalizar);
- }
- sub generar_columna2 {
- my $lista_ref = shift;
- for (1..MAX) {
- $$lista_ref[$_ - 1] = $_/MAX;
- }
- # $$lista_ref[$_] = $_/6 for (0..MAX);
- }
- sub generar_columna3 {
- my ($lista1_normalizada_ref,$lista_columna2_ref,$lista_columna3_ref) = @_;
- $$lista_columna3_ref[$_] = $$lista_columna2_ref[$_] - $$lista1_normalizada_ref[$_] for (0..MAX-1);
- for (0..MAX-1) {
- $$lista_columna3_ref[$_] = $$lista_columna2_ref[$_] - $$lista1_normalizada_ref[$_];
- $$lista_columna3_ref[$_] = abs($$lista_columna3_ref[$_]);
- }
- }
- sub generar_columna4 {
- my ($lista_columna4_ref,$lista1_normalizada_ref) = @_;
- my @array_aux = ();
- $array_aux[$_] = $_/MAX for (0..MAX-1);
- for (0..MAX-1) {
- $$lista_columna4_ref[$_] = $$lista1_normalizada_ref[$_] - $array_aux[$_];
- $$lista_columna4_ref[$_] = abs($$lista_columna4_ref[$_]);
- }
- }
- my ($a,$m,@lista1) = (6,13,());
- my $lista1 = generar_numeros($a,$m,\@lista1);
- #print "$_\t" for (@lista1);
- #print "\n";
- ordenar_lista(\@lista1);
- my @lista1_normalizada = ();
- normalizar($m,\@lista1,\@lista1_normalizada);
- # Haciendo la columna 2
- my @lista_columna2 = ();
- &generar_columna2(\@lista_columna2);
- # Haciendo la columna 3
- my @lista_columna3 = ();
- &generar_columna3(\@lista1_normalizada,\@lista_columna2,\@lista_columna3);
- my @lista_columna4 = ();
- &generar_columna4(\@lista_columna4,\@lista1_normalizada);
- #print "$lista_columna3[$_]\t" for (@lista_columna3);
- #print "\n ORDENADO\n";
- #print "$_\t" for (@lista1_normalizada);
- print "\nColumna #1\t Columna #2\t Columna #3\t Columna #4\n";
- for (my $i=0;$i<MAX;$i++) {
- printf ("%.4f\t\t %.4f\t\t %.4f\t\t %.4f \n", $lista1_normalizada[$i],$lista_columna2[$i],$lista_columna3[$i],$lista_columna4[$i]);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement