in reply to How can I print all the numbers from 1 to n in random order?
From perlfaq4, How do I shuffle an array randomly?.sub fisher_yates_shuffle { my $array = shift; my $i; for ($i = @$array; --$i; ) { my $j = int rand ($i+1); next if $i == $j; @$array[$i,$j] = @$array[$j,$i]; } } my $N = 50; my @array = (1..$N); fisher_yates_shuffle( \@array ); # permutes @array in place print "@array";
|
|---|