组合

组合

遇到个组合问题,甚是没有思路
有这样一个array,格式如下:
ar = [[a1,a2,..an],[b1,b2,...bn],[c1,c2,...cn]]
其中ar的长度是可变的,,ar中每个元素也就是每个子array的长度也是可变的...
需要拿出每种组合的情况,比如[a1,b1,c1],,[a1,b1,c2],,[a1,b2,c1]等等等...
哪位有比较好的算法,,略微说明一下可否??
有代码说明那就更好了.....

不就是把三个数组拆开,然后就调用each做三重迭代吗?不用代码演示了吧。。。
一个貌似笛卡尔积的问题,如果是两重就可以用矩阵了。
each我到不知道怎么写,下面的do应该很容易就实现了
ar.length.times do |i|
b=[];ar.length.times do |j|
b<<ar[j]
end
end
论坛的BUG?
为什么我写的明明是
b[i]=[];ar[i].length.times do |j|,编辑的时候看到的也是,显示出来却变了呢?
晕!!!理解错了,忽略我写的吧!!!不好意思
http://snippets.dzone.com/posts/show/3332

[Copy to clipboard] [ - ]