有必要组织一个长度为 n 的向量的完整枚举。输出为:
000
001
010
011
100
101
110
111
所以对于任何长度。不必按字典顺序排列。只是为了完整列举所有选项。
实际上,有必要以这样一种方式构建一个解决方案,它不仅适用于二进制向量,而且适用于 n 元向量。也就是说,{0,1,2,3,...,n} 中的任何数字都可以在一个位置。有任何想法吗?
有必要组织一个长度为 n 的向量的完整枚举。输出为:
000
001
010
011
100
101
110
111
所以对于任何长度。不必按字典顺序排列。只是为了完整列举所有选项。
实际上,有必要以这样一种方式构建一个解决方案,它不仅适用于二进制向量,而且适用于 n 元向量。也就是说,{0,1,2,3,...,n} 中的任何数字都可以在一个位置。有任何想法吗?
两天后我找到了答案,也许有一天它会对你有用,保留它:
我将展示三元向量(即 0,1,2)的示例。该算法的整个想法是基于这样一个事实,即我们从数字的右边缘通过一个迭代器,当我们遇到一个 2(最大可能数)时,我们增加不等于 2 的极值。一旦极值变成 2,我们就开始循环,经过一系列的二,一旦我们发现不是 2,我们就增加这个数字。当然,当我们每次增加一些东西时,这个数字之前的所有东西都会重置为零。