Папирус Ахмеса — один из древнейших сохранившихся математических документов. Ему около 3800 лет. Большую его часть занимает таблица значений дробей вида (\frac{2}{n}) для нечётных (n). У египтян не было общей записи для произвольных дробей — они записывали только единичные дроби вида (\frac{1}{n}) и их суммы. Но использовать одну и ту же единичную дробь дважды было нельзя. Так, (\frac{3}{5}) записывали как (\frac{1}{2}+\frac{1}{10}) (в сокращённой записи — ([2,10])).
Есть простой жадный алгоритм для поиска такого представления: берём самую крупную единичную дробь, которая меньше исходной, вычитаем её и повторяем. Он всегда работает, но не всегда хорошо. Для (\frac{2}{9}) жадный метод даёт ([5,45]), хотя есть более удобный вариант ([6,18]). Для (\frac{19}{20}) получается ([2,3,9,180]), хотя есть куда более короткие представления.
Автора долго мучил вопрос: почему Ахмес составил таблицу только для (\frac{2}{n})? А где таблицы для (\frac{3}{n}) и прочих? Ответ: они не нужны. Таблицы (\frac{2}{n}) достаточно.
Как это работает? Допустим, нужно (\frac{3}{7}). Смотрим (\frac{2}{7}) в таблице — это ([4,28]), добавляем (\frac{1}{7}) и получаем ([4,7,28]). Готово. Для (\frac{4}{7}) берём (\frac{2}{7}+\frac{2}{7}=[4,4,28,28]=[2,14]). Для (\frac{5}{7}) — ([2,7,14]). Для (\frac{6}{7}) сначала находим (\frac{3}{7}=[4,7,28]), удваиваем, получаем (\frac{1}{2}+\frac{2}{7}+\frac{1}{14}), и снова используем таблицу для (\frac{2}{7}).
Общий алгоритм прост: чтобы сложить две египетские дроби, объединяем их списки. Если какая-то дробь повторяется дважды, а знаменатель чётный — заменяем пару (\frac{1}{2n}+\frac{1}{2n}) на (\frac{1}{n}). Если знаменатель нечётный — смотрим в таблицу (\frac{2}{n}) и подставляем оттуда. Чтобы удвоить дробь, складываем её с собой. Чтобы вычислить (\frac{a}{b}), где (a=2k), сначала находим (\frac{k}{b}) и удваиваем. Если (a) нечётное — находим (\frac{a-1}{b}) и добавляем (\frac{1}{b}).
Автор на практике вычисляет (\frac{19}{20}) через двоичное разложение числителя — метод, который египтяне точно знали, потому что они именно так умножали: раскладывали множитель на степени двойки. Получается ([2,5,6,12]). Можно улучшить до ([2,4,5]), заметив, что ([6,12]=[4]). Но даже без этого результат хорош — и не требует никаких хитростей, только механическое применение правил и таблицу (\frac{2}{n}). Саму таблицу составить непросто — там нужен перебор и теория чисел. Но раз она есть — любая задача деления решается простым перемалыванием.