给定一组K对象,生成所有大小为N的集合(其中N> K)。例如,从集合{1,2}(K = 2)开始,生成所有大小为N = 3的集合将导致以下输出集合:{1,1,1} {1,1,2},{ 1,2,1},{2,1,1},{2,2,1},{2,1,2},{1,2,2},{2,2,2}什么是高效算法来生成这样的集合?从大小为K的对象组中生成所有大小为N的集合
注意Ken White:我的研究只发现了处理C(mn)的算法,其中n < m;给定集合中项目的排列和组合的算法。我正在尝试这样做,因为如果没有算法,我会尝试让我的代码完成什么?
也许我之前的发帖不清楚,但您的回复 - “请原谅我完全缺乏努力,但是有人可以为我写这段代码吗?稍后再回来捡起来,Tx再见 - Ken White 6月27日22:54“真的很专业,乐于助人。
这是一个不可能的目标,因为'{2,2,2}'不是一个可能的集合。如果你正在处理列表问题,那么问题是很难处理的,但是还不清楚哪些工作还有待完成。从一组M个项目中进行N次取样非常简单,只需更换即可。 – amalloy
你正在计算基数'K'数字'0'到'(K^N) - 1'。 – beaker