File tree Expand file tree Collapse file tree 1 file changed +26
-5
lines changed Expand file tree Collapse file tree 1 file changed +26
-5
lines changed Original file line number Diff line number Diff line change 4
4
"bufio"
5
5
"fmt"
6
6
"log"
7
+ "math"
7
8
"os"
8
9
"strconv"
9
10
)
@@ -24,12 +25,12 @@ func main() {
24
25
data = append (data , x )
25
26
}
26
27
27
- var avg float64
28
+ var mean float64
28
29
for _ , x := range data {
29
- avg = avg + x
30
+ mean = mean + x
30
31
}
31
- avg = avg / float64 (len (data ))
32
- fmt .Printf ("Average: %.3f\n " , avg )
32
+ mean = mean / float64 (len (data ))
33
+ fmt .Printf ("Average: %.3f\n " , mean )
33
34
34
35
var max float64
35
36
for _ , x := range data {
@@ -62,5 +63,25 @@ func main() {
62
63
}
63
64
fmt .Printf ("Mode: %.3f (%d)\n " , key , val )
64
65
65
- // Median
66
+ sorted := make ([]float64 , len (data ))
67
+ copy (sorted , data )
68
+ // Insertion sort from https://en.wikipedia.org/wiki/Insertion_sort
69
+ i := 1
70
+ for i < len (sorted ) {
71
+ j := i
72
+ for j > 0 && sorted [j - 1 ] > sorted [j ] {
73
+ sorted [j ], sorted [j - 1 ] = sorted [j - 1 ], sorted [j ]
74
+ j --
75
+ }
76
+ i ++
77
+ }
78
+ fmt .Printf ("Median: %.3f\n " , sorted [len (sorted )/ 2 ])
79
+
80
+ var stdev float64
81
+ for _ , x := range data {
82
+ stdev += (x - mean ) * (x - mean )
83
+ }
84
+ stdev /= float64 (len (data ) - 1 )
85
+ stdev = math .Sqrt (stdev )
86
+ fmt .Printf ("Std Dev: %.3f\n " , stdev )
66
87
}
You can’t perform that action at this time.
0 commit comments