Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,22 @@
|
|||
fcn combos(sides, n){
|
||||
if(not n) return(T(1));
|
||||
ret:=((0).max(sides)*n + 1).pump(List(),0);
|
||||
foreach i,v in (combos(sides, n - 1).enumerate()){
|
||||
if(not v) continue;
|
||||
foreach s in (sides){ ret[i + s] += v }
|
||||
}
|
||||
ret
|
||||
}
|
||||
|
||||
fcn winning(sides1,n1, sides2,n2){
|
||||
p1, p2 := combos(sides1, n1), combos(sides2, n2);
|
||||
win,loss,tie := 0,0,0; # 'win' is 1 beating 2
|
||||
foreach i,x1 in (p1.enumerate()){
|
||||
# using accumulated sum on p2 could save some time
|
||||
win += x1*p2[0,i].sum(0);
|
||||
tie += x1*p2[i,1].sum(0); // i>p2.len() but p2[bigi,?]-->[]
|
||||
loss+= x1*p2[i+1,*].sum(0);
|
||||
}
|
||||
s := p1.sum(0)*p2.sum(0);
|
||||
return(win.toFloat()/s, tie.toFloat()/s, loss.toFloat()/s);
|
||||
}
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
println(winning([1..4].walk(), 9, [1..6].walk(),6));
|
||||
println(winning([1..10].walk(),5, [1..7].walk(),6)); # this seem hardly fair
|
||||
Loading…
Add table
Add a link
Reference in a new issue