From 1eb2ce7af6be94f2a5ea35ea843b1903dbcfac05 Mon Sep 17 00:00:00 2001 From: Mohammad S Anwar Date: Wed, 22 Jun 2022 18:49:32 +0100 Subject: - Added solutions by Dario Mazzeo. --- challenge-170/dario-mazzeo/perl/ch-1.pl | 11 ++++++ challenge-170/dario-mazzeo/perl/ch-2.pl | 61 +++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100755 challenge-170/dario-mazzeo/perl/ch-1.pl create mode 100755 challenge-170/dario-mazzeo/perl/ch-2.pl (limited to 'challenge-170') diff --git a/challenge-170/dario-mazzeo/perl/ch-1.pl b/challenge-170/dario-mazzeo/perl/ch-1.pl new file mode 100755 index 0000000000..eff3b86cec --- /dev/null +++ b/challenge-170/dario-mazzeo/perl/ch-1.pl @@ -0,0 +1,11 @@ +# THE WEEKLY CHALLENGE - 170 +# Task 1: Primorial Numbers +# Autore: Dario Mazzeo + +my @primi=(1, 2, 3, 5, 7, 11, 13, 17, 19, 23); +my $tmp=1; + +for (my $i=0; $i<10; $i++){ + $tmp=$primi[$i]*$tmp; + print "$tmp\n"; +} \ No newline at end of file diff --git a/challenge-170/dario-mazzeo/perl/ch-2.pl b/challenge-170/dario-mazzeo/perl/ch-2.pl new file mode 100755 index 0000000000..f651c36bf2 --- /dev/null +++ b/challenge-170/dario-mazzeo/perl/ch-2.pl @@ -0,0 +1,61 @@ +# THE WEEKLY CHALLENGE - 170 +# Task 2: Kronecker Product +# Autore: Dario Mazzeo + +# Separare le righe della matrica con il carattere ";" +my $inputA="1,2;3,4"; +my $inputB="5,6;7,8"; + +# Esempio n. 2 +# $inputA="1,-4,7;-2,3,3"; +# $inputB="8,-9,-6,5;1,-3,-4,7;2,8,-8,-3;1,2,-5,-1"; + +my %AB=(); +my @righeA=split(";", $inputA); my @colonneA=(); +my @righeB=(); my @colonneB=(); +my $rr=0; my $cc=0; + +foreach my $rigaA (@righeA){ + @colonneA=split(",", $rigaA); + foreach my $colonnaA (@colonneA){ + my $vettore=Moltiplica($colonnaA, $inputB); + @righeB=split(";",$vettore); + foreach my $rigaB (@righeB){ + @colonneB=split(",",$rigaB); + foreach my $colonnaB (@colonneB){ + $AB{"$rr-$cc"}=$colonnaB; + $cc++; + } + $rr++; $cc-=$#colonneB+1; + } + $rr-=$#righeB+1; $cc+=$#colonneB+1; + } + $rr+=$#righeB+1; $cc=0; +} + +foreach my $r (0 .. ($#righeA+1)*($#righeB+1)){ + foreach my $c (0 .. ($#colonneA+1)*($#colonneB+1)){ + print $AB{"$r-$c"}." "; + } + print "\n"; +} + +exit; + + + +sub Moltiplica{ +my $mul=$_[0]; +my $arr=$_[1]; +my $tmp=""; +my $ss=1; + +my @valori=split(/[,;]/, $arr); +my @separatori=split(/-?\d*/, $arr); +foreach my $v (@valori){ + $tmp.=($mul*$v).@separatori[$ss]; + $ss++; +} + +return $tmp; +} \ No newline at end of file -- cgit