glen wrote:
> Just thought I'd post a solution I came up with to finding
> combinations (as in, permutations and combinations) of arrays. For
> example, combining:
> 
> [1,2] and [3,4,5]
> 
> should return:
> 
> [[1,3],[1,4],[1,5],[2,3],[2,4],[2,5]]
> 
> which is easy enough. But I wanted something that combine several
> arrays at once, ie:
> 
> [[1,2],[3,4,5],[6,7]].combine
> => [[1, 3, 6], [1, 3, 7], [1, 4, 6], [1, 4, 7], [1, 5, 6], [1, 5, 7],
> [2, 3, 6], [2, 3, 7], [2, 4, 6], [2, 4, 7], [2, 5, 6], [2, 5, 7]]
> 

And why not something like:

  [1,2].combine([3,4]).combine([5,6,7])

I do that with this code:

class Array
  def combine(otherArray)
    aux = []
    self.each do |self_elem|
      otherArray.each do |other_elem|
        aux << [self_elem,other_elem]
      end
    end
    aux.map {|elem| elem.flatten }
  end
end

Juan Matias
-- 
Posted via http://www.ruby-forum.com/.