Calculated values:
n-sided dice
number 2 4 6 8 12 20
of dice
1 2.000000000 4.000000000 6.000000000 8.000000000 12.00000000 20.00000000
2 2.666666666 5.714285714 8.727272727 11.73333333 17.73913043 29.74358974
3 3.142857142 6.872586872 10.55544455 14.22958579 21.57003614 36.24216274
4 3.504761904 7.741776061 11.92669625 16.10182402 24.44322905 41.11609530
5 3.794162826 8.437008290 13.02366150 17.59959964 26.74177910 45.01524045
6 4.034818228 9.016347337 13.93779669 18.84774544 28.65723741 48.26452807
7 4.240848926 9.512925512 14.72134159 19.91758482 30.29905884 51.04963175
8 4.421077725 9.947432930 15.40694347 20.85369428 31.73565258 53.48659747
9 4.581310192 10.33366193 16.01636736 21.68579158 33.01262480 55.65278922
10 4.725559323 10.68126793 16.56484886 22.43467915 34.16189980 57.60236179
11 4.856722010 10.99727333 17.06346840 23.11548603 35.20669525 59.37470050
12 4.976966144 11.28694495 17.52053631 23.73955900 36.16442441 60.99934431
13 5.087961538 11.55433413 17.94244515 24.31562636 37.04848210 62.49901552
14 5.191024016 11.80262410 18.33421765 24.85054606 37.86939282 63.89156736
15 5.287209473 12.03436140 18.69987198 25.34980443 38.63557615 65.19128241
16 5.377377901 12.25161512 19.04267291 25.81785916 39.35387302 66.40976527
17 5.462238554 12.45608921 19.36530908 26.25838126 40.02991714 67.55657267
18 5.542382776 12.64920362 19.67002103 26.67442991 40.66840324 68.63966854
19 5.618308422 12.83215412 19.95869550 27.06858127 41.27328482 69.66575937
20 5.690438360 13.00595710 20.23293624 27.44302505 41.84792232 70.64054566
gr=double.empty(0,20);
for sides=[2 4 6 8 12 20]
expect(1)= (sides);
grid(1,sides)=sides;
solute(1,sides)=sides;
for n= 2:20
p=(zeros(1,n-1));
for i=1:n-1 % i remain to go
p(i)=((1/sides)^(n-i) * ((sides-1)/sides)^(i) * nchoosek(n,i));
end
s=sum(p);
p0=(1/sides^n);
pn=1-s-p0;
syms x
eq=x==pn*x +1 +sum(p.*expect(1:n-1));
sln=eval(solve(eq,x));
expect(n)=sln;
dsp= sprintf('%17.15f',sln) ;
dsp=[dsp(1:11) ' '];
fprintf('%s',dsp)
solute(n,sides)=expect(n);
end
fprintf('\n')
end
fprintf('\n\n')
for row=1:20
for col=[2,4,6,8,12,20]
dsp= sprintf('%17.15f',solute(row,col)) ;
dsp=[dsp(1:11) ' '];
fprintf('%s',dsp)
end
fprintf('\n')
end
disp(' ')
|