Hi there! Today’s challenge was to compute standard deviation of an array of data given the formula $$\sigma = \sqrt{\frac{\sum_{i=0}^{N-1} (x_i - \mu)^2}{N}},$$ where $$\mu = \frac{\sum_{i=0}^{N-1} x_i}{N}.$$
The first input to the program is N and then N integers are fed to the program in sequence. My solution is given below.
package main import ( "fmt" "math" ) func mean(a []int) float64 { n := float64(len(a)) sum := 0.0 for i := 0; i < len(a); i++ { sum += float64(a[i]) } return sum / n } func sigma(a []int) float64 { mu := mean(a) sum := 0.0 n := float64(len(a)) for i := 0; i < len(a); i++ { x := float64(a[i]) sum += (x - mu) * (x - mu) } sigma := math.Sqrt(sum / n) return sigma } func main() { N := 0 fmt.Scanf("%d", &N) // allocate memory X := make([]int, N) // read numbers from stdin for i := 0; i < N; i++ { fmt.Scanf("%d", &X[i]) } y := sigma(X) fmt.Printf("%.1f\n", y) } The problem I had this time was with HackerRank. On my computer I had a result, but their system was saying it had a different result. After that I ran it again on HackerRank using the option custom input, but with the same input that gave me a bad answer error, but this time the answer was ok. Bugs appear everywhere, right? I will submit it with another language, still thinking about it. I wrote something to them, hopefully they will fix this bug.
...