#!/usr/bin/perl $orig_D = 1_000_000_000; $orig_Di = 1_000_000_000; srand(time); # Draw a number of samples for ($sample = 0; $sample < 100; $sample++) { my $d = 0; my $di = 0; my $p = 0; my $size; # $size = int(rand(10000))+10000; # Pick a sample size between 20 and 200 $size = 100000; for ($i = 0; $i < $size; $i++) { my $atom = &pick_D; if ($atom eq "D") { $d++; } elsif ($atom eq "Di") { $di++; } else { print STDERR "Unexpected atom [$atom]\n"; } } # $p = int(rand(10*$di))+1; # Pick a random P between 1 and 10 $p = int(rand(2*$size)+1); print "$p\t$d\t$di\n"; } sub pick_D { my $which = int(rand($orig_D + $orig_Di +1)); my $retval; if ($which <= $orig_D) { $retval = "D"; $orig_D--; } else { $retval = "Di"; $orig_Di--; } #print "Returning ${which}th atom: $retval\n"; return $retval; }