Problemas de decodificación con codificación aritmética
1: La llamada codificación y decodificación puede considerarse como compresión y descompresión. No importa qué método de codificación se utilice, es imposible obtener la clave mediante un conjunto de operaciones en todas las cadenas o cadenas de claves. En primer lugar, este ya es un problema que no está permitido en términos de esfuerzo computacional, tiempo y espacio. Por ejemplo, si dejas que una computadora haga los cálculos.
Es totalmente posible multiplicar dos dígitos por dos dígitos, pero ¿cómo multiplica una computadora miles de dígitos al mismo tiempo? ¿Cómo calcular? Las CPU actuales, incluidas las llamadas de 4 núcleos, no pueden tener instrucciones que puedan cumplir con este requisito. La respuesta debe ser operaciones de agrupación y división, que no se pueden realizar al mismo tiempo.
2. Combinando la conclusión del primer punto, es cuál es la fórmula de cálculo cuando haces codificación aritmética, y luego tienes que dividirla artificialmente para que cada parte de la cadena se calcule y se acumule. obtener el resultado.
Con este paso, no es necesario leer todas las cadenas, solo leer algunas operaciones y luego leer algunas operaciones nuevamente, para acumular los resultados.
3. Las cadenas y claves se almacenan en char[] porque el espacio que se puede abrir es grande y limitado. Por supuesto, dependiendo de la configuración de su pila, es completamente suficiente. Si aún se desborda durante la operación, regrese y piense en su algoritmo y proceso de decodificación.