ChipMaster's bwBASIC This also includes history going back to v2.10. *WARN* some binary files might have been corrupted by CRLF.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

86 lines
2.2 KiB

  1. 10 PRINT "PROGRAM FILE 136: GAP TEST FOR RND FUNCTION."
  2. 20 PRINT " ANSI STANDARD 8.4"
  3. 30 PRINT
  4. 40 PRINT "SECTION 136.1: GAP TEST FOR RND FUNCTION."
  5. 50 PRINT
  6. 60 PRINT "THIS PROGRAM TESTS THAT THE GAPS BETWEEN NUMBERS WITHIN"
  7. 70 PRINT "A SPECIFIED INTERVAL ARE DISTRIBUTED AS EXPECTED FOR"
  8. 80 PRINT "UNIFORMLY DISTRIBUTED RANDOM NUMBERS. CHI-SQUARE IS"
  9. 90 PRINT "COMPUTED AND DISPLAYED AS THE RESULT."
  10. 100 PRINT
  11. 110 PRINT "***** THIS TEST IS INFORMATIVE ONLY. *****"
  12. 120 PRINT
  13. 130 PRINT " BEGIN TEST"
  14. 140 PRINT
  15. 150 DIM C(121)
  16. 160 REM SET BOUNDS FOR GAP TEST
  17. 170 REM CONSOLIDATE ALL GAPS >= 10
  18. 180 LET T=10
  19. 190 REM SET LOW END OF HIT INTERVAL
  20. 200 LET A1=.03
  21. 210 REM SET HIGH END OF HIT INTERVAL
  22. 220 LET A2=.13
  23. 230 REM SET SIZE OF HIT INTERVAL
  24. 240 LET A3=A2-A1
  25. 250 REM PROB. THAT GAP >= T
  26. 260 LET P1=(1-A3)^T
  27. 270 REM PROB. THAT GAP = T-1
  28. 280 LET P2=A3*((1-A3)^(T-1))
  29. 290 IF P1<P2 THEN 330
  30. 300 LET P1=P2
  31. 310 REM P1 IS PROBABILITY OF LEAST PROBABLE CATEGORY
  32. 320 REM WANT EXPECTED NUMBER >= 10
  33. 330 LET N=INT(10/P1)+1
  34. 340 PRINT
  35. 350 PRINT "WILL RUN ";N;" TRIALS, SO THAT EACH POSSIBILITY HAS"
  36. 360 PRINT "EXPECTED VALUE >= 10."
  37. 370 FOR I=0 TO T
  38. 380 LET C(I)=0
  39. 390 NEXT I
  40. 400 PRINT
  41. 410 PRINT
  42. 420 PRINT "GAP SIZE","ACTUAL COUNT","EXPECTED COUNT"
  43. 430 PRINT
  44. 440 FOR N1=1 TO N
  45. 450 LET R=0
  46. 460 LET X=RND
  47. 470 IF X<A1 THEN 500
  48. 480 IF X<A2 THEN 530
  49. 490 REM MISSED - KEEP TRYING
  50. 500 LET R=R+1
  51. 510 GOTO 460
  52. 520 REM HIT DESIGNATED INTERVAL
  53. 530 IF R<=T THEN 550
  54. 540 LET R=T
  55. 550 LET C(R)=C(R)+1
  56. 560 NEXT N1
  57. 565 REM MR. HAM HAD TO ADD LINE 566 TO INITIALIZE S TO AVOID CRASH
  58. 566 LET S=0
  59. 570 FOR I=0 TO T
  60. 580 LET P9=(1-A3)^I
  61. 590 IF I=T THEN 630
  62. 600 LET P9=P9*A3
  63. 610 PRINT I,C(I),P9*N
  64. 620 GOTO 650
  65. 630 REM P9=PROB OF GAP OF SIZE I
  66. 640 PRINT ">=";I,C(I),P9*N
  67. 650 LET S=S+(C(I)*C(I)/P9)
  68. 660 NEXT I
  69. 670 LET V=(S/N)-N
  70. 680 PRINT
  71. 690 PRINT "FOR 10 D.F., SHOULD HAVE 3.9403 <= CHI-SQ <= 18.307"
  72. 700 PRINT "(5% TAIL AT EACH END.)"
  73. 710 PRINT
  74. 720 PRINT "ACTUAL CHI-SQ = ";V
  75. 730 PRINT
  76. 740 IF V<3.9403 THEN 780
  77. 750 IF V>18.307 THEN 780
  78. 760 PRINT "*** INFORMATIVE TEST PASSED ***"
  79. 770 GOTO 790
  80. 780 PRINT "*** INFORMATIVE TEST FAILED ***"
  81. 790 PRINT
  82. 800 PRINT " END TEST"
  83. 810 PRINT
  84. 820 PRINT "END PROGRAM 136"
  85. 830 END