Некоторые свойства аддитивных цепочек

advertisement
Некоторые свойства аддитивных цепочек
Костюрина Екатерина (ученица 10 класса ГОУ Лицея №1303)
Научный руководитель: Привалов Александр Андреевич
Дадим необходимые определения:
Аддитивной цепочкой для числа р называется последовательность
натуральных чисел 1, 2, а2, а3, …, аn= p где каждый следующий член
получается путем сложения каких-либо двух предыдущих:
аi = аj + аk, k ≤ j < i, i = 1, 2, …, n,
при этом число n называется длиной аддитивной цепочки.
l(p) – будем обозначать минимальное из чисел n число, т.е. минимальную
длину аддитивной цепочки для числа p:
1, 2, а2, а3, …, аl(p)= p, где l(p) = min{n: 1, 2, а2, а3, …, аn= p}
Для удобства, под l(p) будем понимать также некоторую минимальную
аддитивную цепочку для р.
Цепочкой Брауэра называется аддитивная цепочка, в которой каждый
следующий член образуется с использованием предыдущего:
аi = аi-1 + аk, k < i, i = 1, 2, …, n.
Цепочкой Хансена называется аддитивная цепочка, для которой существует
подмножество Н = {1, 2, b1…, bm}, состоящее из элементов, таких, что
каждый член цепочки образуется из наибольшего элемента из Н, который
меньше этого члена.
аi = bp + аk, bp = max{bH, b < аi}, i = 1, 2, …, n.
Минимальные аддитивные цепочки Брауэра и Хансена для р будем
обозначать lB(p) и lH(p) соответственно.
Проблема определения l(p) связана с задачей эффективного вычисления хр
по данным х и р, где р – натуральное число. Согласно Кнуту [3, стр. 503, 507]
эта проблема, по-видимому, впервые была поставлена в 1894 году
Х.Деллаком и частично решена Э.де Жонкиэресом методом множителей,
которым можно получить следующую оценку для произведения:
l(mn) <l(n)+l(m)+1.
С тех пор получено много результатов, которые можно найти в [1]-[4], где
указаны также нерешенные проблемы, например, оценка l(2n)>l(n)-1, также
проблематична.
Для удобства определим две вспомогательные функции:
λ(n)=[log2 n] – длина двоичной записи числа n, уменьшенная на единицу ([x]
– целая часть числа х);
ν(n) – число единиц (сумма цифр) двоичной записи числа n.
Эти функции связаны следующими рекуррентными соотношениями [3, стр.
509]:
λ(1)=0, λ(2n) = λ(2n+1) = λ(n) + 1, ν(1)=1, ν(2n) = ν(n), ν(2n+1) = ν(n) + 1,
и с их помощью легко получить следующую оценку l(n) [1, стр. 161]:
l(n) ≤ λ(n) + ν(n) – 1.
(1)
Для функций ν(n) можно доказать следующую лемму:
Лемма 1. Для любых натуральных m и n справедливо неравенство:
ν(n+m) ≤ ν(n) + ν(m) – ν(nm),
где ν(nm) – число единиц двоичной записи m и n, стоящих на одних местах.
Доказательство. Запишем двоичные записи чисел m и n для сложения их
«в столбик»:
m = 110111000…01110011
n = 1011100…01101010
Далее перенесем все те единицы из нижнего ряда в верхний ряд, над
которыми стоит 0:
111111100…01111011
11000…01100010
Очевидно, что это действие не повлияет на результат сложения, но тогда, в
силу принципа включения и исключения, верхний ряд будет содержать ν(n) +
ν(m) – ν(nm) единиц, а в нижнем останется ν(nm) единиц.
Далее, верхний ряд окажется разбитым на блоки, состоящие из подряд
идущих единиц, разделенных нулями. При сложении, ν(nm) единиц в
блоках верхнего ряда, стоящих над единицами нижнего ряда приведет к
сдвигу влево соответствующего блока и не увеличит число ν(nm):
111111100…01111011
11000…01100010
1000010100…11011101
Лемма 1 доказана.
Наиболее знаменитая проблема, связанная с аддитивными цепочками и
все еще нерешенная, – гипотеза Шольца-Брауэра [3, стр. 521], гласящая, что
l(2n – 1) ≤ n – 1 + l(n)
(2)
В 1939 году А. Брауэр доказал, что
lВ(2n – 1) ≤ n – 1 + lВ(n),
(3)
а затем Хансеном было показано, что l(n) может быть меньше, чем lВ(n) и
определил цепочку lН(n), определенную выше (цепочку Хансена).
Докажем теорему одну из теорем Хансена, а именно
Теорема 1. Для любого натурального n справедливо неравенство.
lН(2n – 1) ≤ n – 1 + lН(n).
Доказательство. Будем пользоваться двоичной записью числа, например,
7 = 1112. Тогда в двоичной системе счисления число
n 1
m  2 n  1  111
...0 .
...
1 , а число 2  10
n
n 1
Эти (n-1) ноль или (n-1) место (и только их!) будем использовать в нашем
дальнейшем алгоритме.
Пусть 1, 2, а2, а3, …, аp= n, где р = lН(n), цепочка Хансена и Н = {1, 2, b1…,
bq} – соответствующее по определению ей множество.
Каждому члену аi, i = 1, 2, …, lН(n), этой последовательности поставим в
соответствие набор из аk единиц (эти наборы соответствуют двоичным
представлениям чисел 2 a  1 ). Так как каждый член цепочки есть сумма двух
некоторых предыдущих, то, в нашей соответствующей последовательности,
каждый член есть конкатенация двух некоторых предыдущих наборов.
Например, цепочке 1, 2, 4, 5 ставится в соответствие последовательность:
1,11,1111,11111. Заметим, что конечное число единиц равно n, а число
членов этой последовательности – (lН(n)+1).
Для построения цепочки lН(2n – 1) будем дописывать нули (удваивать) к
наборам из bi единиц (bi+1 – bi) раз и вставляя между ними наборы из а
единиц, где a – элемент цепочки lН(n), лежащий между bi и bi+1, i=1, 2, …, q,
а bq+1 = n. Это можно сделать, в силу определения цепочки Хансена.
Всего нулей будет дописано 1+ (b2 – 2) + (b3 – b2) + … + (bn – bq) = n – 1,
наборов из единиц, очевидно, – lН(n).
i
Легко проверить, что построенная цепочка является цепочкой Хансена, у
которой множество Н состоит из всех чисел 2 a  1 , i = 0, 1, …, lН(n) и всех
удвоений чисел 2b  1 , i = 0, 1, …, q.
В качестве примера, рассмотрим цепочку для m=(213 – 1). Пусть цепочка
для числа 13 имеет вид:
i
i
1, 2, 4, 5, 8, 13
Очевидно, это является цепочкой Хансена с Н={1, 2, 4, 8}. Соответствующие
ей наборы единиц:1, 11, 1111, 11111, 11111111, 1111111111111. Построенная
алгоритмом цепочка для (213 – 1) будет иметь вид:
1, 2, 3, 6, 12, 15, 30, 31, 60, 120, 240, 255, 510, 1020, 2040, 4080, 8160, 8191.
Здесь
Н={1, 2, 3, 6, 12, 15, 30, 60, 120, 240, 255, 510, 1020, 2040, 4080, 8160, 8191}.
Теорема доказана.
Пользуясь методом доказательства этой теоремы можно получить
следующие следствия.
Рассмотрим аддитивные цепочки для таких чисел n, двоичная запись
которых состоит из нескольких одинаковых блоков, разделенных нулями.
Например, 10100101000 = 132010, здесь два блока вида 101 и 5 разделяющих
их нулей.
Следствие 1. Пусть двоичная запись числа n состоит из р одинаковых
блоков, представляющих число k и разделенных m нулями (m ≥ 0). Тогда
lН(n) ≤ l(k) + λ(n) – λ(k) + lН(p).
Доказательство. Сначала строим аддитивную цепочку для k и записываем
ее в двоичной системе счисления, затем находим цепочку Хансена для числа
р. После чего удваиваем (дописываем нули) (λ(n) – λ(k)) раз, вставляя между
полученными членами из lН(p), как при доказательстве теоремы 1.
Следующее следствие доказывается аналогично.
Следствие 2. Пусть двоичная запись нечетного числа n состоит из р
одинаковых блоков, представляющих число k и разделенных каждый с
каждым (р-1) блоками из некоторого числа m нулей так, что
2p(λ(k)+1+m) –1 = n(2m +1).
. Тогда
lН(2p(λ(k)+1+m) –1) ≤ l(k) + λ(n) – λ(k) + lН(p) + m +1.
Следует заметить, что при m=0 и k=1, λ(1) = l(1) = 0. Поэтому теорема 1
есть частный случай следствия 1, но не вытекает из следствия 2, например,
для цепочки l(28 – 1), т.к. в этом случае l(7) = 4 > l(8) = 3 и оценка следствия 2
будет на 1 больше, чем в теореме 1.
В заключении рассмотрим пример следствия 2: lН(212 – 1).
Возьмем n = 1365. Его двоичная запись 10101010101, состоит из трех
блоков «101», разделенных одним нулем (k=5, p=3, m=1). Минимальная
аддитивная цепочка для числа 5: 1, 2, 3, 5, l(5)=3. λ(5) = 2, 23(2+1+∙1) –1 = 212 – 1
= 1365(21 + 1) = 4095, а lН(p) = lН(3) = 2 и λ(1365) = 10. По оценке следствия 2
получаем:
lН(212 –1) ≤ l(5) + λ(1365) – λ(5) + lН(3) + 1 = 3 + 10 – 2 + 2 + 1 +1 = 15
А, т.к. цепочка Хансена для 12 имеет вид: 1, 2, 4, 8, 12, то lН(12) = 4 и оценка
в теореме 1 будет такой же:
lН(212 – 1) ≤ 12 – 1 + lН(12) = 12 – 1 + 4 = 15.
Автор благодарит А.А.Привалова за научное руководство, А.С.Воронцова
и А.И.Сгибнева за полезные обсуждения работы.
Выводы:
• Сформулировано и доказано новое свойство для ν(n)
• Найдено новое доказательство теоремы Хансена
• Сформулированы и доказаны два следствия из теоремы Хансена
Литература
[1] Болотов А.А., Гашков С.Б., Фролов А.Б., Часовских А.А.,
Алгоритмическин основы эллиптической криптографии, Изд-во РГСУ, М.,
2004.
[2] Гашков С.Б. Современная элементарная алгебра, Изд-во МЦНМО, М.,
2006.
[3] Кнут Д., Искусство программирования, т.2,
[4] Richard K. Guy, Unsolved problems in Number Theory (раздел C6),
QA241.G87 1994
Download