use strict; use warnings; my ($seed, $prime, $max, $input, $result); $seed = 8; for $prime (2,3,5,7,11,13,17,19,23) { for $max (20..30) { next if $max % $prime == 0; my %hash; for $input (0..($max-1)) { $result = ($prime * $input + $seed) % $max; $hash{$result}++; } print "$prime $max : "; print join '', values %hash, "\n"; } } #### use strict; use warnings; my (@arr, $seed, $max, $prime, $input, $result); @arr = 1..10; $seed = 5; $max = $#arr+1; $prime = 65521; for $input (0..($max-1)) { $result = ($prime * $input + $seed) % $max; print $arr[$result], " "; }