Loading [MathJax]/jax/element/mml/optable/SuppMathOperators.js
ЗАДАЧИ
problems.ru
О проекте | Об авторах | Справочник
Каталог по темам | по источникам |
К задаче N

Проект МЦНМО
при участии
школы 57
Задача 66617
Темы:    [ Теория алгоритмов (прочее) ]
[ Процессы и операции ]
[ Полуинварианты ]
Сложность: 6
Классы: 10,11
В корзину
Прислать комментарий

Условие

На доске написано несколько чисел. Разрешается стереть любые два числа a и b, а затем вместо одного из них написать число \frac{a+b}{4}. Какое наименьшее число может остаться на доске после 2018 таких операций, если изначально на ней написано 2019 единиц?

Решение

Первое решение.

Пусть m_n — наименьшее число, которое можно получить из n единиц после n-1 операций. Заметим, что mn=minp+q=n,p,qNmp+mq4 при всех n\geqslant 2. Действительно, как бы мы ни получили наименьшее число m_n, оно равно \frac{x+y}{4}, где числа x и y были получены на предыдущем шаге. Пусть x получено из p единиц исходного набора, а y — из оставшихся n-p=q единиц. Если x > m_p или y > m_q (предположим для определенности, что x > m_p), то из исходного набора p единиц можно было бы получить меньшее число, не затрагивая второй набор. Значит, на последнем шаге можно получить число, меньшее m_n, что противоречит определению m_n.

Докажем индукцией по n, что m_n = f(n), где f(n) = \frac{3 \cdot 2^k-n}{2^{2k+1}}, а k=k(n) определяется из условия 2^k \leqslant n < 2^{k+1} (т. е. k = \lfloor \log_2{n} \rfloor). При n=1,2,3 это равенство проверяется непосредственно: m1=1=31121, m2=12=32223, m3=38=32323.

Предположим, что оно верно для всех n \leqslant n_0, где n_0 \geqslant 3, и докажем его для n = n_0+1.

Лемма. Наименьшее значение выражения f(p)+f(q) при условии p+q = n достигается при p = \lfloor n/2 \rfloor, q = \lceil n/2 \rceil, где обозначено \lfloor x \rfloor=[x], \lceil x \rceil — наименьшее целое число, не меньшее x.

Доказательство. Обозначим d(n) = f(n)-f(n+1). Пользуясь формулой для f(n), получаем d(n) = 2^{-2k-1}, где 2^k \leqslant n < 2^{k+1} (это проверяется непосредственно как в случае n < 2^{k+1}-1, так и при n=2^{k+1}-1). Из полученной формулы для d(n) следует, что d(n) \geqslant d(n+1), поэтому d(p) \geqslant d(q) при p \leqslant q.

Пусть 1 \leqslant p \leqslant q < n и p+q=n. Сравним значения f(p)+f(q)} и f(p+1)+f(q-1). Их разность равна f(p)+f(q)f(p+1)f(q1)=d(p)d(q1). Если p < q, то d(p) \geqslant d(q-1), а значит, f(p)+f(q) \geqslant f(p+1)+f(q-1). Итак, если p пробегает значения от 1 до \lfloor n/2 \rfloor (т. е. не превосходит q), то сумма f(p)+f(q) не возрастает, а значит, ее наименьшее значение достигается при p = \lfloor n/2 \rfloor (соответственно, q=\lceil n/2 \rceil). Лемма доказана.

Из доказанной леммы и предположения индукции следует, что mn=mn/2+mn/24=f(n/2)+f(n/2)4. Остается убедиться, что f(n/2)+f(n/2)4=f(n). Пусть k таково, что 2^k \leqslant n < 2^{k+1}. Тогда 2^{k-1} \leqslant \lfloor n/2 \rfloor < 2^k. Если n < 2^{k+1}-1, то 2^{k-1} \leqslant \lceil n/2 \rceil < 2^k, и f(\lceil n/2 \rceil)= \frac{3 \cdot 2^{k-1}-\lceil n/2 \rceil}{2^{2k-1}}. Если же n = 2^{k+1}-1, то \lceil n/2 \rceil = 2^k, и f(n/2)=32k2k22k+1==2k=32k12k22k1=32k1n/222k1, т. е. в обоих случаях имеем f(n/2)=32k1n/222k1.

Следовательно, mn=f(n/2)+f(n/2)4=32kn22k+1=f(n).

При n=2019 получаем k=10, m_{2019}=\frac{3072-2019}{2^{21}}=\frac{1053}{2^{21}}.

Второе решение.

Пусть x — число, получившееся после 2018 операций. Проследим, как было получено это число. Для этого «развернем» все операции в обратном направлении. При прямом применении операции два числа заменялись одним, поэтому при обратном каждое число мы будем заменять на два числа, из которых оно было получено (сохраняя деление на 4): a+b4a4+b4. При этом есть числа, у которых нет предшественников — это единицы. Каждую единицу мы искусственно представим в виде суммы двух чисел: a+1414+a4=242+242+a4 (если a=1, то с этой единицей мы проделаем ту же процедуру). Далее каждую степень двойки, стоящую в числителе и полученную когда-то из единицы, мы снова искусственно превращаем в сумму двух чисел: 2l4m=42l4m+1=2l+1+2l+14m+1=2l+14m+1+2l+14m+1. Таким образом, при каждом таком «разворачивании» операции в обратном направлении количество чисел удваивается. Поэтому в итоге мы получим представление числа x в виде дроби, в числителе которой стоит сумма 2048 чисел (2^{10} < 2019 < 2^{11}=2048), каждое из которых есть некоторая степень двойки, а знаменатель равен 4^{11}.

Обозначим через a_k количество слагаемых вида 2^k, k=0, 1, ..., в числителе дроби, представляющей число x. С учетом искусственного раздвоения единиц и чисел, получающихся из них, исходное количество единиц равно a0+a12+a24+ Получаем следующую систему условий, равносильную исходной задаче: {x=a0+2a1+4a2+411min,a0+a12+a24+=2019,a0+a1+a2+=2048.

Чтобы сделать число x наименьшим, необходимо обнулить как можно больше чисел a_k c большими коэффициентами (или, что то же самое, с большими номерами k). Для 2019 единиц достаточно положить a_2=a_3=\ldots=0. Решением системы {a0+a12=2019,a0+a1=2048 будут числа a_0=1990, a_1=58. Тогда x=1990+116411=2106222=1053221.

Заметим, что если изначально на доске было написано количество единиц, равное степени двойки, то можно положить a_1=a_2=\ldots=0, т. е. в этом случае можно взять отличным от нуля только a_0.


Ответ

\frac{1053}{2^{21}}.

Источники и прецеденты использования

олимпиада
Название Московская математическая олимпиада
год
Год 2019
Номер 82
класс
1
Класс 11
задача
Номер 5

© 2004-... МЦНМО (о копирайте)
Пишите нам

Проект осуществляется при поддержке Департамента образования г.Москвы и ФЦП "Кадры" .