stringtranslate.com

logaritmo irlandés

El logaritmo irlandés fue un sistema de manipulación de números inventado por Percy Ludgate para la multiplicación mecánica. El sistema utilizaba una combinación de levas mecánicas como tablas de búsqueda y suma mecánica para sumar índices pseudologarítmicos para producir productos parciales, que luego se sumaban para producir resultados. [1]

La técnica es similar a los logaritmos de Zech (también conocidos como logaritmos de Jacobi), pero utiliza un sistema de índices original de Ludgate. [2]

Concepto

El algoritmo de Ludgate comprime la multiplicación de dos números decimales únicos en dos búsquedas de tablas (para convertir los dígitos en índices), la suma de los dos índices para crear un nuevo índice que se ingresa en una segunda tabla de búsqueda que genera el producto de salida. [3] Debido a que ambas tablas de búsqueda son unidimensionales y la suma de movimientos lineales es simple de implementar mecánicamente, esto permite un mecanismo menos complejo que el que se necesitaría para implementar una tabla de búsqueda de multiplicación bidimensional de 10 × 10.

Ludgate afirmó que eligió deliberadamente los valores de sus tablas para que fueran lo más pequeños posible; Teniendo esto en cuenta, las tablas de Ludgate se pueden construir simplemente a partir de los primeros principios, ya sea mediante métodos de lápiz y papel o mediante una búsqueda sistemática utilizando sólo unas pocas decenas de líneas de código de programa. [4] No corresponden ni a logaritmos de Zech, ni a índices de Remak ni a índices de Korn. [4]

Pseudocódigo

La siguiente es una implementación del algoritmo del logaritmo irlandés de Ludgate en el lenguaje de programación Python :

tabla1  =  [ 50 ,  0 ,  1 ,  7 ,  2 ,  23 ,  8 ,  33 ,  3 ,  14 ]tabla2  =  [  1 ,  2 ,  4 ,  8 ,  16 ,  32 ,  64 ,  3 ,  6 ,  12 ,  24 ,  48 ,  0 ,  0 ,  9 ,  18 ,  36 ,  72 ,  0 ,  0 ,  0 ,  27 ,  54 ,  5 ,  10 ,  20 ,  40 ,  0 ,  81 ,  0 ,  15 ,  30 ,  0 ,  7 ,  14 ,  28 ,  56 ,  45 ,  0 ,  0 ,  21 ,  42 ,  0 ,  0 ,  0 ,  0 ,  25 ,  63 ,  0 ,  0 ,  0 ,  0 ,  0 , 0 , 0 , 0 , 35 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,  49 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ]                                               def  producto ( a :  int ,  b :  int )  ->  int : """Algoritmo del logaritmo irlandés de Ludgate.""" return tabla2 [ tabla1 [ a ] ​​+ tabla1 [ b ]]     

La tabla 1 está tomada del artículo original de Ludgate; Dada la primera tabla, el contenido de la Tabla 2 se puede derivar trivialmente de la Tabla 1 y la definición del algoritmo. Tenga en cuenta que, dado que el último tercio de la segunda tabla es completamente ceros, esto podría aprovecharse para simplificar aún más la implementación mecánica del algoritmo.

Ver también

Referencias

  1. ^ Randall, Brian (octubre de 1982). "Del motor analítico a la computadora digital electrónica: las contribuciones de Ludgate, Torres y Bush" (PDF) . Anales de la Historia de la Computación . 4 (4): 20. Archivado (PDF) desde el original el 28 de diciembre de 2019 . Consultado el 28 de diciembre de 2019 .
  2. ^ de Man, Andries. "Logaritmos irlandeses, parte 2: cálculo del historial". sitios.google.com . Archivado desde el original el 23 de febrero de 2020 . Consultado el 28 de diciembre de 2019 .
  3. ^ de Man, Andries. "Animación de troncos irlandeses". Archivado desde el original el 23 de febrero de 2020 . Consultado el 29 de diciembre de 2019 .
  4. ^ ab Coghlan, Brian (10 de junio de 2020). "Índices logarítmicos de Percy Ludgate" (PDF) . tesoros.scss.tcd.ie . Consultado el 1 de octubre de 2023 .

Otras lecturas

enlaces externos