2 bits por entero desperdician una fracción de un bit. La matriz requiere 2n bits de espacio pero solo transmite aproximadamente 1,6n bits de información. Solo se utilizan tres de las cuatro “palabras clave” posibles, una eficiencia del 75% (o una eficiencia teórica de la información de aproximadamente el 79%).
Para obtener una mayor eficiencia, una forma es pasar a palabras de código más largas. En lugar de tratar nuestras palabras de entrada como “0”, “1” y “2”, podemos usar palabras de varios dígitos. Por ejemplo, tomamos dos dígitos a la vez que serían 9 posibilidades (¡peor aún, necesitaríamos 4 bits!) Si tomamos K dígitos a la vez, entonces tenemos [matemáticas] 3 ^ K [/ matemáticas] palabras, entonces queremos una potencia de 3 que esté cerca (pero por debajo) de una potencia de 2.
[matemáticas] 3 ^ 2 = 9 <16 [/ matemáticas]
[matemáticas] 3 ^ 3 = 27 <32 [/ matemáticas]
[matemáticas] 3 ^ 4 = 81 <128 [/ matemáticas]
[matemáticas] 3 ^ 5 = 243 <256 [/ matemáticas]
Entonces, con palabras de cinco dígitos podemos obtener casi un 95% de eficiencia. (Simplemente escriba las secuencias de 00000 a 22222 en orden, numerelas y use la representación binaria de esa numeración).
- Cómo encontrar aproximadamente la región más densa de un gráfico
- ¿Cuál es la mejor manera de resolver un programa lineal, el método del multiplicador de Lagrange o el método simplex?
- ¿Se espera que todas las empresas nuevas resuelvan un problema para ser rentables y exitosas (tecnología, artículos comunes, industria de la moda)?
- ¿Cuál es el método de Newton-Rapson para encontrar una raíz cuadrada de un número entero? ¿Cómo se usa?
- Dado un flujo de alrededor de mil millones de números en una matriz, que tiene aproximadamente solo 1000 números únicos, ¿cómo puedo imprimir los números únicos? La complejidad debe ser menor que O (n).
Para manejar palabras que no son múltiplos de cinco bits, podemos hacer que un valor especial indique un cambio a la codificación de 2 bits. Esto no hace ninguna diferencia en la eficiencia asintótica.
Sin embargo, todavía nos quedan algunas fracciones. Podemos aumentar ligeramente la eficiencia utilizando los 12 códigos restantes de ocho bits (excluyendo nuestro valor especial) para algunas palabras de seis dígitos. Sin embargo, eso dificulta el acceso aleatorio a la matriz, por lo que, dependiendo de su aplicación, eso podría ser indeseable.