27 lines
728 B
Text
27 lines
728 B
Text
MAXRND = 7
|
|
FOR r% = 2 TO 5
|
|
check% = FNdistcheck(FNdice5, 10^r%, 0.05)
|
|
PRINT "Over "; 10^r% " runs dice5 ";
|
|
IF check% THEN
|
|
PRINT "failed distribution check with "; check% " bin(s) out of range"
|
|
ELSE
|
|
PRINT "passed distribution check"
|
|
ENDIF
|
|
NEXT
|
|
END
|
|
|
|
DEF FNdistcheck(RETURN func%, repet%, delta)
|
|
LOCAL i%, m%, r%, s%, bins%()
|
|
DIM bins%(MAXRND)
|
|
FOR i% = 1 TO repet%
|
|
r% = FN(^func%)
|
|
bins%(r%) += 1
|
|
IF r%>m% m% = r%
|
|
NEXT
|
|
FOR i% = 1 TO m%
|
|
IF bins%(i%)/(repet%/m%) > 1+delta s% += 1
|
|
IF bins%(i%)/(repet%/m%) < 1-delta s% += 1
|
|
NEXT
|
|
= s%
|
|
|
|
DEF FNdice5 = RND(5)
|