permutaties in perl
Geplaatst: di 01 feb 2022, 18:18
Volgens een youtube filmpje zou de onderstaande code de permutaties van een gegeven array moeten tonen. Het roept de PER subroutine recursief op, maar het enige dat hij print is 1 keer 1 2 3 4.
Ik heb geen idee waar de fout zit. Kan iemand helpen ?
Bedankt alvast!
sub PER()
{
$k=$_[0];
$n=$_[1];
if ($k==$n)
{
print @a,"\n";
}
else
{
for($i=$k;$i<=$n;$i++)
{
$t=$a[$k];$a[$k]=$a[$i];$a[$k]=$t;
&PER($k+1,$n);
$t=$a[$k];$a[$k]=$a[$i];$a[$k]=$t;
}
}
}
@a=(1,2,3,4);
&PER(1,4);
Ik heb geen idee waar de fout zit. Kan iemand helpen ?
Bedankt alvast!
sub PER()
{
$k=$_[0];
$n=$_[1];
if ($k==$n)
{
print @a,"\n";
}
else
{
for($i=$k;$i<=$n;$i++)
{
$t=$a[$k];$a[$k]=$a[$i];$a[$k]=$t;
&PER($k+1,$n);
$t=$a[$k];$a[$k]=$a[$i];$a[$k]=$t;
}
}
}
@a=(1,2,3,4);
&PER(1,4);