sub rolldice()
{
my $roll = int(rand(12)) + 1;
return $roll;
}
####
#!c:\perl\bin\perl.exe
use strict;
use warnings;
use diagnostics;
use Math::Random;
my $num_rolls = 10000;
my @rollhashes;
for (my $i=0; $i<4; $i++) {
$rollhashes[$i] = { 2 => 0, 3 => 0, 4 => 0, 5 => 0, 6 => 0,
7 => 0, 8 => 0, 9 => 0, 10 => 0, 11 => 0, 12 => 0
};
}
for (1 .. $num_rolls) {
my $m1 = random_uniform_integer(1,1,6);
my $m2 = random_uniform_integer(1,1,6);
my $math = $m1 + $m2;
$rollhashes[2]{$math}++;
my $m0 = random_uniform_integer(2,1,12);
$rollhashes[0]{$m0}++;
my $r1 = (int(rand(6) + 1));
my $r2 = (int(rand(6) + 1));
my $rand = $r1 + $r2;
$rollhashes[3]{$rand}++;
my $r0 = (int(rand(12) + 2));
$rollhashes[1]{$r0}++;
}
print "\nUSING TWO DICE:\n";
print "\nMath::Random\t\tint(rand)\n";
for (my $i = 2; $i <= 12; $i++) {
my $n = sprintf("%02d",$i);
print "$n = $rollhashes[2]{$i}\t\t$n = $rollhashes[3]{$i}\n";
}
print "\nUSING ONE DIE:\n";
print "\nMath::Random\t\tint(rand)\n";
for (my $i = 2; $i <= 12; $i++) {
my $n = sprintf("%02d",$i);
print "$n = $rollhashes[0]{$i}\t\t$n = $rollhashes[1]{$i}\n";
}
##
##
USING TWO DICE:
Math::Random int(rand)
02 = 271 02 = 270
03 = 533 03 = 606
04 = 876 04 = 849
05 = 1129 05 = 1172
06 = 1364 06 = 1362
07 = 1640 07 = 1632
08 = 1390 08 = 1402
09 = 1101 09 = 1079
10 = 876 10 = 838
11 = 540 11 = 535
12 = 280 12 = 255
USING ONE DIE:
Math::Random int(rand)
02 = 862 02 = 852
03 = 853 03 = 835
04 = 795 04 = 865
05 = 849 05 = 876
06 = 817 06 = 772
07 = 801 07 = 836
08 = 822 08 = 801
09 = 809 09 = 814
10 = 856 10 = 821
11 = 891 11 = 841
12 = 823 12 = 848