Statistics/Basic: Difference between revisions

Content deleted Content added
Added Perl implementation
Added PicoLisp
Line 566: Line 566:
0.8 - 0.9 : *******************************
0.8 - 0.9 : *******************************
0.9 - 1.0 : *******************************</pre>
0.9 - 1.0 : *******************************</pre>

=={{header|PicoLisp}}==
<lang PicoLisp>(scl 6)

(de statistics (Cnt . Prg)
(prinl Cnt " numbers")
(let (Sum 0 Sqr 0 Hist (need 10 NIL 0))
(do Cnt
(let N (run Prg 1) # Get next number
(inc 'Sum N)
(inc 'Sqr (*/ N N 1.0))
(inc (nth Hist (inc (/ N 0.1)))) ) )
(let M (*/ Sum Cnt)
(prinl "Mean: " (round M))
(prinl "StdDev: "
(round
(sqrt
(* 1.0
(- (*/ Sqr Cnt) (*/ M M 1.0)) ) ) ) ) )
(for (I . H) Hist
(prin (format I 1) " ")
(do (*/ H 400 Cnt) (prin '=))
(prinl) ) ) )</lang>
Test:
<lang PicoLisp>(statistics 100
(rand 0 (dec 1.0)) )
(prinl)

(statistics 10000
(rand 0 (dec 1.0)) )
(prinl)

(statistics 1000000
(rand 0 (dec 1.0)) )
(prinl)</lang>
Output:
<pre>100 numbers
Mean: 0.501
StdDev: 0.284
0.1 ========================================
0.2 ====================================
0.3 ====================================================
0.4 ========================
0.5 ========================
0.6 ================================================================
0.7 ========================================================
0.8 ====================================
0.9 ========================
1.0 ============================================

10000 numbers
Mean: 0.501
StdDev: 0.288
0.1 =======================================
0.2 ========================================
0.3 =======================================
0.4 =========================================
0.5 =========================================
0.6 ========================================
0.7 =========================================
0.8 ========================================
0.9 ========================================
1.0 ========================================

1000000 numbers
Mean: 0.500
StdDev: 0.289
0.1 ========================================
0.2 ========================================
0.3 ========================================
0.4 ========================================
0.5 ========================================
0.6 ========================================
0.7 ========================================
0.8 ========================================
0.9 ========================================
1.0 ========================================</pre>


=={{header|Python}}==
=={{header|Python}}==