【发布时间】:2014-10-11 10:55:14
【问题描述】:
给定一个向量 v = [1,..,n],我尝试在 julia 中计算所有唯一的 n 个元素的集合并替换。
由于我想对较大的 n 值执行此操作,因此我正在寻找一种有效的解决方案,可能使用迭代器。
例如,让我们考虑v = [1, 2, 3]:这应该会导致[1,1,1], [1,1,2], [1,1,3], [1,2,2], [1,2,3], [1,3,3], [2,2,2], [2,2,3], [2,3,3], [3,3,3]。唯一的意思是,如果[1,1,2] 是一个解决方案,那么它的任何排列[1,2,1], [2,1,1] 都不是。
我当前的解决方案基于partitions 函数,但不允许我限制元素 [1,..,n] 的计算
for i in n:n^2
for j in partitions(i, n)
## ignore sets which exceed the range [1,n]
if maximum(j) <= n
## accept as solution
end
end
end
【问题讨论】:
标签: combinatorics julia