Statistics/Basic: Difference between revisions
Content added Content deleted
No edit summary |
(→Tcl: Added implementation) |
||
Line 785: | Line 785: | ||
0.8: +++++++++++++++++++++++++++++++++++++++++++++++++ |
0.8: +++++++++++++++++++++++++++++++++++++++++++++++++ |
||
0.9: +++++++++++++++++++++++++++++++++++++++++++++++++</pre> |
0.9: +++++++++++++++++++++++++++++++++++++++++++++++++</pre> |
||
=={{header|Tcl}}== |
|||
<lang tcl>package require Tcl 8.5 |
|||
proc stats {size} { |
|||
set sum 0.0 |
|||
set sum2 0.0 |
|||
for {set i 0} {$i < $size} {incr i} { |
|||
set r [expr {rand()}] |
|||
incr histo([expr {int(floor($r*10))}]) |
|||
set sum [expr {$sum + $r}] |
|||
set sum2 [expr {$sum2 + $r**2}] |
|||
} |
|||
set mean [expr {$sum / $size}] |
|||
set stddev [expr {sqrt($sum2/$size - $mean**2)}] |
|||
puts "$size numbers" |
|||
puts "Mean: $mean" |
|||
puts "StdDev: $stddev" |
|||
foreach i {0 1 2 3 4 5 6 7 8 9} { |
|||
# The 205 is a magic factor stolen from the Go solution |
|||
puts [string repeat "*" [expr {$histo($i)*205/int($size)}]] |
|||
} |
|||
} |
|||
foreach size {100 1000 10000} { |
|||
stats $size |
|||
puts "" |
|||
}</lang> |
|||
Output: |
|||
<pre> |
|||
100 numbers |
|||
Mean: 0.4801193240797704 |
|||
StdDev: 0.28697057708153784 |
|||
************** |
|||
********************************** |
|||
******************** |
|||
************** |
|||
**************************** |
|||
**************** |
|||
************** |
|||
**************************** |
|||
**************** |
|||
**************** |
|||
1000 numbers |
|||
Mean: 0.49478823525495275 |
|||
StdDev: 0.2821543810265757 |
|||
******************* |
|||
****************** |
|||
************************ |
|||
******************** |
|||
******************* |
|||
********************** |
|||
********************* |
|||
******************** |
|||
****************** |
|||
****************** |
|||
10000 numbers |
|||
Mean: 0.49928563715870816 |
|||
StdDev: 0.2888258479070212 |
|||
******************** |
|||
********************* |
|||
******************** |
|||
******************** |
|||
******************* |
|||
********************* |
|||
******************* |
|||
******************** |
|||
********************* |
|||
******************** |
|||
</pre> |