一千萬個為什麽

搜索

計算所有二進制數,等於1和0

我正在實現等邊雙分區算法的二進制表示,我想知道叠代N個具有相等(N/2)1和0的所有N組合的最佳方法。我試圖找到最快捷的方式,而不是最容易編碼。謝謝。

最佳答案

它只是(N選擇N/2);你選擇的是0,其余的是1。

如果你有10位,你想要5個零和5個,那麽 (10選5)= 252 可能性。


也可以看看:


如已經指出的,該數字是二項式系數(n k)。當 kn/2 時,該系數最大;我相信你知道有很多可能性,這就是為什麽你想要最快的算法來生成它們。

我沒有對這臺發電機進行微觀優化以使其成為最快的發動機,而是首先用盡所有其他選擇:你確定你不能做到比嘗試所有可能性更好嗎?這種蠻力解決方案無法擴展。

盡可能嘗試找到更好的算法。

轉載註明原文: 計算所有二進制數,等於1和0