java如何获得固定数量的元素和可变数量的使用元素的组合(无重复)
如何用Java编写一个递归方法来打印3个不同数字的组合以及所用数字的可变计数?(不应包括重复。)也就是说,该方法应适用于不同的组合长度。例如,对于组合中使用的数字0、1、2和两个数字,您应该具有:0 0-0 1-0 2-1 1-1 2-2 2
对于相同的数字,3个数字的组合为: 0 0 0 - 0 0 1 - 0 0 2 - 0 1 1 - 0 1 2 - (...), 等等 我在其他类似的主题中检查了几种类型的递归方法,但我仍然无法完全理解这一点,并编写自己的方法
# 1 楼答案
我提出了一个非递归的解决方案,它是基于计算一个基于n的数字系统的数字。例如,对于以3为基数的系统,添加的数字是3的幂
需要注意的是,这会打印所有的组合,并且带有重复元素的组合应该稍后删除,这在我的案例中是需要的。例如,从组合001、010、100中,只应保留第一个元素,其中元素按升序排列
# 2 楼答案
也许先尝试计算所有排列。然后继续计算组合。维基上的图片很有启发性https://en.wikipedia.org/wiki/Combination
您也可以通过以下代码尝试用笔和纸:Combinations method return issue