La longitud óptima viene dada por el código Huffman. En este caso, corresponde a la codificación que propones, con una longitud media de código de 1,6667. Por lo tanto, esto es óptimo ... si se restringe a un single symbol=>single codeword
codificación. Pero puedes hacerlo mejor si, en lugar de codificar cada símbolo por separado, codificas los pares, o los tripletes, o... Es decir, si codificas la "fuente ampliada".
Por ejemplo, tomando la extensión de orden $2$ Tendrías $3\times 3=9$ símbolos, cada uno con probabilidad $1/9$ y podrías codificarlos así:
AA 000
AB 001
AC 010
BA 011
BB 100
BC 101
CA 110
CB 1110
CC 1111
Esto da una duración media de $(3 \times 7/9 + 4 \times 2/9)/2=1.6111\cdots$ . Esto es mejor, pero sigue sin alcanzar el límite de Shannon.
Para la extensión tres, tendríamos 27 símbolos y el código Huffman sería
n L
00** (4) 4
0100 (1) 4
0101* (2) 5
011** (4) 5
1**** (16) 5
con una longitud media $[ 4 \times (4+1)/27 + 5 \times (2+4+16)/27]/3=1.605...$
Puedes hacerlo aún mejor -y aproximarte asintóticamente al valor teórico- tomando extensiones de orden cada vez más alto. O puedes utilizar la codificación aritmética, que, en esencia, hace precisamente eso.
Una codificación sencilla -subóptima pero sencilla, y que logra el objetivo en el ejercicio original- sería la extensión de pedido 5 lo que da $3^5=243$ símbolos. Esto se puede codificar trivialmente con 8 bits cada uno ( $2^8=256 < 243$ ), lo que da $8$ bits/ $5$ símbolos = 1,6 bits por símbolo .