2
我想指定一些位,然後在PHP中獲取包含這些位的所有可能組合的數組。生成所有可能的二進制組合
例子:
number: 3
000
001
010
011
etc...
我已經試過它最初設計用於字符串遞歸算法,所以算法太慢。
什麼是最有效的方法來做到這一點?
我想指定一些位,然後在PHP中獲取包含這些位的所有可能組合的數組。生成所有可能的二進制組合
例子:
number: 3
000
001
010
011
etc...
我已經試過它最初設計用於字符串遞歸算法,所以算法太慢。
什麼是最有效的方法來做到這一點?
關於位的好的部分是,你可以用它們做很簡單的事情。如果你想要3位,你會有7個數字,恰好是8-1。如果你想要4位,你會有15個數字,恰好是16-1。使用這個很好的事實來使你的代碼簡單。
$bits = 4;
$max = (1 << $bits);
for ($i = 0; i < $max; $i++) {
// Use $i
// echo str_pad(decbin($i), $bits, '0', STR_PAD_LEFT);
}
我認爲最好的部分是枚舉數和計數是相同的事情。 –
是的,那太好了! –
@Sosumi PHP有不錯的['decbin'](http://php.net/manual/en/function.decbin.php)和['str_pad'](http://php.net/manual/en/function名爲.str-pad.php)函數。 – irrelephant