Track Mode
def modes(array, find_all=true) histogram = array.inject(Hash.new(0)) { |h, n| h[n] += 1; h } modes = nil histogram.each_pair do |item, times| modes << item if modes && times == modes[0] and find_all modes = [times, item] if (!modes && times>1) or (modes && times>modes[0]) end return modes ? modes[1...modes.size] : modes end puts modes([1,2,3,4]) # => nil puts modes([1,1,2,3,4]) # => [1] puts modes([1,1,2,2,3,4]) # => [1, 2] puts modes([1,1,2,2,3,4,4]) # => [1, 2, 4] puts modes([1,1,2,2,3,4,4], false) # => [1] puts modes([1,1,2,2,3,4,4,4,4,4]) # => [4]
1. | Taking Mean | ||
2. | Track Median | ||
3. | mean without float conversion | ||
4. | mean and standard deviation | ||
5. | Converting Between Degrees and Radians |