Created
September 9, 2018 16:29
-
-
Save c650/2b46df08f299cfb3798a72a0ebe25264 to your computer and use it in GitHub Desktop.
stats stuff
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
arr = [] | |
loop do | |
s = gets.chomp | |
break if s == "END" | |
arr << s.to_f | |
end | |
sum = 0 | |
arr.map{|e| sum += e} | |
puts "sum" | |
puts sum | |
puts "mean" | |
puts sum.to_f / arr.length | |
arr.sort! | |
puts "all the elements" | |
puts arr.join(" ") | |
puts arr.length | |
puts "median" | |
if arr.length % 2 == 0 | |
med = arr[arr.length/2-1] + arr[arr.length/2] | |
med /= 2.0 | |
puts med | |
else | |
puts arr[arr.length/2] | |
end | |
f = {} | |
arr.uniq.map{|e| f[e] = 0} | |
arr.map{|e| f[e] += 1} | |
puts "frequencies:" | |
f.each do |k,v| | |
puts "#{k} #{v}" | |
end | |
puts "range " | |
puts arr.last - arr.first | |
sqsum = 0.0 | |
arr.map{|e| sqsum += e*e} | |
sum = sum.to_f | |
variance = (sqsum - sum*sum / arr.length) / (arr.length-1) | |
puts "variance" | |
puts variance | |
puts "stdev" | |
puts variance ** 0.5 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment