JSFiddle - React, Tailwind, and code Playground
JavaScript
antalspil = 160
unitoverskud = 14
antalvundnespil= 30
testniveau = 100
// RET TALLENE HEROVER OG TRYK RUN (ØVERST tv.)
// eksempel: antalspil = 160 unitoverskud = 14 antalvundnespil = 30 testniveau = 100 (værdispil)
var odds = (antalspil+unitoverskud)/antalvundnespil
var tb = (antalspil+unitoverskud)/antalspil
var nn = antalspil
var kk = Math.round(tb*antalspil/odds)-1
var ss = 0.01*testniveau/odds
var score = 0
function LogGamma(Z) {
with (Math) {
var S=1+76.18009173/Z-86.50532033/(Z+1)+24.01409822/(Z+2)-1.231739516/(Z+3)+.00120858003/(Z+4)-.00000536382/(Z+5);
var LG= (Z-.5)*log(Z+4.5)-(Z+4.5)+log(S*2.50662827465);
}
return LG
}
function Betinc(X,A,B) {
var A0=0;
var B0=1;
var A1=1;
var B1=1;
var M9=0;
var A2=0;
var C9;
while (Math.abs((A1-A2)/A1)>.00001) {
A2=A1;
C9=-(A+M9)*(A+B+M9)*X/(A+2*M9)/(A+2*M9+1);
A0=A1+C9*A0;
B0=B1+C9*B0;
M9=M9+1;
C9=M9*(B-M9)*X/(A+2*M9-1)/(A+2*M9);
A1=A0+C9*A1;
B1=B0+C9*B1;
A0=A0/B1;
B0=B0/B1;
A1=A1/B1;
B1=1;
}
return A1/A
}
X=eval(kk)
N=eval(nn)
P=eval(ss)
with (Math) {
if (N<=0) {
alert("sample size must be positive must be positive")
} else if ((P<0)||(P>1)) {
alert("probability must be between 0 and 1")
} else if (X<0) {
bincdf=0
} else if (X>=N) {
bincdf=1
} else {
X=floor(X);
Z=P;
A=X+1;
B=N-X;
S=A+B;
BT=exp(LogGamma(S)-LogGamma(B)-LogGamma(A)+A*log(Z)+B*log(1-Z));
if (Z<(A+1)/(S+2)) {
Betacdf=BT*Betinc(Z,A,B)
} else {
Betacdf=1-BT*Betinc(1-Z,B,A)
}
bincdf=1-Betacdf;
}
}
score = bincdf
if (score > 0.999 || score < 0.01){ score = Math.round(100000000000*score)/1000000000
alert('Der er '+score+'% chance for at personen har spillet spil med betvalues over '+testniveau+'%.') }
else if (score >= 0.01 && score <= 0.999) {score = Math.round(10000*score)/100
alert('Der er '+score+'% chance for at personen...