in reply to Re^2: random number generation.
in thread random number generation.

The shorter the list, the more rerolls would have to be done. shuffle will work quite well in most settings even with hundreds of items.

Replies are listed 'Best First'.
Re^4: random number generation.
by newbio (Beadle) on Sep 11, 2007 at 18:52 UTC
    Thank you very much Ikegami. One last thing, if I want to create 3 sets of 5 integers each from the + integer range 1 to 15 then which one is better from randomness angle +: 1. I shuffle the previously "shuffled" list in each iteration, or 2. I shuffle the "original" list in each iteration. Here is the code: Method 1: my @array=(1..15); my @shufflednumbers=(); foreach my $i (1..3) { @shufflednumbers = shuffle (@array); print "@shufflednumbers[0..4]"; @shufflednumbers=(); } Method 2: my @array=(1..15); my @temp=@array; my @shufflednumbers=(); foreach my $i (1..3) { @shufflednumbers = shuffle (@temp); print "@shufflednumbers[0..4]"; @temp=@shufflednumbers; @shufflednumbers=(); }
      Method 1 is fine.
      my @array = (1..15); for (1..3) { my @shufflednumbers = (shuffle(@array))[0..4]; print "@shufflednumbers\n"; }