Post
by waysoftheearth » Fri Jul 02, 2010 4:35 pm
verhaden wrote:
Ruby script
#!/usr/bin/env ruby
class Roll
attr_accessor :value
def initialize(*args)
@args = args
@value = calculate_value
end
def calculate_value
dict = {}
1.upto(6) { |i| dict(i) = 0 }
@args.each { |i| dict(i) += i }
dict.values.max
end
def to_s
"(#{@args.join ','}) = #{@value}"
end
end
values = {}
count = 0
1.upto 6 do |x|
1.upto 6 do |y|
1.upto 6 do |z|
roll = Roll.new x,y,z
count += 1
if values(roll.value).nil?
values(roll.value) = 1
else
values(roll.value) += 1
end
end
end
end
values.keys.sort.each do |k|
printf("%2d: %2d (%5.2f%%)\n", k, values(k), (values(k).to_f / count.to_f) * 100.0)
end
Modifying the code, I generated these results:
2dd:
2: 18 ( 8.33%)
3: 24 (11.11%)
4: 42 (19.44%)
5: 48 (22.22%)
6: 66 (30.56%)
8: 6 ( 2.78%)
10: 6 ( 2.78%)
12: 6 ( 2.78%)
4dd:
3: 20 ( 1.54%)
4: 95 ( 7.33%)
5: 172 (13.27%)
6: 492 (37.96%)
8: 139 (10.73%)
9: 20 ( 1.54%)
10: 144 (11.11%)
12: 171 (13.19%)
15: 20 ( 1.54%)
16: 1 ( 0.08%)
18: 20 ( 1.54%)
20: 1 ( 0.08%)
24: 1 ( 0.08%)
5dd:
3: 20 ( 0.26%)
4: 245 ( 3.15%)
5: 576 ( 7.41%)
6: 2505 (32.21%)
8: 1005 (12.92%)
9: 230 ( 2.96%)
10: 1111 (14.29%)
12: 1505 (19.35%)
15: 251 ( 3.23%)
16: 25 ( 0.32%)
18: 250 ( 3.22%)
20: 26 ( 0.33%)
24: 25 ( 0.32%)
25: 1 ( 0.01%)
30: 1 ( 0.01%)
[f=32]
Golgildir the Elf Medium (MV 12", AC 9, HD 1, hp 1/1, AL N) great cloak,
lantern; spells: color spray; scrolls: sleep, sleep, charm person
Hirelings: Georges;
torch[/f]