Random numbers: Difference between revisions
Content added Content deleted
No edit summary |
|||
Line 339: | Line 339: | ||
(let [r (Random.)] |
(let [r (Random.)] |
||
(take 1000 (repeatedly #(-> r .nextGaussian (* 0.5) (+ 1.0))))))</lang> |
(take 1000 (repeatedly #(-> r .nextGaussian (* 0.5) (+ 1.0))))))</lang> |
||
=={{header|COBOL}}== |
|||
<lang COBOL> |
|||
IDENTIFICATION DIVISION. |
|||
PROGRAM-ID. RANDOM. |
|||
AUTHOR. Bill Gunshannon |
|||
INSTALLATION. Home. |
|||
DATE-WRITTEN. 13 January 2022. |
|||
************************************************************ |
|||
** Program Abstract: |
|||
** Able to get the Mean to be really close to 1.0 but |
|||
** couldn't get the Standard Deviation any closer than |
|||
** .3 to .4. |
|||
************************************************************ |
|||
DATA DIVISION. |
|||
WORKING-STORAGE SECTION. |
|||
01 Sample-Size PIC 9(5) VALUE 1000. |
|||
01 Total PIC 9(10)V9(5) VALUE 0.0. |
|||
01 Arith-Mean PIC 999V999 VALUE 0.0. |
|||
01 Std-Dev PIC 999V999 VALUE 0.0. |
|||
01 Seed PIC 999V999. |
|||
01 TI PIC 9(8). |
|||
01 Idx PIC 99999 VALUE 0. |
|||
01 Intermediate PIC 9(10)V9(5) VALUE 0.0. |
|||
01 Rnd-Work. |
|||
05 Rnd-Tbl |
|||
OCCURS 1 TO 99999 TIMES DEPENDING ON Sample-Size. |
|||
10 Rnd PIC 9V9999999 VALUE 0.0. |
|||
PROCEDURE DIVISION. |
|||
Main-Program. |
|||
ACCEPT TI FROM TIME. |
|||
MOVE FUNCTION RANDOM(TI) TO Seed. |
|||
PERFORM WITH TEST AFTER VARYING Idx |
|||
FROM 1 BY 1 |
|||
UNTIL Idx = Sample-Size |
|||
COMPUTE Intermediate = |
|||
(FUNCTION RANDOM() * 2.01) |
|||
MOVE Intermediate TO Rnd(Idx) |
|||
END-PERFORM. |
|||
PERFORM WITH TEST AFTER VARYING Idx |
|||
FROM 1 BY 1 |
|||
UNTIL Idx = Sample-Size |
|||
COMPUTE Total = Total + Rnd(Idx) |
|||
END-PERFORM. |
|||
COMPUTE Arith-Mean = Total / Sample-Size. |
|||
DISPLAY "Mean: " Arith-Mean. |
|||
PERFORM WITH TEST AFTER VARYING Idx |
|||
FROM 1 BY 1 |
|||
UNTIL Idx = Sample-Size |
|||
COMPUTE Intermediate = |
|||
Intermediate + (Rnd(Idx) - Arith-Mean) ** 2 |
|||
END-PERFORM. |
|||
COMPUTE Std-Dev = Intermediate / Sample-Size. |
|||
DISPLAY "Std-Dev: " Std-Dev. |
|||
STOP RUN. |
|||
END PROGRAM RANDOM. |
|||
</lang> |
|||
=={{header|Common Lisp}}== |
=={{header|Common Lisp}}== |