Ir al contenido

Precisión arbitraria

De Wikipedia, la enciclopedia libre
Esta es una versión antigua de esta página, editada a las 00:04 9 sep 2013 por Marcelo (discusión · contribs.). La dirección URL es un enlace permanente a esta versión, que puede ser diferente de la versión actual.

En computación, precisión arbitraria o bignum (por big number, "número grande" en inglés) es un método que permite la representación, en un programa informático, de números ya sean enteros o racionales con tantos dígitos de precisión como cuanto sea deseado y además posibilita la realización de operaciones aritméticas sobre dichos números.

Los números son normalmente almacenados como arrays de dígitos utilizando la base binaria u otra base para la representación. A diferencia de los tipos de datos implementados en hardware (de una longitud fija determinada por ejemplo por la longitud de los registros de la CPU), los números de precisión arbitraria pueden variar en tamaño, utilizando memoria dinámica.

Si se trata de números fraccionarios se puede representar con arrays separados el denominador y el numerador; o bien utilizar una notación de punto fijo almacenando los dígitos decimales con la precisión deseada; o bien utilizar un formato de punto flotante con un significando multiplicado por un exponente.

Historia e implementaciones

La precisión arbitraria fue implementada por primera vez en MacLisp. Más tarde, el sistema operativo VAX/VMS ofrecía capacidades de precisión arbitraria como una colección de funciones que operaban con cadenas. Hoy en día, bibliotecas bignum están disponibles para los lenguajes de programación más usados. Incluso existen lenguajes diseñados específicamente para cálculo con precisión arbitraria, como por ejemplo el lenguaje de programación bc. Todos los sistemas de álgebra computacional implementan facilidades bignum.

Aplicaciones

Una aplicación común es la criptografía de clave pública, cuyos algoritmos suelen emplear aritmética con enteros de cientos ó miles de dígitos.

También se usa para computar constantes matemáticas fundamentales tales como pi con millones o más dígitos y analizar sus propiedades.