Irländsk logaritm

Irländska logaritmer var ett system för talmanipulation som uppfanns av Percy Ludgate för maskinell multiplikation. Systemet använde en kombination av mekaniska kammar som uppslagstabeller och mekanisk addition för att summera pseudologaritmiska index för att producera delprodukter, som sedan lades till för att ge resultat. Tekniken liknar Zech-logaritmer (även känd som Jacobi-logaritmer), men använder ett system av index som är original till Ludgate.

Ludgates algoritm komprimerar multiplikationen av två enkla decimaltal till två tabelluppslagningar (för att omvandla siffrorna till index), tillägget av de två indexen för att skapa ett nytt index som matas in i en andra uppslagstabell som genererar utdataprodukten. Eftersom båda uppslagstabellerna är endimensionella och tillägget av linjära rörelser är enkelt att implementera mekaniskt, tillåter detta en mindre komplex mekanism än vad som skulle behövas för att implementera en tvådimensionell 10x10 multiplikationsuppslagstabell.

Pseudokod

Följande är en implementering av Ludgates irländska logaritmalgoritm i programmeringsspråket Python :

   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  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

  
        tabell  1  =  [  50  ,  ,  1  ,  7  ,  2  ,  23  ,  8  ,  33  ,  3  ,  14  ]  tabell  2  =  [  1  ,  2  ,  4  ,  8  ,  16  ,  32  ,  64  ,  3  ,  6  ,  12  ,  44  ,  24  ,  9  ,  18  ,  36  ,  72  ,  ,  ,  , ,  27  ,  54  ,  5  ,  10  ,  20  ,  40  ,  81  ,  ,  15  ,  30  ,  ,  ,  7  ,  14  ,  28  ,  56  ,  2  ,  4  ,  4  ,  2  ,  4  ,  ,  ,  25  ,  63  ,  ,  ,  ,  ,  ,  ,  ,  35  ,  ,  ,  ,  ,  ,  ,  ,  49  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  _  _  _  _  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ]  def  produkt  (  a  ,  b  )  :  returnera  tabell2  [  tabell1  [  a  ]  ​​+  tabell1  [  b  ]] 

Tabell 1 är hämtad från Ludgates originalpapper; givet den första tabellen kan innehållet i Tabell 2 trivialt härledas från Tabell 1 och definitionen av algoritmen. Observera att eftersom den sista tredjedelen av den andra tabellen är helt noll, kan detta utnyttjas för att ytterligare förenkla en mekanisk implementering av algoritmen.

Se även

Vidare läsning

  • Boys, CV, "A New Analytical Engine," Nature , Vol. 81, nr 2070, 1 juli 1904, s. 14–15.
  • Randell, B., "Ludgate's analytical machine of 1909", The Computer Journal , Volym 14, Issue 3, 1971, sidorna 317–326, https://doi.org/10.1093/comjnl/14.3.317 Inkluderar texten från Ludgates originalpapper.

externa länkar