可変ビット数は、0ビット以上の配列です。だから、[0, 1]
可変ビット数があるが、そうです[]
。
すべての整数が配列と1対1(全単射)でマッピングされるように、負でない整数が可変ビット数を返す関数またはプログラムを作成します。
そのようなマッピングは無限にあり、自由に作成できますが、1対1 でなければなりません。マッピングは概念的に任意のサイズの整数に対して1対1である必要がありますが、優先言語(Cなど)の型の数値制限のために大きな整数に対して実装が失敗しても問題ありませんint
。
1対1マッピングではないものの例として、整数の2進数をリストするだけです。このようなシステムでは5となる[1, 0, 1]
(又は0b101
)、しかしので、一対一ではない0b0101
か、[0, 1, 0, 1]
また5を意味します。
整数をスキップするとマッピングが1対1ではないことはかなり明白なはずです(たとえば、5では機能しません)が、可変ビット配列のスキップも1ではないことを明確にしたいと思います一対一。を含むすべての可能な可変ビット配列にマップする必要があります[]
。
バイト単位の最短コードが優先されます。