Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想指定一些位,然后在 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); }