Herausforderung
Suchen Sie anhand einer Liste positiver Ganzzahlen, ob es eine Permutation gibt, bei der von jeder Ganzzahl bis zu einem Bit benötigt wird, und 1erstellen Sie eine Binärzahl, die aus allen s besteht.
Die Anzahl der Bits in der resultierenden Binärzahl entspricht dem höchsten MSB in der Liste der ganzen Zahlen.
Ausgabe
Ihr Code muss einen Wert für " truthy / falsey" ausgeben oder zurückgeben, der angibt, ob eine solche Permutation vorhanden ist.
Beispiele
Wahrheit:
Mit der Liste [4, 5, 2]und ihrer binären Darstellung [100, 101, 10]können wir das dritte, erste und zweite Bit verwenden, um Folgendes zu erstellen 111:
4 -> 100 -> 100 -> 1
5 -> 101 -> 101 -> 1
2 -> 010 -> 010 -> 1
Result 111
In der Liste [3, 3, 3]sind für alle Zahlen sowohl das erste als auch das zweite Bit als gesetzt 1, sodass wir uns eine Nummer aussuchen können, die noch übrig ist:
3 -> 11 -> 11 -> 1
3 -> 11 -> 11 -> 1
3 -> 11 -> 11 ->
Result 11
Falsey:
In der Liste [4, 6, 2]ist für keine der Zahlen das erste Bit gesetzt 1, sodass die Binärzahl nicht erstellt werden kann:
4 -> 100
6 -> 110
2 -> 010
Mit der Liste [1, 7, 1] ist nur für eine der Nummern das zweite und dritte Bit festgelegt 1, und die Nummer kann nicht erstellt werden:
1 -> 001
7 -> 111
1 -> 001
Wenn die maximale Anzahl der gesetzten Bits die Anzahl der ganzen Zahlen überschreitet, kann die Ergebnisnummer natürlich nie erstellt werden.
Testfälle
Wahrheit:
[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]
Regeln
Standardlücken sind verboten. Da dies Codegolf ist , gewinnt der kürzeste Einstieg!