考虑我有非常大的向量(超过10个元素),我必须检查每个排列的一些东西,但我不需要在内存中保存所有排列。例如,对于有12个元素的向量,我遇到了内存问题:
>> A = [1 2 3 4 5 6 7 8 9 10 11 12];
>> perms(A)
error: out of memory or dimension too large for Octave's index type
我的问题是:是否有任何好的和简短的方法来获取迭代器之类的所有可能的排列,而不是将它们全部保存在内存中,所以我可以将它们设置为任意大小的向量并在它们中的每一个上做一些东西循环?
当然我知道如何在任何编程语言上编程这个算法,但我正在寻找八度音或Matlab上的现成解决方案。