dev*_*obf 10 math matlab permutation combinatorics
我有以下问题.我需要计算一组的排列; 但是,该集合可能包含两个相同的元素,因此会导致重复的排列.例如:
给定集合[ 0 0 1 2 ],排列包括这些可能性:
1 2 0 0
1 2 0 0
Run Code Online (Sandbox Code Playgroud)
但是,我想避免像这些相同的排列.在MATLAB中,我可以简单地这样做:
unique(perms([ 0 0 1 2 ]), 'rows')
Run Code Online (Sandbox Code Playgroud)
但这里的问题是效率 - 我在一个巨大的for循环中反复这样做,并且所需的排序unique太慢了.所以我的问题是:我可以直接计算这种性质的独特排列,而不必在事后循环结果吗?我在MATLAB工作,但只是一个通用的解决方案可能会有所帮助,虽然可以在MATLAB中矢量化的东西可能是理想的!
据我所知,现有的问题并不能完全解决这个问题,但如果以前已经回答了这个问题,我会道歉.
| 归档时间: |
|
| 查看次数: |
7503 次 |
| 最近记录: |