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.
 
 
 
 
 
 

55 lines
1.6 KiB

  1. 10 PRINT "PROGRAM FILE 132: AVERAGE OF RANDOM NUMBERS APPROXIMATES 0.5"
  2. 15 PRINT " AND 0 <= RND < 1."
  3. 20 PRINT " ANSI STANDARD 8.4"
  4. 30 PRINT
  5. 40 PRINT "SECTION 132.1: AVERAGE OF RANDOM NUMBERS APPROXIMATES 0.5"
  6. 50 PRINT " AND 0 <= RND < 1."
  7. 60 PRINT
  8. 70 PRINT "THIS PROGRAM TESTS WHETHER THE AVERAGE OF A SERIES OF RANDOM"
  9. 80 PRINT "NUMBERS IS SIGNIFICANTLY FAR FROM THE IDEAL OF 0.5. IF SO,"
  10. 90 PRINT "THIS RESULT INDICATES NON-UNIFORM DISTRIBUTION AND THE TEST"
  11. 100 PRINT "FAILS. ALSO, IF ANY OF THE NUMBERS IS OUTSIDE THE ALLOWABLE"
  12. 110 PRINT "RANGE, AN IMMEDIATE FAILURE IS REPORTED."
  13. 120 PRINT
  14. 130 PRINT " BEGIN TEST"
  15. 140 PRINT
  16. 150 REM N=8754 BASED ON SIGNIFICANCE LEVEL OF .05 AND 0.1 CHANCE OF
  17. 160 REM NOT FINDING A DIFFERENCE OF AT LEAST .01 FROM STANDARD
  18. 170 REM AVERAGE OF 0.5, AND STANDARD DEVIATION OF 1/(2*SQR(3))
  19. 180 LET N=8754
  20. 190 LET S1=0
  21. 200 LET S2=0
  22. 210 FOR I=1 TO N
  23. 220 LET X=RND
  24. 230 IF X<0 THEN 490
  25. 240 IF X>=1 THEN 510
  26. 250 LET S1=S1+X
  27. 260 LET S2=S2+(X*X)
  28. 270 NEXT I
  29. 280 LET S = SQR((N*S2) - (S1*S1)) / N
  30. 290 LET X1=S1/N
  31. 300 PRINT ,"AVERAGE","STD. DEV."
  32. 310 PRINT "THEORETICAL:",.5,1/(2*SQR(3))
  33. 320 PRINT "ACTUAL:",X1,S
  34. 330 LET A1=ABS(X1-0.5)
  35. 340 REM 1.96 BASED ON SIGNIFICANCE LEVEL OF .05 AND INFINITE D.F
  36. 350 LET A2=(1.96*S)/SQR(N)
  37. 360 PRINT
  38. 370 PRINT "ALLOWABLE DEVIATION: ";A2
  39. 380 PRINT "ACTUAL DEVIATION: ";A1
  40. 390 PRINT
  41. 400 IF A1>A2 THEN 430
  42. 410 PRINT "*** TEST PASSED ***"
  43. 420 GOTO 440
  44. 430 PRINT "*** TEST FAILED ***"
  45. 440 PRINT
  46. 450 PRINT " END TEST"
  47. 460 PRINT
  48. 470 PRINT "END PROGRAM 132"
  49. 480 STOP
  50. 490 PRINT "RND#";I;" < 0: ";X
  51. 500 GOTO 430
  52. 510 PRINT "RND#";I;" >= 1: ";X
  53. 520 GOTO 430
  54. 530 END