Eine variable Anzahl von Bits ist ein Array von 0 oder mehr Bits. So [0, 1]
ist eine variable Anzahl von Bits, aber so ist []
.
Schreiben Sie eine Funktion oder ein Programm, das bei einer nichtnegativen Ganzzahl eine variable Anzahl von Bits zurückgibt, sodass jede Ganzzahl eine Eins-zu-Eins-Zuordnung (bijektiv) mit einem Array aufweist.
Es gibt unendlich viele solcher Zuordnungen. Sie können eine nach Belieben erstellen , aber es muss eins zu eins sein. Ihre Zuordnung muss für eine Ganzzahl beliebiger Größe konzeptionell eins zu eins sein. Es ist jedoch in Ordnung, wenn Ihre Implementierung für große Ganzzahlen aufgrund numerischer Typgrenzen in Ihrer bevorzugten Sprache (z int
. B. Cs ) fehlschlägt .
Als ein Beispiel von dem, was nicht eine Abbildung einer Eins-zu-eins, die Auflistung ist einfach die binären Ziffern der ganzen Zahl. In einem solchen System wird 5 [1, 0, 1]
(oder 0b101
), aber es ist nicht eins zu eins, weil 0b0101
oder [0, 1, 0, 1]
bedeutet auch 5.
Es sollte ziemlich offensichtlich sein, dass eine Zuordnung nicht eins zu eins ist, wenn eine Ganzzahl übersprungen wird (z. B. funktioniert sie nicht für 5), aber ich möchte klarstellen, dass das Überspringen eines variablen Bitarrays auch keine ist -zu eins. Sie müssen jedem möglichen variablen Bitarray zuordnen, einschließlich []
.
Der kürzeste Code in Bytes gewinnt.