my ($sum, $rolls) = (0,0); for my $hi (1..6) { for my $mid (1..$hi) { for my $low (1..$mid) { # The drop value can be anything from 1..$low $sum += ($hi + $mid + $low) * $low; $rolls += $low; } } } printf "The average value is %g\n", $sum/$rolls;