Java实现代码:

    public static void main(String[] args) {List<String> list = new ArrayList<String>(Arrays.asList("A", "B", "C", "D"));getFullAssembly(list);}public static void getFullAssembly(List<String> list) {int size = list.size();for (int i = 1; i <= (1 << size) - 1; i++) {StringBuffer stringBuffer = new StringBuffer();for (int j = 0; j < size; j++) {if (((i >> j) & 1) == 1) {stringBuffer.append(list.get(j));// 001 得到A// 011 先取list.get(0)再取list.get(1),即AB}}System.out.println(stringBuffer.toString());}}

思路:
当n大于2时,n个数的全组合一共有(2^n)-1种。
当对n个元素进行全组合的时候,可以用一个n位的二进制数表示取法。
1表示在该位取,0表示不取。例如,对ABC三个元素进行全组合,
100表示取A,010表示取B,001表示取C,101表示取AC
110表示取AB,011表示取BC,111表示取ABC
注意到表示取法的二进制数其实就是从相对应的十进制数
推广到对n个元素进行全排列,取法就是从1到2^n-1的所有二进制形式,然后通过位运算、与运算,判断二进制数的1是否存在,并且取到对应的1的元素

获取全组合算法,比如输入A,B,C 得到A、B、C、AB、AC、BC、ABC相关推荐

  1. 高效率的全组合算法(Java版实现)

    我不是生产者,我只是大佬的搬运工 =.= 算法描述: 算法说明:当n大于2时,n个数的全组合一共有(2^n)-1种. 当对n个元素进行全组合的时候,可以用一个n位的二进制数表示取法. 1表示在该位取, ...

  2. 全排列、全组合 java实现

    全排列 所谓全排列就是根据输入字符打印出所有字符的排列方式(分次序).例如输入abc,所有排序的结果有,abc,cba,bac,cab,acb,bca 共6种情况.对于全排列,如果用循环的方法,需要O ...

  3. 字符串全排列与组合算法以及八皇后问题

    [剑指offer-题38] 字符串排列 题目 输入一个字符串,输出该字符串的全排列. 思路 数学中的排列思想.算法步骤如下: 求出所有可能出现在第一个位置的字符.将首字符依次与后面的字符交换,即可达到 ...

  4. 算法之排列与组合算法

    1. 前言 本文介绍了常用的排列组合算法,包括全排列算法,全组合算法,m个数选n个组合算法等. 2. 排列算法 常见的排列算法有: (A)字典序法 (B)递增进位制数法 (C)递减进位制数法 (D)邻 ...

  5. 排列组合算法(全排列、全组合)

    原文链接 http://blog.shuxuemi.cn/web/index/detail/16 // 全排 function fullArrange(&$arr, $index) {if ( ...

  6. java 获取排列组合_Java获得一个数组的指定长度排列组合算法示例

    本文实例讲述了Java获得一个数组的指定长度排列组合算法.分享给大家供大家参考,具体如下: package demo; import java.util.Stack; /** * JAVA获得一个数组 ...

  7. 背包问题算法实现(全组合、暴力递归、动态规划及空间压缩、对数器)

    背包问题的实现 * 1.全组合解法(对数器) * 2.暴力递归解法 * 3.动态规划解法 * 4.动态规划(省空间)解法 对数器的思路是:求解n个物品的全组合中不超过背包容量的组合对应的最大价值(时间 ...

  8. 字符串的全排列和组合算法

    转载http://blog.csdn.net/hackbuteer1/article/details/7462447,感谢Hackbuteer1. 全排列在笔试面试中很热门,因为它难度适中,既可以考察 ...

  9. 昆仑万维重磅发布AIGC全系列算法与模型,领跑未来

    2022年12月15日,昆仑万维在北京举行AIGC技术发布会,会上昆仑万维CEO方汉正式发布了「昆仑天工」AIGC全系列算法与模型,并宣布模型开源.「昆仑天工」旗下模型包括天工巧绘SkyPaint.天 ...

最新文章

  1. 网页设计的css样式,网页设计引入CSS样式的五种方式_css
  2. 通过设计国际象棋游戏来了解策略模式
  3. 一文重新认识联邦学习
  4. SharedPreferences详解
  5. 既然开发了 飞鸽传书 就一定要帮助人
  6. python 图像分析 边框_Python 去除图片纯色边框(qbit)
  7. leetcode 1025 python
  8. linux mvn m2目录,Maven C盘用户文件下没有.m2
  9. 订婚和结婚有什么区别
  10. python实现两个任意字符串乘积
  11. 用automake建立共享库(动态链接库)Makefile
  12. 魔方Newlife.Cube权限系统的使用及模版覆盖详解
  13. C++ log4cpp(tx2)
  14. community_louvain社群划分方法
  15. 全外显子测序助力疾病诊疗
  16. 计算机科学技术标准,计算机科学技术基础知识之标准化和知识产权基础知识
  17. ChatGPT万能工具箱 | ChatGPT辅助神器 提升了用户体验 提问回答更加精确。
  18. FontAwesome for Axure字体图标合集 v4.7 — v5.8 含Free版和Pro版
  19. 编译原理:了解编译原理
  20. houdini 节点批量改名

热门文章

  1. 如何关闭windows11搜索页面中的推荐新闻
  2. Python自动扫描出微信不是好友名单
  3. i春秋 WEB code
  4. 第1章 程序设计入门
  5. ElasticSearch学习_陶文5_【02】把 Elasticsearch 当数据库使:过滤和排序
  6. 判断客户价值,用好这3个数据分析模型就足够了!
  7. 通信学习 RRC非激活态
  8. 包装用铝盖的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  9. android button setbackgroundcolor,Xamarin(Android)中资源文件中的Button的SetBackgroundColor
  10. 实战:如何降低云开发服务器成本?