En matemáticas , el logaritmo binario ( log 2 n ) es la potencia a la que se debe elevar el número 2 para obtener el valor n . Es decir, para cualquier número real x ,
Por ejemplo, el logaritmo binario de 1 es 0 , el logaritmo binario de 2 es 1 , el logaritmo binario de 4 es 2 y el logaritmo binario de 32 es 5 .
El logaritmo binario es el logaritmo en base 2 y es la función inversa de la potencia de dos . Además de log 2 , una notación alternativa para el logaritmo binario es lb (la notación preferida por ISO 31-11 e ISO 80000-2 ).
Históricamente, la primera aplicación de los logaritmos binarios fue en teoría musical , por Leonhard Euler : el logaritmo binario de una relación de frecuencias de dos tonos musicales da el número de octavas en las que se diferencian los tonos. Los logaritmos binarios se pueden utilizar para calcular la longitud de la representación de un número en el sistema de numeración binario , o el número de bits necesarios para codificar un mensaje en la teoría de la información . En informática , cuentan el número de pasos necesarios para la búsqueda binaria y algoritmos relacionados. Otras áreas en las que se utiliza con frecuencia el logaritmo binario incluyen la combinatoria , la bioinformática , el diseño de torneos deportivos y la fotografía .
Los logaritmos binarios se incluyen en las funciones matemáticas estándar de C y en otros paquetes de software matemático.
Los poderes de dos se conocen desde la antigüedad; por ejemplo, aparecen en Elementos , Props. de Euclides . IX.32 (sobre la factorización de potencias de dos) y IX.36 (la mitad del teorema de Euclides-Euler , sobre la estructura de los números pares perfectos ). Y el logaritmo binario de una potencia de dos es simplemente su posición en la secuencia ordenada de potencias de dos. Sobre esta base, a Michael Stifel se le atribuye la publicación de la primera tabla conocida de logaritmos binarios en 1544. Su libro Arithmetica Integra contiene varias tablas que muestran los números enteros con sus correspondientes potencias de dos. Invertir las filas de estas tablas permite interpretarlas como tablas de logaritmos binarios. [1] [2]
Antes que Stifel, al matemático jainista del siglo VIII, Virasena , se le atribuye un precursor del logaritmo binario. El concepto de ardhacheda de Virasena se ha definido como el número de veces que un número dado se puede dividir en partes iguales entre dos. Esta definición da lugar a una función que coincide con el logaritmo binario en potencias de dos, [3] pero es diferente para otros números enteros, dando el orden 2-ádico en lugar del logaritmo. [4]
La forma moderna de un logaritmo binario, aplicable a cualquier número (no sólo a potencias de dos), fue considerada explícitamente por Leonhard Euler en 1739. Euler estableció la aplicación de los logaritmos binarios a la teoría musical, mucho antes de que sus aplicaciones en la teoría de la información y la informática se convirtieran en conocido. Como parte de su trabajo en esta área, Euler publicó una tabla de logaritmos binarios de los números enteros del 1 al 8, con siete dígitos decimales de precisión. [5] [6]
La función logaritmo binaria se puede definir como la función inversa a la potencia de dos , que es una función estrictamente creciente sobre los números reales positivos y, por lo tanto, tiene una inversa única. [7] Alternativamente, puede definirse como ln n /ln 2 , donde ln es el logaritmo natural , definido en cualquiera de sus formas estándar. El uso del logaritmo complejo en esta definición permite extender el logaritmo binario a los números complejos . [8]
Como ocurre con otros logaritmos, el logaritmo binario obedece a las siguientes ecuaciones, que pueden usarse para simplificar fórmulas que combinan logaritmos binarios con multiplicación o exponenciación: [9]
Para obtener más información, consulte la lista de identidades logarítmicas .
En matemáticas, el logaritmo binario de un número n suele escribirse como log 2 n . [10] Sin embargo, se han utilizado o propuesto varias otras notaciones para esta función, especialmente en áreas de aplicación.
Algunos autores escriben el logaritmo binario como lg n , [11] [12] la notación que figura en el Manual de estilo de Chicago . [13] Donald Knuth atribuye esta notación a una sugerencia de Edward Reingold , [14] pero su uso tanto en teoría de la información como en ciencias de la computación data de antes de que Reingold estuviera activo. [15] [16] El logaritmo binario también se ha escrito como log n con una declaración previa de que la base predeterminada para el logaritmo es 2 . [17] [18] [19] Otra notación que se utiliza a menudo para la misma función (especialmente en la literatura científica alemana) es ld n , [20] [21] [22] del latín logarithmus dualis [20] o logarithmus dyadis . [20] Las normas DIN 1302 , ISO 31-11 e ISO 80000-2 recomiendan otra notación más, lb n . Según estos estándares, lg n no debe usarse para el logaritmo binario, ya que está reservado para el logaritmo común log 10 n . [23] [24] [25]
El número de dígitos ( bits ) en la representación binaria de un entero positivo n es la parte integral de 1 + log 2 n , es decir [12]
En teoría de la información, la definición de la cantidad de autoinformación y la entropía de la información a menudo se expresa con el logaritmo binario, correspondiente a hacer del bit la unidad fundamental de información . Con estas unidades, el teorema de Shannon-Hartley expresa la capacidad de información de un canal como el logaritmo binario de su relación señal-ruido, más uno. Sin embargo, el logaritmo natural y el nat también se utilizan en notaciones alternativas para estas definiciones. [26]
Aunque el logaritmo natural es más importante que el logaritmo binario en muchas áreas de las matemáticas puras como la teoría de números y el análisis matemático , [27] el logaritmo binario tiene varias aplicaciones en combinatoria :
El logaritmo binario también aparece frecuentemente en el análisis de algoritmos , [19] no sólo por el uso frecuente de la aritmética de números binarios en los algoritmos, sino también porque los logaritmos binarios ocurren en el análisis de algoritmos basados en ramificaciones de dos vías. [14] Si un problema inicialmente tiene n opciones para su solución, y cada iteración del algoritmo reduce el número de opciones por un factor de dos, entonces el número de iteraciones necesarias para seleccionar una única opción es nuevamente la parte integral de log 2 n . Esta idea se utiliza en el análisis de varios algoritmos y estructuras de datos . Por ejemplo, en la búsqueda binaria , el tamaño del problema a resolver se reduce a la mitad con cada iteración y, por lo tanto, se necesitan aproximadamente log 2 n iteraciones para obtener una solución para un problema de tamaño n . [34] De manera similar, un árbol de búsqueda binario perfectamente equilibrado que contiene n elementos tiene una altura log 2 ( n + 1) − 1 . [35]
El tiempo de ejecución de un algoritmo generalmente se expresa en notación O grande , que se utiliza para simplificar expresiones omitiendo sus factores constantes y términos de orden inferior. Debido a que los logaritmos en diferentes bases difieren entre sí sólo por un factor constante, también se puede decir que los algoritmos que se ejecutan en tiempo O (log 2 n ) se ejecutan en, digamos, tiempo O (log 13 n ) . Por lo tanto , la base del logaritmo en expresiones como O (log n ) u O ( n log n ) no es importante y puede omitirse. [11] [36] Sin embargo, para los logaritmos que aparecen en el exponente de un límite de tiempo, la base del logaritmo no se puede omitir. Por ejemplo, O (2 log 2 n ) no es lo mismo que O (2 ln n ) porque el primero es igual a O ( n ) y el segundo a O ( n 0,6931... ) .
Los algoritmos con tiempo de ejecución O ( n log n ) a veces se denominan linealítmicos . [37] Algunos ejemplos de algoritmos con tiempo de ejecución O (log n ) u O ( n log n ) son:
Los logaritmos binarios también aparecen en los exponentes de los límites de tiempo para algunos algoritmos de divide y vencerás , como el algoritmo de Karatsuba para multiplicar números de n bits en el tiempo O ( n log 2 3 ) , [42] y el algoritmo de Strassen para multiplicar n × n matrices en el tiempo O ( n log 2 7 ) . [43] La aparición de logaritmos binarios en estos tiempos de ejecución se puede explicar haciendo referencia al teorema maestro de las recurrencias de divide y vencerás .
En bioinformática , los microarrays se utilizan para medir con qué fuerza se expresan diferentes genes en una muestra de material biológico. A menudo se comparan diferentes tasas de expresión de un gen utilizando el logaritmo binario de la relación de tasas de expresión: la relación logarítmica de dos tasas de expresión se define como el logaritmo binario de la relación de las dos tasas. Los logaritmos binarios permiten una comparación conveniente de las tasas de expresión: una tasa de expresión duplicada se puede describir mediante una proporción logarítmica de 1 , una tasa de expresión reducida a la mitad se puede describir mediante una proporción logarítmica de −1 y una tasa de expresión sin cambios se puede describir mediante una relación logarítmica de cero, por ejemplo. [44]
Los puntos de datos obtenidos de esta manera a menudo se visualizan como un diagrama de dispersión en el que uno o ambos ejes de coordenadas son logaritmos binarios de relaciones de intensidad, o en visualizaciones como los gráficos MA y RA que rotan y escalan estos diagramas de dispersión de relaciones logarítmicas. [45]
En teoría musical , el intervalo o diferencia perceptiva entre dos tonos está determinado por la relación de sus frecuencias. Los intervalos procedentes de proporciones de números racionales con numeradores y denominadores pequeños se perciben como especialmente eufónicos. El más simple e importante de estos intervalos es la octava , una relación de frecuencia de 2:1 . El número de octavas en las que se diferencian dos tonos es el logaritmo binario de su relación de frecuencia. [46]
Para estudiar los sistemas de afinación y otros aspectos de la teoría musical que requieren distinciones más finas entre tonos, es útil tener una medida del tamaño de un intervalo que sea más fina que una octava y que sea aditiva (como lo son los logaritmos) en lugar de multiplicativa (como lo son las frecuencias). las proporciones son). Es decir, si los tonos x , y y z forman una secuencia ascendente de tonos, entonces la medida del intervalo de x a y más la medida del intervalo de y a z debe ser igual a la medida del intervalo de x a z . Tal medida viene dada por la centésima , que divide la octava en 1200 intervalos iguales ( 12 semitonos de 100 centésimas cada uno). Matemáticamente, dados los tonos con frecuencias f 1 y f 2 , el número de centavos en el intervalo de f 1 a f 2 es [46]
La milioctava se define de la misma forma, pero con un multiplicador de 1000 en lugar de 1200 . [47]
En juegos competitivos y deportes en los que participan dos jugadores o equipos en cada juego o partido, el logaritmo binario indica el número de rondas necesarias en un torneo de eliminación simple necesarias para determinar un ganador. Por ejemplo, un torneo de 4 jugadores requiere log 2 4 = 2 rondas para determinar el ganador, un torneo de 32 equipos requiere log 2 32 = 5 rondas, etc. En este caso, para n jugadores/equipos donde n no es una potencia de 2, log 2 n se redondea hacia arriba ya que es necesario tener al menos una ronda en la que no jueguen todos los competidores restantes. Por ejemplo, log 2 6 es aproximadamente 2,585 , que se redondea a 3 , lo que indica que un torneo de 6 equipos requiere 3 rondas (dos equipos no participan en la primera ronda o un equipo no participa en la segunda ronda). También es necesario el mismo número de rondas para determinar un claro ganador en un torneo del sistema suizo . [48]
En fotografía , los valores de exposición se miden en términos del logaritmo binario de la cantidad de luz que llega a la película o al sensor, de acuerdo con la ley de Weber-Fechner que describe una respuesta logarítmica del sistema visual humano a la luz. Una sola parada de exposición es una unidad en una escala logarítmica de base 2 . [49] [50] Más precisamente, el valor de exposición de una fotografía se define como
donde N es el número f que mide la apertura de la lente durante la exposición y t es el número de segundos de exposición. [51]
Los logaritmos binarios (expresados como paradas) también se utilizan en densitometría , para expresar el rango dinámico de materiales fotosensibles o sensores digitales. [52]
Una manera fácil de calcular log 2 n en calculadoras que no tienen una función log 2 es usar las funciones de logaritmo natural ( ln ) o logaritmo común ( log o log 10 ), que se encuentran en la mayoría de las calculadoras científicas . Para cambiar la base del logaritmo de e o 10 a 2 se pueden utilizar las fórmulas : [50] [53]
o aproximadamente
El logaritmo binario se puede convertir en una función de números enteros y a números enteros redondeándolo hacia arriba o hacia abajo. Estas dos formas de logaritmo binario entero están relacionadas mediante esta fórmula:
La definición se puede ampliar definiendo . Ampliada de esta manera, esta función está relacionada con el número de ceros a la izquierda de la representación binaria sin signo de 32 bits de x , nlz( x ) .
El logaritmo binario entero se puede interpretar como el índice de base cero del bit más significativo de la entrada. En este sentido, es el complemento de la operación de búsqueda del primer conjunto , que encuentra el índice del bit menos significativo . Muchas plataformas de hardware incluyen soporte para encontrar el número de ceros a la izquierda u operaciones equivalentes, que pueden usarse para encontrar rápidamente el logaritmo binario. Las funciones fls
y flsl
en el kernel de Linux [55] y en algunas versiones de la biblioteca de software libc también calculan el logaritmo binario (redondeado a un número entero más uno).
Para un número real positivo general , el logaritmo binario se puede calcular en dos partes. [56] Primero, se calcula la parte entera , (llamada característica del logaritmo). Esto reduce el problema a uno donde el argumento del logaritmo está en un rango restringido, el intervalo [1, 2) , simplificando el segundo paso de calcular la parte fraccionaria (la mantisa del logaritmo). Para cualquier x > 0 , existe un número entero único n tal que 2 n ≤ x < 2 n +1 , o equivalentemente 1 ≤ 2 − n x < 2 . Ahora la parte entera del logaritmo es simplemente n , y la parte fraccionaria es log 2 (2 − n x ) . [56] En otras palabras:
Para números de punto flotante normalizados , la parte entera viene dada por el exponente de punto flotante, [57] y para números enteros se puede determinar realizando una operación de conteo de ceros a la izquierda . [58]
La parte fraccionaria del resultado es log 2 y y se puede calcular de forma iterativa, utilizando únicamente multiplicación y división elementales. [56] El algoritmo para calcular la parte fraccionaria se puede describir en pseudocódigo de la siguiente manera:
El resultado de esto se expresa mediante las siguientes fórmulas recursivas, en las cuales es el número de elevaciones al cuadrado requeridas en la i -ésima iteración del algoritmo:
En el caso especial en el que se encuentra que la parte fraccionaria en el paso 1 es cero, se trata de una secuencia finita que termina en algún punto. En caso contrario, se trata de una serie infinita que converge según el criterio de la razón , ya que cada término es estrictamente menor que el anterior (ya que todo m i > 0 ). Para uso práctico, esta serie infinita debe truncarse para llegar a un resultado aproximado. Si la serie se trunca después del i -ésimo término, entonces el error en el resultado es menor que 2 −( m 1 + m 2 + ⋯ + m i ) . [56]
La log2
función está incluida en las funciones matemáticas estándar de C. La versión predeterminada de esta función toma argumentos de doble precisión , pero sus variantes permiten que el argumento sea de precisión simple o doble largo . [59] En entornos informáticos que admiten números complejos y conversión de tipos implícita, como MATLAB , se permite que el argumento de la log2
función sea un número negativo , devolviendo uno complejo. [60]
IMLOG2
función para logaritmos binarios complejos: consulte Bourg, David M. (2006), Excel Scientific and Engineering Cookbook, O'Reilly Media, p. 232, ISBN 978-0-596-55317-3.En lo sucesivo, y a menos que se indique lo contrario, la notación log x siempre representa el logaritmo en base 2 de x.
A menos que se especifique lo contrario, llevaremos todos los logaritmos a base 2.
Uno de los aspectos interesantes y a veces incluso sorprendentes del análisis de estructuras de datos y algoritmos es la presencia ubicua de logaritmos... Como es costumbre en la literatura informática, omitimos escribir la base
b
del logaritmo cuando
b
= 2
.
en matemáticas y ciencias avanzadas el único logaritmo de importancia es el logaritmo natural.