【发布时间】:2013-09-24 06:11:19
【问题描述】:
我想编写一个循环,用 k 1 和 n-k 0 扫描所有长度为 n 的二进制序列。
实际上,在每次迭代中,都会对序列执行一个操作,如果满足某个条件,则循环将中断,否则进入下一个序列。 (我不是在寻找 nchoosek 或 perms,因为对于较大的 n 值,需要很长时间才能给出输出)。
您建议使用什么 MATLAB 代码?
【问题讨论】:
-
这不是同一个问题asked yesterday吗?现在好像被移除了,我相信那里至少有一些有用的 cmets。
-
那么所有的 0 都跟在所有的 1 后面吗(反之亦然)?
-
@Parag 不!此类序列的所有组合无一例外。
-
@BasSwinckels:+1 确实有很好的建议:在 C++ 中使用
std::next_permutation和 Gosper's Bit Twiddling Hack -
@MahdiKhosravi 您上次得到 C++ 答案是因为您将其标记为 C++。
标签: algorithm matlab combinations permutation bits