How do you like my RNG?
#!/usr/bin/perl use warnings; use strict; use Time::HiRes qw ( usleep ); $| = 1; print "number of digits: "; my $num = <STDIN>; chomp $num; if($num < 1){ print "grirrrrr. You can't do that! Number must be 1 or greater!!! +\n"; exit(0); } print randmiz0r($num); sub randmiz0r{ my $digCount = shift; my $digCountChanging = $digCount + 1; #offset for first subtractio +n my $results = ""; for(my $i = 0;$i < $digCount;$i++){ my $randInput = 1 . (0 x ($digCountChanging - 1)); #retreave the last diggit my @prepLastDig = split //, &randmore($randInput); my $lastDig = pop @prepLastDig; $results = $lastDig . $results; #sleep because rand funct is time based usleep( int rand int rand 10000 ); # sleep for microseconds } if($results =~ m/^0/){ $results = catchStartZero($results); #numbers like 0345 don't +exist } return $results . "\n"; } sub randmore{ my $r = shift; my $oddCatch = $r % 2; $r = $r - $oddCatch; return (int (rand $r) + int (rand $r)); } sub catchStartZero{ my $removeZero = shift; $removeZero =~ s/^0//; my $notZero = 0; #confusing but nessisary until($notZero ne "0"){ $notZero = randmiz0r(1); chomp $notZero; #a \n is returned with randmiz0r() } return $notZero . $removeZero; }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Random Number Generator
by Eily (Monsignor) on Aug 19, 2013 at 22:53 UTC | |
by hardburn (Abbot) on Aug 20, 2013 at 18:24 UTC | |
|
Re: Random Number Generator
by RichardK (Parson) on Aug 20, 2013 at 10:10 UTC | |
|
Re: Random Number Generator
by BrowserUk (Patriarch) on Aug 19, 2013 at 21:55 UTC | |
|
Re: Random Number Generator
by Laurent_R (Canon) on Aug 23, 2013 at 21:08 UTC | |
|
Re: Random Number Generator
by perlaintdead (Scribe) on Aug 19, 2013 at 23:06 UTC | |
|
Re: Random Number Generator
by perlaintdead (Scribe) on Aug 24, 2013 at 06:29 UTC |