class Array
Public Instance Methods
mean()
click to toggle source
# File lib/rubyhacks.rb, line 500 def mean return sum/size.to_f end
nuniq()
click to toggle source
# File lib/rubyhacks.rb, line 508 def nuniq arr = dup i=0; while i < arr.size j=i+1 while j < arr.size # p arr[i], arr[j] arr.delete_at(j) if (arr[j].to_f <=> arr[i].to_f) == 0 j+=1 end i+=1 end arr end
pieces(no_pieces)
click to toggle source
# File lib/rubyhacks.rb, line 477 def pieces(no_pieces) ans = [] piece_sizes = [] for i in 0...no_pieces ans.push []; piece_sizes[i] = 0 end for j in 0...size piece_sizes[j % no_pieces] += 1 end # p ans, piece_sizes accum = 0 piece_sizes.each_with_index do |piece_size, piece| ans[piece] = self.slice(accum...accum + piece_size) accum += piece_size end return ans end
product()
click to toggle source
# File lib/rubyhacks.rb, line 504 def product return inject{|old, new| old * new} end
random()
click to toggle source
# File lib/rubyhacks.rb, line 460 def random self[rand(size)] end
slice_with_stride(stride, offset, slice_size = 1)
click to toggle source
# File lib/rubyhacks.rb, line 464 def slice_with_stride(stride, offset, slice_size = 1) raise ArgumentError.new("slice_size cannot be bigger than stride - offset") if slice_size > stride - offset i = 0; new_arr = [] loop do for j in 0...slice_size new_arr.push self[i + offset + j] end i += stride break if i >= size end return new_arr end
sum()
click to toggle source
# File lib/rubyhacks.rb, line 496 def sum return inject{|old, new| old + new} end