Автор оригинала: Manon Bischoff

На современных калькуляторах полно кнопок: синус, квадратный корень, число π, возведение в степень. Но, оказывается, хватило бы двух.

Лицевая панель калькулятора
Лицевая панель калькулятора

Фото: Coyau / Wikimedia Commons / CC BY-SA 3.0

Когда-то, чтобы вычислить, скажем, логарифм числа, требовались время, терпение и подходящий справочник. Работа бывала нудной, но иногда приводила к неожиданным открытиям. Астроном Саймон Ньюкомб, листая таблицы логарифмов, заметил, что страницы со значениями, начинающимися с цифры 1, истрёпаны гораздо сильнее остальных. Из этого наблюдения в итоге вырос так называемый закон Бенфорда, который описывает распределение некоторых случайных чисел.

Будь тогда калькуляторы, закон Бенфорда могли бы и не открыть. И всё же я рада, что ни в школе, ни в университете, ни на работе мне не пришлось сражаться с таблицами логарифмов и прочими сборниками формул. Расставаться с инженерным калькулятором мне бы не хотелось: в нём уже заложены важные константы вроде π и числа Эйлера, а кубический корень или логарифм он считает одним нажатием кнопки.

Но, как показывает физик Анджей Одживолек из Ягеллонского университета в Польше в препринте, вышедшем в марте 2026 года, калькулятор можно устроить намного проще: для элементарных вычислений и функций инженерного калькулятора достаточно двух кнопок. Тангенс, квадратный корень, π, возведение в степень — всё это кодируется только числом 1 и оператором eml(x, y) = exp(x) − ln(y). С тех пор его работу проверили с помощью программы для проверки доказательств: она шаг за шагом проходит логические выводы и убеждается, что всё верно.

С 36 до двух

В зависимости от модели калькулятор справляется с задачами разной сложности. Одни модели умеют только четыре арифметических действия: сложение, вычитание, умножение и деление. Другие вычисляют тригонометрические функции, извлекают корни и считают логарифмы. Такой калькулятор был у меня в школе. А вот графическими пользоваться не разрешали: они умеют сами решать уравнения и строить графики функций.

Одживолек в своей работе ссылается на 36 величин и операций, которые есть на обычных школьных инженерных калькуляторах, включая уже упомянутые тригонометрические функции, возведение в степень и так далее. «Высшая математика показывает, что многие из этих [функций] избыточны: например, тригонометрические сводятся к комплексной экспоненте. Как далеко может зайти такое сокращение?» — спрашивает он в статье.

Физик предположил, что для построения всех 36 функций и величин может хватить одной функции и одного числа. «Звучит правдоподобно, — говорит математик Мануэль Кауэрс из Университета Иоганна Кеплера в Линце (Австрия), не участвовавший в этой работе. — Класс элементарных функций не особенно богат».

Это предположение подкрепляется и техникой. Ещё в 1913 году математик Генри Шеффер доказал, что цифровые вычисления можно выполнять с помощью единственного логического оператора, «вентиля И-НЕ» (NAND). Благодаря этому открытию чрезвычайно сложные компьютерные вычисления можно строить на транзисторах одного типа.

Всемогущая функция

В поисках единственной функции для своего калькулятора Одживолек сначала обратился к набору инструкций распространённой системы компьютерной алгебры Wolfram Mathematica. Этот набор выводит элементарные операции всего из семи функций. Он «послужил эталоном уже оптимизированной [системы]… тщательно проверенной почти за 40 лет», пишет учёный.

Чтобы сократить набор инструкций ещё сильнее, физик написал программу для систематического поиска. Получив кандидата на роль универсальной операции, она перебирает все способы выразить через него 36 элементарных функций, чисел и важных констант. После множества попыток Одживолек пришёл к выводу, что основой для восстановления элементарных функций может служить 1 в сочетании с eml(x, y). Название eml — это exponential-minus-logarithm, «экспонента минус логарифм».

Например, чтобы получить число Эйлера e, достаточно вычислить eml(1, 1), потому что exp(1) − ln(1) = e. Но для вычитания или тригонометрических функций оператор eml приходится вкладывать сам в себя много раз, то есть подставлять eml в eml снова и снова. Для синуса, например, нужно больше 10 уровней вложенности подряд, и это уже довольно громоздко.

Спираль из функций калькулятора, которые выводятся из eml
Спираль из функций калькулятора, которые выводятся из eml

Спираль показывает, как разные элементарные функции и величины получаются из операции eml. Стрелки указывают, из каких элементов составляются величины. Источник: «All Elementary Functions from a Single Binary Operator», Анджей Одживолек, препринт от 23 марта 2026 года, https://arxiv.org/abs/2603.21852

Быстро возникают и другие трудности. Даже в прикладной математике иногда приходится иметь дело с комплексными числами, в которых участвуют квадратные корни из отрицательных чисел. Но логарифм комплексного числа определён неоднозначно, поэтому нужно выбирать «ветвь», то есть конкретный участок, где логарифм принимает определённое значение. Поэтому, пишет Одживолек, реализовывать структуру eml следует очень аккуратно, иначе результаты будут неверными.

Кроме того, eml и 1 — не единственная комбинация функции и числа, из которой выводятся элементарные операции. Как обнаружил физик, полноценный инженерный калькулятор можно построить и на функции edl(x, y), «экспонента, делённая на логарифм», вместе с числом e. Возможны и другие решения.

EML и машинное обучение

Результат Одживолека кажется мне очень интересным с теоретической точки зрения, но практических применений у него, похоже, немного. Калькулятор с двумя кнопками был бы, например, невероятно компактным, но едва ли удобным. Чтобы получить число 0, пришлось бы выполнить такое вычисление: eml(1, eml(eml(1, 1), 1)) = eml(1, eml(e, 1)) = eml(1, e^e) = e − e × ln(e) = 0. Даже для ввода простейших чисел нужны время и терпение, а заодно и определённые способности к счёту.

Одживолек предложил и другое применение, в области нейронных сетей. Эти алгоритмы ИИ построены на элементарных функциях, которые можно представить структурой eml. Это могло бы дать преимущества: вместо нескольких разных функциональных блоков и таблиц поиска для обычных операций нейросетей вроде ReLU, tanh, GELU или синуса можно было бы использовать одинаковые ячейки eml, примерно как вентили NAND на компьютерных чипах.

Эймен Ипек, исследователь из Технического университета Граца (Австрия), проверил эту идею в препринте, опубликованном на arXiv.org в апреле 2026 года. Он заменил часть нейросети для расчёта силовых установок электромобилей структурой eml. И хотя архитектура кода может выглядеть проще, вычислительных операций требуется значительно больше, выяснил он. ReLU, tanh и подобные функции — это одна операция, а выполнение функции eml требует 111 операций. Так что до практического применения компьютера на eml ещё далеко, если оно вообще когда-нибудь случится.

Примечание переводчика: в препринте Ипека это теоретический анализ предложенной архитектуры, реализацию и бенчмарки автор оставляет на будущее. Оценки там такие: ReLU — 1 операция с плавающей точкой, tanh — около 20, GELU — около 30, eml — около 111 (двойная точность, обычный x86).

Статья впервые вышла в журнале Spektrum der Wissenschaft и перепечатана с разрешения. С немецкого оригинала на английский её перевели с помощью искусственного интеллекта, текст проверили редакторы Scientific American.