计算所有二进制数,等于1和0

时间:2010-04-14 05:06:31

标签: partitioning combinations

我正在实现等边双分区算法的二进制表示,我想知道迭代N个具有相等(N / 2)1和0的所有N组合的最佳方法。我试图找到最快捷的方式,而不是最简单的代码。感谢。

1 个答案:

答案 0 :(得分:2)

只是(N choose N/2);你选择的是0,其余的是1。

如果您有10位,并且您想要5个零和5个,则有(10 choose 5) = 252种可能性。


另见:


正如已经指出的,这个数字是二项式系数(n k)。当kn/2时,此系数最大;我相信你知道有很多可能性,这就是为什么你想要最快的算法来生成它们。

不是微观优化这台发电机以使其尽可能快,我首先要用尽所有其他选择:你确定你不能做到比尝试所有可能性更好吗?这种强力解决方案无法扩展。

尽可能尝试找到更好的算法。