30 days of code in Go: Day 19 - Binomial Distribution II

Hi there! Today’s problem is very similar to the last day, again using a binomial distribution. Question Given that 12% of the pistons of a manufacture are rejected because of incorrect sizing, what is the probability of batch of 10 pistons contain No more than two rejects? At least two rejects? Again, very similar. Now the probability of success for the Bernoulli trial is of the chance of the piston being reject, the same as being incorrectly sized....

October 6, 2016 · 2 min

30 days of code in Go: Day 18 - Binomial Distribution I

Hi there! Today’s challenge from HackerRank was a little more involved. The challenge is Given the ratio $1.09 : 1$ of boys to girls for babies born in a certain country, what is the proportion of families with exactly 6 children that will have at least 3 boys?. Before actually solving that, it is important to understand a Bernoulli trial and also the Binomial Distribution. Bernoulli trial According to Wikipedia, a Bernoulli trial is a random experiment with exactly two possible outcomes, “success” and “failure”, in which the probability of success is the same every time the experiment is conducted....

October 5, 2016 · 2 min

30 days of code in Go: Day 17 - Standard Deviation

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....

October 4, 2016 · 2 min

30 days of code in Go: Day 16 - Interquartile Range

Hi there! Today’s challenge is quite similar to the last one. Again, there are quartiles, but the input is a little different and the output is the interquartile range: $Q_3 - Q_1$. The first input is $n$ followed by an array $X$ of size $n$ with our data, but the frequencies of each point are included in another array of $n$ elements, $F$, that is the next input. After reading this we need to construct the actual data array $S$....

October 3, 2016 · 2 min

30 days of code in Go: Day 15 - Quartiles

Hi there! The problem for today required me to find the quartiles of set of data values. The concept is actually new to me but, once I learned it, it resembled a lot the median of a data set. Actually, the second quartile $Q_2$ is the median itself, while the other two quartiles, $Q_1$ and $Q_2$, are basically medians of sub datasets divided around the second quartile. The three quartiles divide the data in four regions instead of two regions using only the median....

October 1, 2016 · 2 min

30 days of code in Go: Day 14 - Weighted mean

Hi there! Today’s problem is quite simple. The challenge is to compute the weighted mean given two arrays. The first input is $N$, the number of elements of each array, and then the first array is given and then the second whose components are the weights. My solution is given below. package main import "fmt" func main() { N := 0 fmt.Scanf("%d", &N) a := make([]float64, N) b := make([]float64, N) for i := 0; i < N; i++ { fmt....

September 30, 2016 · 1 min

30 days of code in Go: Day 13 - Mean, Median and Mode

This post is a little bit different from the last ones. Days 1-12 followed more or less strictly what HackerRank 30 days of code Tutorial had, but starting on day 13 there was a series of challenges that didn’t allow me to use Go. They are more specific to object-oriented languages like C++ and Java. As Go doesn’t have all the constructions these languages allow, like abstract classes, at least not without a workaround, I decided to take other challenges on HackerRank....

September 29, 2016 · 3 min