estudiante
Publicado por Daniela Segura (1 intervención) el 12/11/2004 20:06:29
Necesito por fabor que me ayuden , con el algoritmo de codificacion aricmetica para numeros enteros largos .
Valora esta pregunta


0
class AritmeticEncoder:
def __init__(self):
self.low = 0.0
self.high = 1.0
self.range = 1.0
def encode(self, number, probabilities):
for digit in str(number):
low_range = self.low + self.range * sum(probabilities[:int(digit)])
high_range = self.low + self.range * sum(probabilities[:int(digit) + 1])
self.low = low_range
self.high = high_range
self.range = self.high - self.low
# Output any bit within the current range
encoded_value = (self.low + self.high) / 2
return encoded_value
# Ejemplo de uso:
number_to_encode = 12345678901234567890
probabilities = [0.1] * 10 # Probabilidades ficticias para los dígitos del 0 al 9
encoder = AritmeticEncoder()
encoded_value = encoder.encode(number_to_encode, probabilities)
print("Número original:", number_to_encode)
print("Valor codificado:", encoded_value)