H*******g 发帖数: 6997 | 1 碰到一个问题,想了半天,发现把自己给绕晕了。。。
一个商品可以有N个option.option可以是颜色,可以是腰围,长度,内存大小等。
譬如
ListA = {black,white, yellow} //For color
ListB = {30,32,34,36} //for waist size
ListC = {28,30,32} //For Length
我该如何用程序实现罗列所有的排列组合啊?
我想得到的结果类似这样, {{black,30,28},{black,30,30},{black,30,32},{white,34
,30}}
P.S.:是N个option.例子里是3个,但实际情况可能是2个,也有可能是5个。。。
求赐教啊。包子奉上! | H*******g 发帖数: 6997 | 2 回答下自己的问题。。。刚又跑去stackoverflow问去了,得到了一个关键字,
N-ary Cartesian Products
链接在这里,感谢各位哈
http://www.interact-sw.co.uk/iangblog/2010/07/28/linq-cartesian | h***u 发帖数: 498 | 3 如果都是数字的话,用MATLAB可以这么整
>> d1 = [1 2]; d2 = [3 4]; d3 = [5 6 7];
>> [x1,x2,x3] = ndgrid(d1,d2,d3);
>> y = [x1(:) x2(:) x3(:)]
y =
1 3 5
2 3 5
1 4 5
2 4 5
1 3 6
2 3 6
1 4 6
2 4 6
1 3 7
2 3 7
1 4 7
2 4 7
>> | s*****V 发帖数: 21731 | 4 晕,一个多重FOR LOOP不就解决了
34
【在 H*******g 的大作中提到】 : 碰到一个问题,想了半天,发现把自己给绕晕了。。。 : 一个商品可以有N个option.option可以是颜色,可以是腰围,长度,内存大小等。 : 譬如 : ListA = {black,white, yellow} //For color : ListB = {30,32,34,36} //for waist size : ListC = {28,30,32} //For Length : 我该如何用程序实现罗列所有的排列组合啊? : 我想得到的结果类似这样, {{black,30,28},{black,30,30},{black,30,32},{white,34 : ,30}} : P.S.:是N个option.例子里是3个,但实际情况可能是2个,也有可能是5个。。。
| H*******g 发帖数: 6997 | |
|