Algo

Solo disponible en BuenasTareas
  • Páginas : 6 (1349 palabras )
  • Descarga(s) : 0
  • Publicado : 25 de agosto de 2012
Leer documento completo
Vista previa del texto
Algoritmos de redondeo

Redondeando ando
¿Alguien dijo que redondear es cosa de niños? Eso nos puede parecer a los que nos limitamos a redondear, por ejemplo, una media de precios de artículos al céntimo más cercano,utilizando la archiconocida regla del cinco (si es mayor o igual a cinco se le suma uno, y si no se deja como está); que no se llama regla del cinco, vaya, pero podría. Qué fácilparece todo para nuestras mentes decimalmente cuadriculadas, ¿verdad? Sin embargo, los ordenadores saben que el arte del redondeo es una ciencia mucho más compleja de lo que nos podemos imaginar.
Redondear un valor significa reducir su precisión, ajustar a determinado número de decimales una serie de guarismos, perdiendo exactitud en el resultado final. Generalmente, esa precisión menguada noes significativa o la consideramos despreciable, y es que no podemos pretender que nuestros limitados cerebros humanos trabajen con infinitos decimales de concreción.
Un ejemplo muy sencillo podría ser, como comentábamos al principio, el efecto de redondear una cantidad que es media aritmética del precio en euros de varios artículos a la venta. Aunque los precios sólo cuenten con dos decimales(precisión de céntimo), es más que probable que su media dé como resultado un valor de muchos más decimales (o infinitos decimales, incluso). Un resultado de 5,18686 € no es manejable para nosotros, por lo que optamos por redondearlo a 5,19 € (ya que el tercer decimal es mayor que cinco). El valor es menos preciso, por lo que no es válido realmente, pero lo adoptamos como tal.
Pero este no esel único método de redondeo que existe, hay muchos más. Según el caso, debemos considerar utilizar un algoritmo que minimice los efectos de la pérdida de precisión, especialmente en el caso de múltiples iteraciones de procesamiento. Esto es, los errores aumentan significativamente con el tiempo debido a la realización de operaciones de redondeo sobre datos previamente ya redondeados.
NOTA: Seutiliza el punto (.) como separador decimal en todos los ejemplos, cosa que no me hace ninguna gracia, pero es más legible para ti.
Truncamiento
Es el redondeo menos preciso. Consiste en truncar o cercenar el valor eliminando por completo la parte decimal, quedándonos exclusivamente con la parte entera. Así pues, 3.15 daría como resultado 3, y 3.87 daría como resultado también 3. Esel procedimiento que utiliza la función Fix de Visual Basic o el método Math.Truncatede los lenguajes de programación del entorno .NET Framework.
Es un ejemplo de redondeo simétrico, porque afecta al valor absoluto de números positivos y negativos de la misma manera. Así, el truncamiento de -3.87 es -3.
Redondeo al más cercano
Es el algoritmo más intuitivo y el que más utilizamos en la vida real. En estecaso valores como 3.1, 3.3 ó 3.4 se redondean a la baja a 3, mientras que valores tales como3.6, 3.8 ó 3.9 se redondean al alza a 4. El problema está en qué hacer con valores del tipo 3.5. De hecho, este redondeo al más cercano puede considerarse como un superconjunto de dos opciones complementarias denominadas redondeo hacia arriba yredondeo hacia abajo, que vemos a continuación.
Redondeohacia arriba (aritmético)
Conocido también como redondeo aritmético, es un subconjunto del anterior que asociamos al tipo de redondeo que nos enseñaron a utilizar en el colegio. En este caso, un valor de 3.5 se redondea a 4 (hacia arriba). Con este nivel de precisión, y para este ejemplo concreto, podemos considerar que hay 10 valores que comiencen con un 3 en el lugar más significativo(3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8 y 3.9). Sobre esta base, tiene sentido que cinco de los valores se redondeen a la baja y otros cinco al alza, repartiendo la exactitud equitativamente. De este modo, los cinco valores que van desde 3.0 hasta 3.4 se convierten en 3, y los restantes cinco valores (de 3.5 a 3.9) se redondean a 4.
Este algoritmo puede implementarse con redondeo de forma...
tracking img