请教组合算法

VF 2012-10-23 04:42:53
数组A【a1,a2,a3】 数组B【b1,b2】 数组C【c1】,从数组A,B,C中各抽取一个值进行组合,这个算法是叫什么?如何实现?可能会存在数组D,数组E...,所以不能单纯做嵌套循环实现
...全文
89 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
VF 2012-10-23
  • 打赏
  • 举报
回复
恩,可以这么说,n是不固定的,我已经解决了,一下子没想起来,其实就是笛卡尔积

算法如下:


public static List<List<String>> matrix(List<List<String>> list) {
List<List<String>> result = new ArrayList<List<String>>();
List<String> str = list.get(0);
for (String s : str) {
List<String> tmp = new ArrayList<String>();
tmp.add(s);
result.add(tmp);
}
List<List<String>> store = new ArrayList<List<String>>();
for (int i = 1; i < list.size(); i++) {
List<String> start = list.get(i);
for (int j = 0; j < result.size(); j++) {
List<String> rns = result.get(j);
for (int k = 0; k < start.size(); k++) {
List<String> mid = new ArrayList<String>();
mid.addAll(rns);
mid.add(start.get(k));
store.add(mid);
}
}
result.clear();
result.addAll(store);
store.clear();
}
return result;
}
raistlic 2012-10-23
  • 打赏
  • 举报
回复

有 n 个数组,从其中随机抽取 m 个数组,然后这 m 个数组各抽取一个值进行组合,是这样吗?

50,523

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