stringtranslate.com

Жадный алгоритм для египетских дробей

В математике жадный алгоритм для египетских дробей — это жадный алгоритм , впервые описанный Фибоначчи , для преобразования рациональных чисел в египетские дроби . Египетская дробь — это представление несократимой дроби в виде суммы отдельных единичных дробей , таких как 5/6 = 1/2 + 1/3 . Как следует из названия, эти представления использовались еще в Древнем Египте , но первый опубликованный систематический метод построения таких расширений был описан в 1202 году в Liber Abaci Леонардо Пизанского (Фибоначчи). [1] Он называется жадным алгоритмом, потому что на каждом шаге алгоритм жадно выбирает наибольшую возможную единичную дробь , которая может быть использована в любом представлении оставшейся дроби.

Фибоначчи на самом деле перечисляет несколько различных методов построения представлений египетских дробей. [2] Он включает жадный метод как последнее средство для ситуаций, когда несколько более простых методов не срабатывают; см. Египетские дроби для более подробного списка этих методов. Как подробно описывает Зальцер (1948), жадный метод и его расширения для аппроксимации иррациональных чисел были повторно открыты несколько раз современными математиками, самым ранним и наиболее известным из которых был Дж. Дж. Сильвестр  (1880) [3] Близкий к нему метод расширения, который производит более близкие аппроксимации на каждом шаге, позволяя некоторым единичным дробям в сумме быть отрицательными, восходит к Ламберту (1770).

Расширение, полученное этим методом для числа, называется жадным египетским расширением , расширением Сильвестра или расширением Фибоначчи–Сильвестра . Однако термин расширение Фибоначчи обычно относится не к этому методу, а к представлению целых чисел в виде сумм чисел Фибоначчи .

Алгоритм и примеры

Алгоритм Фибоначчи расширяет дробь, которую нужно представить, многократно выполняя замену (упрощая второй член в этой замене по мере необходимости). Например: в этом расширении знаменатель 3 первой единичной дроби является результатом округления 15/7 до следующего большего целого числа, а оставшаяся дробь 2/15 является результатом упрощения −15 мод 7/15 × 3  =  6/45 . Знаменатель второй единичной дроби, 8, является результатом округления 15/2 до следующего большего целого числа, а оставшаяся дробь 1/120 это то, что осталось от 7/15 после вычитания обоих 1/3 и 1/8 .

Поскольку каждый шаг расширения уменьшает числитель оставшейся дроби, подлежащей расширению, этот метод всегда заканчивается конечным расширением; однако, по сравнению с древнеегипетскими расширениями или более современными методами, этот метод может производить расширения, которые довольно длинные, с большими знаменателями. Например, этот метод расширяет, в то время как другие методы приводят к гораздо лучшему расширению . Вагон (1991) предлагает еще более плохо себя ведущий пример, 31/311 . Жадный метод приводит к расширению с десятью членами, последний из которых имеет более 500 цифр в знаменателе; однако, 31/311 имеет гораздо более короткое нежадное представление, 1/12 + 1/63 + 1/2799 + 1/8708 .

Последовательность Сильвестра и ее ближайшее приближение

Последовательность Сильвестра 2, 3, 7, 43, 1807, ... ( OEIS : A000058 ) можно рассматривать как сгенерированную бесконечным жадным расширением этого типа для числа 1, где на каждом шаге мы выбираем знаменатель у/х ⌋ + 1 вместоу/х . Усечение этой последовательности до k членов и формирование соответствующей египетской дроби, например (для k  = 4), приводит к максимально возможной недооценке 1 любой k -членной египетской дробью. [4] То есть, например, любая египетская дробь для числа в открытом интервале (1805/1806 , 1) требует по крайней мере пяти членов. Кертисс (1922) описывает применение этих результатов наилучшего приближения для нижней границы числа делителей совершенного числа , в то время как Стонг (1983) описывает приложения в теории групп .

Расширения максимальной длины и условия конгруэнтности

Любая дробь х/у требует максимум x членов в своем жадном расширении. Мэйс (1987) и Фрейтаг и Филлипс (1999) исследуют условия, при которых жадный метод производит расширение х/у с ровно x членами; их можно описать в терминах условий конгруэнтности по y .

