2 votes

Générer toutes les combinaisons binaires possibles

J'aimerais spécifier un certain nombre de bits, puis obtenir un tableau contenant toutes les combinaisons possibles de ces bits, en PHP.

Exemple :

number: 3
000
001
010
011
etc...

J'ai essayé des algorithmes récursifs qui ont été conçus à l'origine pour des chaînes de caractères, de sorte que l'algorithme est trop lent.

Quelle est la manière la plus efficace de procéder ?

6voto

Tom van der Woerdt Points 18645

L'avantage des bits, c'est qu'ils permettent de réaliser des choses très simples. Si vous voulez 3 bits, vous aurez 7 nombres, qui se trouvent être 8-1. Si vous voulez 4 bits, vous aurez 15 nombres, ce qui correspond à 16-1. Utilisez ce fait pour simplifier votre code.

$bits = 4;
$max = (1 << $bits);

for ($i = 0; i < $max; $i++) {
    // Use $i
    // echo str_pad(decbin($i), $bits, '0', STR_PAD_LEFT);
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X