我只是用c++ STL函数next_permutation墨西哥人。先使用,与墨西哥nextperms.cpp的编译系统。
看到nextperms。m和nextperms_example_script。的文档。
典型用例将您需要遍历大量排列,并不是所有的一次性装入内存。你可以称之为在一个循环中,要求1 m排列每个块左右。
(这也是显著快于Matlab烫发在我的系统只是用于生成所有的排列,虽然它不生成顺序相同。)
你传入一个初始向量和下一个排列生成。如果第一个输入不是视为一个向量列向量。您可以使用任何数字类型(如果你想很久/ int64你必须取消一些代码行)。
作为一个矩阵columnwise返回排列。他们生成的词典顺序(按STL规范)。传入的初始矢量不包括在输出;输出后开始下一个排列输入向量。
* * * *重要
目前还没有检查当排列包装回到最初的排列,这是用户的责任来检查这或只请求一个适当数量的排列。
如果你不知道如何使用这个看着nextperms之后。m和nextperms_example_script。m,试着运行它在一些小型输入和检查结果:nextperms (3: 1:1, 4);nextperms(3: 1:1,阶乘(3));nextperms(3: 1:1,阶乘(3)* 2);
引用作为
彼得·李(2023)。快速批量代的排列(//www.tianjin-qmedu.com/matlabcentral/fileexchange/44785-fast-batch-generation-of-permutations), MATLAB中央文件交换。检索。
版本 | 发表 | 发布说明 | |
---|---|---|---|
1.0.0.0 |