Дополнительная цепочка
В математике цепочка сложения для вычисления положительного целого числа n может быть задана последовательностью натуральных чисел , начинающихся с 1 и заканчивающихся n , так что каждое число в последовательности представляет собой сумму двух предыдущих чисел. Длина цепочки сложения — это количество сумм, необходимых для выражения всех ее чисел, которое на единицу меньше мощности последовательности чисел. [1]
Примеры
[ редактировать ]Например: (1,2,3,6,12,24,30,31) — цепочка сложения для 31 длины 7, так как
- 2 = 1 + 1
- 3 = 2 + 1
- 6 = 3 + 3
- 12 = 6 + 6
- 24 = 12 + 12
- 30 = 24 + 6
- 31 = 30 + 1
Цепочки сложения можно использовать для возведения в степень цепочки сложения . Этот метод позволяет выполнять возведение в степень с целочисленными показателями, используя количество умножений, равное длине цепочки сложения показателя степени. Например, цепочка сложения числа 31 приводит к методу вычисления 31-й степени любого числа n с использованием только семи умножений вместо 30 умножений, которые можно было бы получить при повторном умножении, и восьми умножений с возведением в степень путем возведения в квадрат :
- н 2 = п × п
- н 3 = п 2 × н
- н 6 = п 3 × н 3
- н 12 = п 6 × н 6
- н 24 = п 12 × н 12
- н 30 = п 24 × н 6
- н 31 = п 30 × н
Методы вычисления цепочек сложения
[ редактировать ]Вычислить цепочку сложения минимальной длины непросто; обобщенный вариант задачи, в котором необходимо найти цепочку, одновременно образующую каждое из последовательностей значений, является NP-полной. [2] Не существует известного алгоритма, который мог бы вычислить минимальную цепочку сложения для заданного числа с какими-либо гарантиями разумного времени или небольшого использования памяти. Однако известно несколько методов расчета относительно коротких цепочек, которые не всегда оптимальны. [3]
Одним из очень хорошо известных методов расчета относительно коротких цепочек сложения является бинарный метод , аналогичный возведению в степень возведением в квадрат . В этом методе цепочка сложения числа получается рекурсивно, из цепочки сложения для . Если четно, его можно получить в одну дополнительную сумму, как . Если нечетно, этот метод использует две суммы для его получения путем вычисления а затем добавив один. [3]
Факторный метод нахождения цепочек сложения основан на простой факторизации числа быть представленным. Если есть номер в качестве одного из его главных множителей, то цепочка сложения для можно получить, начав с цепочки для , а затем соединив с ним цепочку для , модифицированный путем умножения каждого из его чисел на . Идеи факторного метода и бинарного метода можно объединить в m-арный метод Брауэра, выбрав любое число. (независимо от того, делит ли оно ), рекурсивно строя цепочку для , объединяя цепочку для (модифицировано так же, как указано выше), чтобы получить , а затем прибавляем остаток. Дополнительные усовершенствования этих идей привели к созданию семейства методов, называемых методами скользящего окна . [3]
Длина цепи
[ редактировать ]Позволять обозначаю самый маленький так что существует цепочка сложениядлины который вычисляет .Известно, что
- ,
где - вес Хэмминга (число единиц) двоичного разложения . [4]
Можно получить цепочку сложения для из цепочки сложения для включив одну дополнительную сумму , откуда следует неравенство от длины цепей для и . Однако это не всегда равенство,как в некоторых случаях может иметь более короткую цепочку, чем полученная таким способом. Например, , заметил Кнут. [5] Это возможно даже для иметь более короткую цепочку, чем , так что ; самый маленький для чего это происходит , [6] за которым следует , и так далее (последовательность A230528 в OEIS ).
Цепь Брауэр
[ редактировать ]Цепь Брауэра или цепочка звездчатого сложения — это цепочка сложения, в которой каждая из сумм, используемых для расчета ее чисел, использует непосредственно предыдущее число. Число Брауэра — это число, для которого оптимальна цепочка Брауэра. [5]
Брауэр доказал, что
- л * (2 н −1) ≤ n − 1 + l * ( н )
где — длина самой короткой звездной цепочки. Для многих значений n , и в частности для n < 12509 , они равны: [7] л ( п )= л * ( н ) . Но Хансен показал, что существуют некоторые значения n , для которых l ( n ) ≠ l * ( n ) , например n = 2 6106 + 2 3048 + 2 2032 + 2 2016 + 1, который имеет l * ( п ) знак равно 6110, л ( п ) ≤ 6109 . Наименьшее такое n равно 12509.
Гипотеза Шольца
[ редактировать ]Гипотеза Шольца (иногда называемая гипотезой Шольца-Брауэра или гипотезой Брауэра-Шольца ), названная в честь Арнольда Шольца и Альфреда Т. Брауэра), представляет собой гипотезу 1937 года, утверждающую, что
Известно, что это неравенство справедливо для всех чисел Хансена, являющихся обобщением чисел Брауэра; Нил Клифт проверил с помощью компьютера, что все являются Хансеном (а 5784689 — нет). [6] Клифт далее подтвердил, что на самом деле для всех . [5]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ DE Кнут, Искусство компьютерного программирования , Том 2, «Получисловые алгоритмы», раздел 4.6.3, 3-е издание, 1997 г.
- ^ Дауни, Питер; Леонг, Бентон; Сетхи, Рави (1981), «Вычисление последовательностей с цепочками сложения», SIAM Journal on Computing , 10 (3): 638–646, doi : 10.1137/0210047 . В ряде других статей со ссылкой на эту статью утверждается, что поиск кратчайшей цепочки сложения для одного числа является NP-полной, но она не утверждает и не доказывает такой результат.
- ^ Jump up to: Перейти обратно: а б с Отто, Мартин (2001), Цепочки сложения-вычитания Брауэра (PDF) , Diplomarbeit, Университет Падерборна, заархивировано из оригинала (PDF) 19 октября 2013 г. , получено 19 октября 2013 г.
- ^ Шенхаге, Арнольд (1975), «Нижняя граница длины цепочек сложения», Theoretical Computer Science , 1 (1): 1–12, doi : 10.1016/0304-3975(75)90008-0
- ^ Jump up to: Перейти обратно: а б с Гай (2004) стр.169
- ^ Jump up to: Перейти обратно: а б Клифт, Нил Майкл (2011). «Расчет оптимальных цепочек сложения» (PDF) . Вычисление . 91 (3): 265–284. дои : 10.1007/s00607-010-0118-8 .
- ^ Ахим Фламменкамп, Кратчайшие цепочки сложения
- Брауэр, Альфред (1939). «О цепочках сложения» . Бюллетень Американского математического общества . 45 (10): 736–739. дои : 10.1090/S0002-9904-1939-07068-7 . ISSN 0002-9904 . МР 0000245 .
- Ричард К. Гай (2004). Нерешенные проблемы теории чисел . Спрингер-Верлаг . ISBN 978-0-387-20860-2 . OCLC 54611248 . Збл 1058.11001 . Раздел С6.
Внешние ссылки
[ редактировать ]- http://wwwhomes.uni-bielefeld.de/achim/addition_chain.html
- Последовательность OEIS A003313 (Длина кратчайшей цепи присоединения для n) . Обратите внимание, что начальная «1» не учитывается (поэтому элемент №1 в последовательности равен 0).
- Ф. Бержерон, Ж. Берстель. С. Брлек «Эффективное вычисление цепочек сложения»