В более общем смысле последовательность дробей х/у которые имеют x -членные жадные расширения и которые имеют наименьший возможный знаменатель y для каждого x, есть

(последовательность A048860 в OEIS ).

Аппроксимация корней полинома

Stratemeyer (1930) и Salzer (1947) описывают метод нахождения точного приближения для корней многочлена, основанный на жадном методе. Их алгоритм вычисляет жадное расширение корня; на каждом шаге этого расширения он сохраняет вспомогательный многочлен, имеющий в качестве корня оставшуюся дробь для расширения. Рассмотрим в качестве примера применение этого метода для нахождения жадного расширения золотого сечения , одного из двух решений полиномиального уравнения P 0 ( x ) = x 2x − 1 = 0 . Алгоритм Stratemeyer и Salzer выполняет следующую последовательность шагов:

  1. Поскольку P 0 ( x ) < 0 для x  = 1 и P 0 ( x ) > 0 для всех x ≥ 2 , должен быть корень P 0 ( x ) между 1 и 2. То есть первый член жадного расширения золотого сечения равен 1/1 . Если x 1 — оставшаяся дробь после первого шага жадного расширения, то она удовлетворяет уравнению P 0 ( x 1 + 1) = 0 , которое можно разложить как P 1 ( x 1 ) = x2
    1
    + х 1 − 1 = 0
    .
  2. Так как P 1 ( x ) < 0 для x  =  1/2 , и P 1 ( x ) > 0 для всех x > 1 , корень P 1 лежит между 1/2 и 1, а первый член в его жадном разложении (второй член в жадном разложении для золотого сечения) равен 1/2 . Если x 2 — оставшаяся дробь после этого шага жадного расширения, то она удовлетворяет уравнению P 1 ( x 2 + 1/2 ) ​​= 0 , что можно разложить как P 2 ( x 2 ) = 4 x2
    2
    + 8 х 2 − 1 = 0
    .
  3. Так как P 2 ( x ) < 0 для x  =  1/9 , и P 2 ( x ) > 0 для всех x > 1/8 , следующий член в жадном расширении —1/9 . Если x 3 — оставшаяся дробь после этого шага жадного расширения, то она удовлетворяет уравнению P 2 ( x 3 + 1/9 ) ​​= 0 , которое снова можно разложить как полиномиальное уравнение с целыми коэффициентами, P 3 ( x 3 ) = 324 x2
    3
    + 720 х 3 − 5 = 0
    .

Продолжение этого процесса приближения в конечном итоге приводит к жадному расширению золотого сечения,

(последовательность A117116 в OEIS ).

Другие целочисленные последовательности

Длина, минимальный знаменатель и максимальный знаменатель жадного расширения для всех дробей с малыми числителями и знаменателями могут быть найдены в On-Line Encyclopedia of Integer Sequences как последовательности OEIS : A050205 , OEIS : A050206 и OEIS : A050210 , соответственно. Кроме того, жадное расширение любого иррационального числа приводит к бесконечно возрастающей последовательности целых чисел, и OEIS содержит расширения нескольких хорошо известных констант. Некоторые дополнительные записи в OEIS, хотя и не помечены как созданные жадным алгоритмом, по-видимому, относятся к тому же типу.

Связанные расширения

В общем случае, если требуется египетское дробное разложение, в котором знаменатели ограничены каким-либо образом, можно определить жадный алгоритм, в котором на каждом шаге выбирается разложение, где выбирается, среди всех возможных значений, удовлетворяющих ограничениям, как можно меньшее, такое что и такое что отличается от всех ранее выбранных знаменателей. Примерами методов, определенных таким образом, являются разложение Энгеля , в котором каждый последующий знаменатель должен быть кратным предыдущему, и нечетное жадное разложение , в котором все знаменатели ограничены нечетными числами.

Однако может быть сложно определить, всегда ли алгоритм такого типа может успешно найти конечное расширение. В частности, неизвестно, заканчивается ли нечетное жадное расширение конечным расширением для всех дробей, для которых нечетно, хотя можно найти конечные нечетные расширения для этих дробей нежадными методами.

Примечания

  1. ^ Сиглер 2002.
  2. ^ Сиглер 2002, глава II.7
  3. См., например, Cahen (1891) и Spiess (1907).
  4. ^ Кёртисс 1922; Саундарараджан 2005 г.

Ссылки