Défi
Étant donné une liste d'entiers positifs, recherchez s'il existe une permutation où en prenant jusqu'à un bit de chacun des entiers, un nombre binaire composé de tous les 1
s peut être créé.
Le nombre de bits du nombre binaire résultant est égal au MSB le plus élevé de la liste des entiers.
Sortie
Votre code doit générer ou renvoyer une valeur truey / falsey indiquant si une telle permutation existe.
Exemples
Vérité:
Avec la liste [4, 5, 2]
et sa représentation binaire [100, 101, 10]
, nous pouvons utiliser les troisième, premier et deuxième bits, respectivement, pour créer 111
:
4 -> 100 -> 100 -> 1
5 -> 101 -> 101 -> 1
2 -> 010 -> 010 -> 1
Result 111
Avec la liste [3, 3, 3]
, tous les nombres ont à la fois le premier et le deuxième bits définis 1
, afin que nous puissions faire notre choix avec un nombre à épargner:
3 -> 11 -> 11 -> 1
3 -> 11 -> 11 -> 1
3 -> 11 -> 11 ->
Result 11
Falsey:
Avec la liste [4, 6, 2]
, aucun des nombres n'a le premier bit défini comme 1
, donc le nombre binaire ne peut pas être créé:
4 -> 100
6 -> 110
2 -> 010
Avec la liste [1, 7, 1]
, un seul des deux nombres a les deuxième et troisième bits définis comme 1
et le nombre ne peut pas être créé:
1 -> 001
7 -> 111
1 -> 001
De toute évidence, si le nombre maximal de bits définis dépasse le nombre d'entiers, le nombre de résultats ne peut jamais être créé.
Cas de test
Vérité:
[1]
[1, 2]
[3, 3]
[3, 3, 3]
[4, 5, 2]
[1, 1, 1, 1]
[15, 15, 15, 15]
[52, 114, 61, 19, 73, 54, 83, 29]
[231, 92, 39, 210, 187, 101, 78, 39]
Falsey:
[2]
[2, 2]
[4, 6, 2]
[1, 7, 1]
[15, 15, 15]
[1, 15, 3, 1]
[13, 83, 86, 29, 8, 87, 26, 21]
[154, 19, 141, 28, 27, 6, 18, 137]
Règles
Les failles standard sont interdites. Comme il s'agit de code-golf , l'entrée la plus courte gagne!