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.
 
 
 
 
 
 

91 lines
2.6 KiB

  1. 10 PRINT "PROGRAM FILE 140: RUNS TEST FOR THE RND FUNCTION."
  2. 20 PRINT " ANSI STANDARD 8.4"
  3. 30 PRINT
  4. 40 PRINT "SECTION 140.1: RUNS TEST FOR THE RND FUNCTION."
  5. 50 PRINT
  6. 60 PRINT "THIS PROGRAM COUNTS HOW MANY RUNS OF A GIVEN LENGTH OCCUR"
  7. 70 PRINT "WITHIN A SERIES OF RANDOM NUMBERS. A RUN IS A SUBSEQUENCE"
  8. 80 PRINT "OF THE NUMBERS WITHIN WHICH THE VALUES ARE IN ASCENDING"
  9. 90 PRINT "ORDER. THE RESULTS ARE COMPARED WITH THE EXPECTED OUTCOME"
  10. 100 PRINT "FOR UNIFORM RANDOM NUMBERS, AND CHI-SQUARE IS COMPUTED"
  11. 110 PRINT "AND DISPLAYED. ALL RUNS OF LENGTH >= 6 ARE CONSOLIDATED"
  12. 120 PRINT "INT ONE CATEGORY."
  13. 130 PRINT
  14. 140 PRINT "***** THIS TEST IS INFORMATIVE ONLY *****"
  15. 150 PRINT
  16. 160 PRINT " BEGIN TEST"
  17. 170 PRINT
  18. 180 LET T=6
  19. 190 LET N=5000
  20. 200 REM ZERO OUT TYPE COUNTS FOR RUNS
  21. 210 FOR I=1 TO T
  22. 220 LET C(I)=0
  23. 230 NEXT I
  24. 240 LET Y=RND
  25. 250 REM GATHER STATS ON N TRIALS
  26. 260 LET N1=1
  27. 270 REM COUNT LENGTH OF NEW RUN
  28. 280 LET K=1
  29. 290 LET X=RND
  30. 300 LET N1=N1+1
  31. 310 IF N1>N THEN 390
  32. 320 REM TO TEST RUNS DOWN, SIMPLY CHANGE "<" TO ">" IN NEXT LINE
  33. 330 IF X<Y THEN 390
  34. 340 REM RUN CONTINUES
  35. 350 LET K=K+1
  36. 360 LET Y=X
  37. 370 GOTO 290
  38. 380 REM END OF THIS RUN
  39. 390 LET Y=X
  40. 400 IF K<=T THEN 420
  41. 410 LET K=T
  42. 420 LET C(K)=C(K)+1
  43. 430 IF N1<=N THEN 280
  44. 440 PRINT "RUN LENGTH","ACTUAL COUNT","EXPECTED COUNT"
  45. 450 REM INITIALIZE FOR CALCULATION
  46. 460 REM CHI-SQUARE NOT COMPUTED SIMILARLY TO OTHER TESTS
  47. 470 FOR I=1 TO T
  48. 480 REM READ B-ARRAY VALUES
  49. 490 READ F
  50. 500 LET W(I)=C(I) - N*F
  51. 510 IF I<T THEN 530
  52. 520 PRINT ">=";
  53. 530 PRINT I,C(I),N*F
  54. 540 NEXT I
  55. 550 LET S=0
  56. 560 REM COMPUTE MATRIX SUM
  57. 570 FOR I=1 TO T
  58. 580 FOR J=1 TO T
  59. 590 REM READ A-MATRIX VALUES
  60. 600 READ F
  61. 610 LET S=S+(W(I)*W(J)*F)
  62. 620 NEXT J
  63. 630 NEXT I
  64. 640 LET V=S/N
  65. 650 PRINT
  66. 660 PRINT "FOR 6 D.F., SHOULD HAVE 1.63539 <= CHI-SQ <= 12.5916"
  67. 670 PRINT "(5% TAIL ON EACH END.)"
  68. 680 PRINT
  69. 690 PRINT "ACTUAL CHI-SQ = ";V
  70. 700 REM V SHOULD BE DISTRIBUTED AS CHI-SQ WITH 6 D.F
  71. 710 PRINT
  72. 720 IF V<1.63539 THEN 760
  73. 730 IF V>12.5916 THEN 760
  74. 740 PRINT "*** INFORMATIVE TEST PASSED ***"
  75. 750 GOTO 770
  76. 760 PRINT "*** INFORMATIVE TEST FAILED ***"
  77. 770 PRINT
  78. 780 PRINT " END TEST"
  79. 790 PRINT
  80. 800 PRINT "END PROGRAM 140"
  81. 810 REM DATA FOR B-ARRAY:
  82. 820 DATA .166667,.208333,9.16667E-2,2.63889E-2,5.75397E-3,1.19048E-3
  83. 830 REM DATA FOR (CONCEPTUAL) A-MATRIX:
  84. 840 DATA 4529.4, 9044.9, 13568, 18091, 22615, 27892
  85. 850 DATA 9044.9, 18097, 27139, 36187, 45234, 55789
  86. 860 DATA 13568, 27139, 40721, 54281, 67852, 83685
  87. 870 DATA 18091, 36187, 54281, 72414, 90470, 111580
  88. 880 DATA 22615, 45234, 67852, 90470, 113262,139476
  89. 890 DATA 27892, 55789, 83685, 111580,139476,172860
  90. 900 END