JSFiddle - React, Tailwind, and code Playground
by mizarjp
HTML
<pre id="out"></pre>
JavaScript
function di(r0, s0, a, b)
{
var sumk, suml, f, k, r, s, l1, l2, p1, p2;
sumk = 1;
if (!(r0 >= 0) || !(s0 >= 0) || !(a >= 0) || !(b >= 0) || !(a > 0) && !(b > 0))
return {"p1": Number.NaN, "p2": Number.NaN, "p": Number.NaN };
if (!(a > 0))
return {"p1": 1, "p2": 0, "p": 1};
if (!(b > 0))
return {"p1": 0, "p2": 1, "p": 1};
suml = 1; f = a / b; k = 1; r = r0; s = s0;
while ((k *= f * s-- / ++r) != 0)
{
sumk += k;
//if (k <= 1)
suml += k;
}
l1 = suml;
suml = 0; f = b / a; k = 1; r = s0; s = r0;
while ((k *= f * s-- / ++r) != 0)
{
sumk += k;
//if (k <= 1)
suml += k;
}
l2 = suml;
p1 = l1 / sumk;
p2 = l2 / sumk;
return {"p1": p1, "p2": p2, "p": (p1 + p2)};
}
function outpre(o)
{
document.getElementById("out").innerText += "\n" + JSON.stringify(o);
}
outpre(di(3, 1, 2, 3));
outpre(di(3, 1, 2000, 3));
outpre(di(3, 1, 2, 3000));