Skip to content

Instantly share code, notes, and snippets.

@ashleytbasinger
Created September 6, 2013 18:19
Show Gist options
  • Save ashleytbasinger/bb92ff4b579079221a07 to your computer and use it in GitHub Desktop.
Save ashleytbasinger/bb92ff4b579079221a07 to your computer and use it in GitHub Desktop.
TDD array assignment code partner project with Kyle
#require 'Math'
class ArrayStatistic
def initialize(array)
@array = array
end
def largest
@array.sort[-1]
end
def smallest
@array.sort[0]
end
def average
@array.inject(:+) / @array.size
end
def standard_deviation
squared_differences = 0
@array.each do |number|
squared_differences += (number - average) ** 2
end
variance = squared_differences.to_f / @array.length
Math.sqrt(variance)
end
def nth_smallest(number)
@array.sort[number-1]
end
def sum
@array.inject(:+)
end
def product
@array.inject(:*)
end
def difference
largest - smallest
end
def digit_frequency
hash = {}
@array.each do |number|
digits = number.to_s.length.to_s
if hash[digits].nil?
hash[digits] = 1
else
hash[digits] += 1
end
end
hash
end
def frequency
hash = {}
@array.each do |number|
if hash[number.to_s].nil?
hash[number.to_s] = 1
else
hash[number.to_s] += 1
end
end
hash
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment