2
我有一个大小为n的数组。只要下列性质保持各元件可以容纳任何整数:来生成一个具有特殊属性的数组的过程
1) All elements are non-negative
2) sum(array[0,i+1])<i for 0<=i<n
3) sum(array)=n-1
让我们称这种阵列的铲斗。
我需要想出一个过程来生成下一个桶。
我们可以假设第一桶是{0,0,0...n-1}
示例:n=5
,一些可能的组合是
[0 0 0 0 4]
[0 0 0 1 3]
[0 0 0 2 2]
[0 0 0 3 1]
[0 0 1 2 1]
[0 0 2 1 1]
[0 1 1 1 1]
[0 1 0 0 3]
[0 1 1 0 2]
我在未来与命中所有可能组合的程序麻烦
。任何提示/提示? (注意我想生成下一个桶,我不打算一次打印出所有可能的桶)
你想生成所有的排列,对设N = 5。然后在下一个桶中,所有这些排列都可以存活而不是第一桶的一部分? – Ritesh
这不是一个家庭作业问题。无论我想出什么,我都永远不会像[0 1 1 0 2]这样的东西出现在列表中。我只能得到非递减顺序的组合。 – Mike
家庭作业与否,没有代码,这不是一个问题。提示:抓住一些纸张,并制作n = 3的所有可能的清单。观察你在做什么。如果你没有得到算法,那么为n = 4做一组详尽的列表。 – msw