Find a set of common elements from a multi-dimensional array

I have a multi-dimensional array ; a=[[2,3,4],[1,3,4],[1,2],[1,2,3,4]]
i’ve to compare all the 4 sub-arrays and get common elements.Next,take 3
subarrays at a time and get common elements.then take 2 sub arrays at a
time and get common elements.

Hello,

2010/4/6 Shreyas S. [email protected]:

I have a multi-dimensional array ; a=[[2,3,4],[1,3,4],[1,2],[1,2,3,4]]
i’ve to compare all the 4 sub-arrays and get common elements.Next,take 3
subarrays at a time and get common elements.then take 2 sub arrays at a
time and get common elements.

Have a look to Array#combination to group your subarrays into
comparison sets and then use the Set class (require ‘set’) and it’s
intersection instance method to get the common elements.

Cheers,

Shreyas S. wrote:

I have a multi-dimensional array ; a=[[2,3,4],[1,3,4],[1,2],[1,2,3,4]]
i’ve to compare all the 4 sub-arrays and get common elements.Next,take 3
subarrays at a time and get common elements.then take 2 sub arrays at a
time and get common elements.

Well, the way to get common elements between arrays is with the
“intersection” method:
http://ruby-doc.org/core/classes/Array.html#M002212 (of course,
available as a Set operation too:
http://ruby-doc.org/core/classes/Set.html#M001621)

And what you’re looking for is a brute-force way to compare all subsets
of all possible sizes with other subsets of the same size. I’ll leave
that one as an exercise.