la suma
No puedo responder a su pregunta exactamente, pero asumiendo que está tratando de calcular esta suma mientras evita el desbordamiento de enteros, aquí hay un truco que podría funcionar. Dejar ser el valor absoluto de la sumando en su suma. Puedes probar que los números aumentar hasta un punto, y luego disminuir después. Esto implica que su suma alterna está limitada arriba por el mayor . Alquiler , puedes calcular por adelantado, y luego calcula la suma con todas las sumas realizadas módulo . Esto asegura que nunca tenga cálculos parciales más grandes que , sin dejar de dar la respuesta correcta.
Si el índice de suma subió a en lugar de , sería la fórmula de inclusión-exclusión para el número de -subconjuntos de que contienen al menos un elemento de cada uno de los siguientes intervalos disjuntos:
Entonces tu suma es
Si sabe que la respuesta final se ajusta al tamaño entero fijo, entonces no tiene que preocuparse por el desbordamiento intermedio. Cálculo con, digamos, -bit enteros es equivalente al módulo de cálculo . Entonces, incluso si las respuestas intermedias se desbordan y le dan algo que solo es el módulo correcto todavía garantiza que la respuesta final es correcta módulo , que será realmente correcto.
Así por ejemplo en -bit aritmética entera que puedo calcular
jose carlos santos
Rob Pratt