Articulo de referencia

División por dos

Una naranja que ha sido cortada por la mitad. En matemáticas , la división por dos , también llamada división por la mitad , mediación o dimidiación , es común en fórmulas y com...

Una naranja sobre un plato blanco que ha sido partido por la mitad.
Una naranja que ha sido cortada por la mitad.

En matemáticas , la división por dos , también llamada división por la mitad , mediación o dimidiación , es común en fórmulas y como paso en cálculos aritméticos ; es equivalente a la multiplicación por un medio . [ 1 ] Partiendo de un número o cantidad arbitrariaincógnita{\displaystyle x}Su división por dos se puede escribir como cualquiera de las siguientes expresiones equivalentes :incógnita÷2, incógnita/2, incógnita2, 12incógnita, 0,5incógnita.{\displaystyle x\div 2,\ x/2,\ {\frac {x}{2}},\ {\tfrac {1}{2}}x,\ 0.5x.}

El tratamiento de esto como una operación distinta de la multiplicación y la división por otros números se remonta a los antiguos egipcios, cuyo algoritmo de multiplicación utilizaba la división por dos como uno de sus pasos fundamentales. [ 2 ] Algunos matemáticos, incluso en el siglo XVI, continuaron considerando la división por la mitad como una operación separada, [ 3 ] [ 4 ] y a menudo se sigue tratando por separado en la programación informática moderna . [ 5 ] Realizar esta operación es simple en aritmética decimal , en el sistema numérico binario utilizado en la programación informática y en otras bases de números pares .

Binario

En aritmética binaria, la división por dos se puede realizar mediante una operación de desplazamiento de bits que mueve el número una posición a la derecha. Esta es una forma de optimización de reducción de fuerza . Por ejemplo, 1101001 en binario (el número decimal 105), desplazado una posición a la derecha, es 110100 (el número decimal 52): se elimina el bit de menor orden, un 1. De manera similar, la división por cualquier potencia de dos 2k se puede realizar desplazando k posiciones a la derecha. Debido a que los desplazamientos de bits suelen ser operaciones mucho más rápidas que la división, reemplazar una división por un desplazamiento de esta manera puede ser un paso útil en la optimización del programa . [ 5 ] Sin embargo, en aras de la portabilidad y legibilidad del software, a menudo es mejor escribir programas que utilicen la operación de división y confiar en que el compilador realice este reemplazo. [ 6 ] Un ejemplo de Common Lisp :

( setq número #b1101001 ) ; #b1101001 — 105 ( número de ceniza -1 ) ; #b0110100 — 105 >> 1 ⇒ 52 ( número de ceniza -4 ) ; #b0000110 — 105 >> 4 ≡ 105 / 2⁴ ⇒ 6

Sin embargo, las afirmaciones anteriores no siempre son ciertas al dividir números binarios con signo . Desplazar un bit a la derecha divide por dos, redondeando siempre hacia abajo. No obstante, en algunos lenguajes, la división de números binarios con signo se redondea hacia 0 (lo que, si el resultado es negativo, significa que se redondea hacia arriba). Por ejemplo, Java es uno de esos lenguajes: en Java, -3 / 2se evalúa como -1, mientras -3 >> 1que se evalúa como -2. Por lo tanto, en este caso, el compilador no puede optimizar la división por dos reemplazándola por un desplazamiento de bits, cuando el dividendo podría ser negativo.

Punto flotante binario

En aritmética binaria de punto flotante , la división por dos se puede realizar disminuyendo el exponente en uno (siempre que el resultado no sea un número subnormal ). Muchos lenguajes de programación proporcionan funciones que se pueden usar para dividir un número de punto flotante por una potencia de dos. Por ejemplo, el lenguaje de programación Java proporciona el método java.lang.Math.scalbpara escalar por una potencia de dos, [ 7 ] y el lenguaje de programación C proporciona la función ldexppara el mismo propósito. [ 8 ]

Decimal

El siguiente algoritmo es para números decimales. Sin embargo, puede utilizarse como modelo para construir un algoritmo que permita calcular la mitad de cualquier número N en cualquier base par .

  • Escribe N , colocando un cero a su izquierda.
  • Recorre los dígitos de N en pares superpuestos, anotando los dígitos del resultado de la siguiente tabla.

Ejemplo: 1738/2=?

Escribe 01738. Ahora trabajaremos para encontrar el resultado.

  • 01: dígito par seguido de 1, escriba 0.
  • 17: dígito impar seguido de 7, escribe 8.
  • 73: dígito impar seguido de 3, escribe 6.
  • 38: dígito impar seguido de 8, escribe 9.

Resultado: 0869.

Del ejemplo se puede ver que 0 es par .

Si el último dígito de N es impar , se debe sumar 0,5 al resultado.

Véase también

  • Una mitad
  • Mediana , un valor que divide un conjunto de datos en dos subconjuntos iguales.
  • Bisección , la división de un objeto geométrico en dos mitades iguales
  • La dimidiación es un método heráldico para unir dos escudos de armas dividiendo sus diseños en dos mitades.

Referencias

  1. Steele, Robert (1922), The Earliest arithmetics in English , Early English Text Society, vol.  118, Oxford University Press, pág.  82.
  2. ^ Chabert, Jean-Luc; Barbin, Évelyne (1999), Una historia de los algoritmos: del guijarro al microchip , Springer-Verlag, p. 16, ISBN  978-3-540-63369-3.
  3. Jackson, Lambert Lincoln (1906), La importancia educativa de la aritmética del siglo XVI desde el punto de vista de la actualidad , Contribuciones a la educación, vol. 8, Universidad de Columbia, pág. 76  .
  4. Waters, EGR (1929), "Un algoritmo francés del siglo XV de Lieja", Isis , 12 (2): 194–236 , doi : 10.1086/346408 , JSTOR 224785 , S2CID 144157808  .
  5. 1 2 Wadleigh, Kevin R.; Crawford, Isom L. (2000), Optimización de software para computación de alto rendimiento , Prentice Hall, pág. 92 , ISBN  978-0-13-017008-8.
  6. Hook, Brian (2005), Write portable code: an introduction to developing software for multiple platforms , No Starch Press, p. 133, ISBN  978-1-59327-056-8.
  7. "Math.scalb" . Java Platform Standard Ed. 6. Consultado el 11 de octubre de 2009 .
  8. Lenguajes de programación — C, Norma internacional ISO/IEC 9899:1999, Sección 7.12.6.6.