博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
组合算法(类似C(5,2))
阅读量:5268 次
发布时间:2019-06-14

本文共 1723 字,大约阅读时间需要 5 分钟。

/**  *  get combinations ( C(superscript, subscript) )  * @param totalCount  normal data node group count except primary data node group * @param selectCount secondary data node count * @return the possibility of combinations * e.g. the possibility of select 2 members from 5 members * the possibility: {[5,4], [5,3], [5,2], [5,1], [4,3], [4,2], [4,1], [3,2], [3,1], [2,1]} */ private List
> getCombination(int totalCount, int selectCount){ //The combination of secondary count from group Count which expect primary group . int comb[] = new int[selectCount+1]; comb[0] = selectCount; List
> resultIndexList = new ArrayList<>(); combination(comb, totalCount, selectCount, resultIndexList); logger.info("secondary group index combination:{}", resultIndexList); return resultIndexList; } /** * get combinations( C(superscript, subscript) ) * e.g. C(5, 2) ,the resultList: {[5,4], [5,3], [5,2], [5,1], [4,3], [4,2], [4,1], [3,2], [3,1], [2,1]} * @param comb last result of combination * @param superscript max of the number * @param subscript select numbers count * @param resultList result after combination */ private void combination(int comb[], int superscript, int subscript, List
> resultList) { for (int i = superscript; i >= subscript; i--) { // select current head element comb[subscript] = i; if (subscript > 1) { // enter next smaller combination combination(comb, i-1, subscript-1, resultList); } else { Deque
selectIndexQueue = new ArrayDeque<>(); // save combination for (int j=comb[0]; j>0; j--) { selectIndexQueue.add(comb[j]); } resultList.add(selectIndexQueue); } } return; }

转载于:https://www.cnblogs.com/zhchy89/p/9216639.html

你可能感兴趣的文章
libhdfs配置使用
查看>>
Silverlight StoryboardManager 故事板管理类
查看>>
makefile函数
查看>>
Windows Azure Cloud Service (29) 在Windows Azure发送邮件(下)
查看>>
CS61A Efficiency 笔记
查看>>
ArcGIS Server Javascript 多图对比功能
查看>>
第六次实训作业异常处理
查看>>
c#实现把异常写入日志示例(异常日志)
查看>>
函数的进阶
查看>>
一个简单的网页服务器
查看>>
对百度杀毒软件的评价
查看>>
高级程序设计第六章(2)--创建对象
查看>>
微信上传素材返回 '{"errcode":41005,"errmsg":"media data missing"}',php5.6返回
查看>>
2017年11月Dyn365/CRM用户社区活动报名
查看>>
mysql 数据库磁盘占用量统计
查看>>
七七四十九劫,九九八十一难
查看>>
C++中的链接错误
查看>>
linux 安装 ArcSDE10.1
查看>>
SQL Server比较2table字段的差异
查看>>
.net 获取CPU频率 内存 磁盘大小,域名 端口 虚拟目录等
查看>>