Ирски логаритам
Ирски логаритaм ― поранешен систем за манипулација со броеви измислен од Перси Лудгејт за машинско множење. Системот користел комбинација од механички камери како табели за пребарување и механичко додавање на збирните псевдологаритамски индекси за производство на делумни производи, кои потоа биле додавани за да се добијат резултати.[1] Техниката е слична на Цеховиот логаритам (исто така познат како Јакобиев логаритам), но користи систем на индекси изворни на Лудгејт.[2]
Алгоритмот на Лудгејт го збива множењето на два единечни децимални броеви во две пребарување на табели (за претворање на цифрите во индекси), додавањето на двата индекса за да се создаде нов индекс кој е влезен во втората табела за пребарување што го создава излезниот производ.[3] Бидејќи и двете табели за пребарување се еднодимензионални, а додавањето на линеарни движења е едноставно механички имплементирано, ова овозможува помалку сложен механизам отколку што би бил потребен за имплементација на дводимензионална табела за пребарување множење 10x10.
Псевдокод
уредиСледното е применување на ирскиот логаритам на Лудгејт во програмскиот јазик Python:
table1 = [50, 0, 1, 7, 2, 23, 8, 33, 3, 14]
table2 = [ 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 product(a, b):
return table2[table1[a] + table1[b]]
Табела 1 е преземена од изворниот труд на Лудгејт; со оглед на првата табела, содржината на Табела 2 може тривијално да се изведе од Табела 1 и дефиницијата на алгоритмот. Имајте предвид дека последната третина од втората табела е целосно нули, ова може да се искористи за дополнително да се поедностави механичката примена на алгоритмот.
Поврзано
уреди- Фабер-Кастел модел 366, правило за слајдови што функционира на слично начело дизајниран од Јоханес Шумахер
Наводи
уреди- ↑ Randall, Brian (октомври 1982). „From Analytical Engine to Electronic Digital Computer:The Contributions of Ludgate, Torres, and Bush“ (PDF). Annals of the History of Computing. 4 (4): 20. Архивирано од изворникот (PDF) на 28 декември 2019. Посетено на 21 јануари 2023.
- ↑ de Man, Andries. „Irish Logarithms Part 2 – Calculating History“. sites.google.com. Архивирано од изворникот на 23 февруари 2020. Посетено на 21 јануари 2023.
- ↑ de Man, Andries. „Irish Log Animation“. Архивирано од изворникот на 23 февруари 2020. Посетено на 21 јануари 2023.
Дополнителна книжевност
уреди- Boys, C.V., „A New Analytical Engine“, Nature, км. 81, бр. 2070, 1 јули 1904 година, стр. 14–15.
- Randell, B., „Ludgate's analytical machine of 1909“, The Computer Journal, том 14, број 3, 1971 година, страници 317–326, https://doi.org/10.1093/comjnl/14.3.317 Го вклучува текстот на Лудгејтовиот изворен труд.
Надворешни врски
уреди- A detailed treatment of Ludgate's Irish Logarithms, Brian Coghlan, 2019 (Archived from original link)
- Transcript of "On a Proposed Analytical Machine" by Percy Ludgate (first published in Scientific Proceedings of the Royal Dublin Society 1909 vol 12 pages 77–91), containing Ludgate's own description of the Irish logarithm tables
- A reproduction of Ludgate's original 1909 paper, from The origins of digital computers : selected papers. Randell, Brian, 1936-. Berlin: Springer-Verlag. 1973. стр. 71. ISBN 978-3-642-96145-8. OCLC 858931618.CS1-одржување: друго (link)
- Method for deriving Ludgate's Irish Logarithms from first principles, Brian Coghlan, 2022)