Skip to content

Instantly share code, notes, and snippets.

@c650
Created September 9, 2018 16:29
Show Gist options
  • Save c650/2b46df08f299cfb3798a72a0ebe25264 to your computer and use it in GitHub Desktop.
Save c650/2b46df08f299cfb3798a72a0ebe25264 to your computer and use it in GitHub Desktop.
stats stuff
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