Текстовые задачи на конструктивы в комбе → .02 Процессы и алгоритмы
Готовиться с нами - ЛЕГКО!
Ошибка.
Попробуйте повторить позже
Двадцать участников квеста должны пройти испытание с известными им правилами. Ведущий загадает число: или
и сообщит его
одному из них. Затем каждый участник запишет число
или
и отдаст его ведущему. Если все напишут одно и то же число, команда
проиграет. Если команда не проиграла, ведущий сообщит, сколько раз было написано число
После этого каждый должен угадать
загаданное число. Как участникам договориться, чтобы все угадали?
Подсказка 1
Попробуем разбить людей на две половины по 10. Тогда пусть те, кто не знают ответ, называют номер своей группы, чтобы избежать поражения.
Подсказка 2
Решить задачу нам должен помочь человек, который знает ответ. Пусть этот человек, если ответ 1, назовет тоже номер своей группы, а иначе номер другой группы.
Пусть участники заранее разделятся на две группы по человек: первую и вторую. Все участники, которым ведущий не сообщает
загаданное число, в первый раз назовут номер своей группы, а участник, которому ведущий сообщил загаданное число, назовет номер своей
группы, если загаданное число равно
и не номер своей группы, если загаданное число равно
Тогда если участники назвали число
десять раз, то загадано число
а иначе —
Ошибка.
Попробуйте повторить позже
В очереди в ларек стоят щедрых школьника. Первый из них купил миллион конфет. Каждую минуту один из школьников отдает
стоящему за ним человеку несколько своих конфет (хотя бы одну) таким образом, чтобы у него все равно осталось не меньше конфет, чем у
того, кому он отдал. Докажите, что процесс не может продолжаться бесконечно и что число конфет, которое останется у каждого
школьника в итоге, не зависит от порядка действий.
Рассмотрим очередь из школьников, где первый школьник изначально имеет
конфет. Каждую минуту один из школьников
передаёт стоящему за ним некоторое количество конфет
причём после передачи выполняются условия:
где и
— количество конфет у
-го и
-го школьников до передачи.
Введём функцию энергии системы:
При передаче конфет от школьника
к
изменение энергии составит:
Из условия следует:
Таким образом, Функция
целочисленна, неотрицательна и строго убывает при каждом шаге.
Следовательно, процесс завершится за конечное число шагов.
Для применения Diamond-леммы проверим, что любые два шага коммутируют. Пусть возможны передачи:
- 1.
-
От школьника
к
конфет
- 2.
-
От школьника
к
конфет
Н.у.о Если
шаги независимы. Если
то оба шага заменяются на суммарную передачу конфет от
к
в
размере
Пусть
если сначала идет передача конфет от
к
то
-ый школьник спокойно может передать
конфет следующему, ведь количество конфет у него не уменьшилось. В любом случае, получаем, что у
-ого школьника станет на
конфет меньше, у
увеличится на
а количество конфет у
изменится на
По Diamond-лемме, получаем, что
конечный исход единственен.
Ошибка.
Попробуйте повторить позже
На марафонах Школково учатся детей в
различных марафонах. Каждый день один школьник переходит из
марафона в марафон, где было не меньше детей до его перехода. Докажите, что рано или поздно все дети соберутся в одной
группе.
Рассмотрим граф, в котором вершинам соответствуют люди, а ребра между вершинами проведены, если соответствующие дети — участники одного марафона. С переходом человека между марафонами все ребра внутри прошлого марафона удаляются, и появляются ребра внутри нового марафона.
Если степень переходящей вершины до перехода была то в ее марафоне
человек, тогда в марафоне, куда она переходит
должно быть не менее
человека, откуда получаем, что новая степень вершины не меньше
Следовательно, после каждого
перехода число ребер в графе увеличивается. Бесконечно увеличиваться число ребер увеличиваться не может, значит, рано или поздно
процесс остановится. Очевидно, что он остановится именно тогда, когда все дети перейдут в один марафон, поскольку в любой другой
ситуации возможен переход.
Ошибка.
Попробуйте повторить позже
На доске написана последовательность букв А и Б. За один ход разрешается заменить последовательность букв АБ на последовательность букв БАААА. Может ли этот процесс продолжаться бесконечно?
Рассмотрим самую левую букву Б. Эта буква Б не может сдвинуться вправо, поскольку любая операция с ней переставляет ее левее в слове. Предположим, что наш процесс бесконечен. Так как эта буква Б может двигаться только влево, то бесконечно двигаться она сама не может. То есть существует момент, начиная с которого буква Б перестает двигаться. Удалим начальный отрезок строки, состоящий из всех символов А до самой левой буквы Б и эту букву Б. Про действия, произведенные над этим начальным отрезком можно забыть. Тогда у нас все еще имеется бесконечный процесс, и в новой строке есть самая левая буква Б. Те же рассуждения можно повторить и для нее. Число букв Б в строке, очевидно, остается конечным и неизменным. Следовательно, процесс должен закончиться за конечное число ходов — противоречие.
Ошибка.
Попробуйте повторить позже
Степень каждой вершины графа не превосходит Докажите, что все вершины этого графа можно раскрасить в четыре цвета так, что
количество отрезков с одноцветными концами будет не более, чем количество вершин.
Давайте как-нибудь раскрасим вершины. Рассмотрим произвольную вершину и её соседей. По приницпу Дирихле найдётся цвет
в
который покрашены не более двух её соседей. Если
не цвета
и при этом соединена с хотя бы тремя вершинами её цвета, то
мы можем её перекрасить в
тем самым уменьшив количество одноцветных рёбер. Если делать такие операции, рано
или поздно мы получим граф, в котором каждая вершина является концом не более двух одноцветных рёбер. Это даёт
требуемое.
Ошибка.
Попробуйте повторить позже
За круглым столом сидят человек, у которых есть
печенек на всех. Любой человек, у которого есть хотя бы две печеньки, может
съесть одну из них и дать одну печеньку соседу. Один из сидящих за столом — Вася. При каком наименьшем
люди,
сидящие за столом, при любом начальном распределении печенек смогут добиться того, чтобы Вася получил хотя бы одну
печеньку?
Назовем человека, сидящего напротив Васи, Андреем. Сначала приведем пример, при котором меньше, чем печенек может не хватить.
Пусть у Андрея
печенек. Расставим людям веса, начиная от Андрея, у которого вес будет равен
и идя по двум дугам к Васе,
умножая вес очередного человека на
(тем самым у Васи будет вес
Умножим вес каждого человека на количество печенек у него, и сложим эти числа у всех людей. Посчитанную сумму обозначим через
Заметим, что при описанной в условии операции сумма
не увеличивается. Изначальная сумма
меньше
Но если бы Васе
досталась печенька, сумма
стала бы не меньше
что невозможно.
Теперь покажем, что печенек всегда хватит. Также расставим веса и будем считать сумму
Рассмотрим две дуги
и
между
Андреем и Васей, включая их обоих. Посчитаем отдельно две суммы для дуг
и
Заметим, что печеньки Андрея будут посчитаны
дважды, а вес каждого другого человека не меньше
Поэтому, если печенек хотя бы
то в сумме на дугах
и
получится не
меньше
значит, хотя бы на одной из дуг сумма будет не меньше
Не умаляя общности скажем, что это дуга
Пока на дуге есть люди, у которого хотя бы две печеньки, будем заставлять их съедать одну печеньку и отдавать вторую соседу,
который сидит ближе к Васе (или самому Васе). Заметим, что, во-первых, при такой операции сумма на дуге
не меняется, во-вторых,
уменьшается общее количество печенек, поэтому операции не могут продолжаться бесконечно долго. Если Васе в итоге
не досталось печенек, то сумма на дуге
не превосходит
что не верно. Поэтому Васе обязательно достанется
печенька.
Ошибка.
Попробуйте повторить позже
Фокусник вместе со своим помощником собираются показать следующий фокус. Помощник надевает фокуснику повязку на глаза,
приглашает на сцену случайного зрителя из зала и просит его написать последовательность из нулей и единиц длины Затем
помощник верно называет фокуснику номер и значение некоторого одного члена последовательности. Задача фокусника — отгадать
других членов последовательности (т. е. назвать их номера и значения). Докажите, что они могут заранее договориться так, чтобы фокус
удался.
Подсказка 1
Итак, у нас дана последовательность, и помощник называет номер и значение какого-то члена последовательности. Может, он выбирает элемент не случайно?
Подсказка 2
А нужно ли там рассматривать всю последовательность сразу, или достаточно будет какой-то ее части? Можем ли мы к тому же выбирать эти значения при помощи функции? Сколько значений должен угадать фокусник?
Подсказка 3
Для начала будем рассматривать последовательности, состоящие из 2025 последних элементов данной последовательности. Пусть за это будет отвечать функция f (она будет выдавать из некоторой последовательности x ее последние 2025 элементов). Давайте также обозначим за А множество всех последовательностей нулей и единиц длины 2025, за B — множество всех последовательностей длины 2025, в которых лишь одна единица, за С — все последовательности длины 2025, не включая элементы B. Какая будет длина у С? По какому принципу помощник может сообщать элемент?
Подсказка 4
Давайте также введем функцию g, нумерующую все элементы множества С. Давайте считать, что и помощник, и фокусник знают f и g. Пусть помощник увидел какую-то последовательность. Попробуйте разобрать случаи.
Подсказка 5
Если помощник увидит последовательность x, и f(x) ∈ C, тогда он сообщит элемент с номером g(f(x)). Какие еще случаи можно рассмотреть по аналогии? Не забудьте воспользоваться тем, что в последовательностях множества B ровно одна единица.
Подсказка 6
f(x) ∈ B, первая цифра x - 1 ⇒ сообщает значение и номер единицы из последовательности f(x). f(x) ∈ B, первая цифра x — 0. 1) Единица не на последнем месте ⇒ сообщает значение и номер следующего за ней нуля. 2) Единица на последнем месте ⇒ сообщает значение и номер первого нуля. Как тогда должен действовать фокусник, если ему известны значения функций и множества?
Подсказка 7
Пусть фокусник услышал число в диапазоне [1;2²⁰²⁵ - 2025]. Какой это будет случай?
Подсказка 8
Это случай f(x) ∈ C (⇒ фокусник услышал значение и номер элемента g(f(x))). Может ли он тогда восстановить последние 2025 элементов?
Подсказка 9
Заметим, что функция нумерации биективна, следовательно, по ней можно восстановить f(x). А что произойдет в остальных двух случаях?
Подсказка 10
Если фокусник услышит цифру с номером из [2²⁰²⁵ - 2024; 2²⁰²⁵], то f(x) ∈ B и либо это 0 из начала, либо 0 после единицы. Но мы знаем, что в последовательностях из B ровно одна единица. Какой вывод можно сделать?
Пусть — множество всех последовательностей из нулей и единиц длины
Определим функцию
сопоставляющую каждой
последовательности
из
последовательность, состоящую из её последних
цифр. Пусть
— множество всех
последовательностей из нулей и единиц длины
в которых ровно один элемент равен
а остальные равны
а
— множество
всех остальных последовательностей длины
Тогда Введём функцию
нумерации
для последовательностей из
, т.е. функцию
взаимно однозначно сопоставляющую каждой последовательности из
какой-то номер от
до
Обе функции
и
известны как фокуснику, так и его помощнику.
Теперь опишем действия каждого из них. Пусть помощник увидел перед собой последовательность Тогда у него есть несколько
вариантов:
1) Если то он сообщает значение элемента под номером
2) Если и первая цифра последовательности
равна
то помощник сообщает значение и номер единицы из
последовательности
3) Если и первая цифра последовательности
равна
то помощник сообщает значение и номер того нуля, который
следует за единственной единицей в последовательности
(такая единица единственна, так как эта последовательность
принадлежит множеству
). Если же единица стоит на последнем месте, то помощник сообщает значение и номер первого
нуля.
Опишем действия фокусника.
1) Если он услышал цифру с номером из диапазона от до
то он понимает, что это случай 1). Значит, по этому номеру с
помощью функции нумерации (ввиду её биективности) он может восстановить
а значит, и последние
цифр вместе с их
номерами.
2) Если он услышал цифру с номером из последних номеров, то он понимает, что это случай 2) или 3). Но в обоих случаях у нас у
последовательности
последние
цифр все нули, кроме одного. Из последних
цифр он может отгадать
других
цифры, так как одну уже назвал помощник. Также он может назвать самую первую цифру последовательности, так как
она в случаях 2) и 3) совпадает с той цифрой, что называет помощник. Значит, и в этом случае фокусник отгадает
цифр.
Ошибка.
Попробуйте повторить позже
(a) Докажите, что если в конечном графе степени всех вершин равны 2, то его можно разбить на циклы так, что у разных циклов не будет ни общих вершин, ни общих рёбер.
(b) Докажите, что если в конечном графе степени всех вершин не больше 2, то его можно разбить на непересекающиеся циклы и цепочки (простые пути).
Подсказка 1:
Иными словами, в первом пункте нас просят доказать, что каждая компонента содержит простой цикл, включающий в себя все её вершины.
Подсказка 2:
Как это сделать? Например, можно начать ходить по рёбрам компоненты и подумать, куда в итоге получится прийти. Для удобства можно некоторым образом красить рёбра.
Подсказка 3:
Также необходимо показать, что цикл содержит все вершины компоненты. Доказывать это можно от противного. Пусть нашлась такая вершина X. Попробуйте рассмотреть какую-нибудь вершину на пути от X до A, которая содержится в цикле.
Подсказка 4:
Рассуждения во втором пункте аналогичные. Если в компоненте у всех вершин степень 2, то задача для неё решена. Если же имеется вершина степени 1, начните из неё гулять по графу. Докуда дойдёте?
(a) Покажем, что каждая компонента связности графа является простым циклом. Тогда разбиение на компоненты связности будет искомым.
Рассмотрим некоторую компоненту связности. Пусть изначально все её вершины и рёбра чёрные. Запустим процесс покраски вершин и
рёбер. Рассмотрим произвольную вершину и пометим её красным цветом. Её степень равна 2. Пройдем из неё по какому-нибудь ребру,
пометив это ребро красным. Таким образом, каждый раз будем отмечать красным вершины и рёбра, которые мы посетили. Ходить по
красным рёбрам запретим. Тогда заметим, что, когда мы вошли в вершину впервые, одно её ребро уже красное, а второе ещё нет. Значит,
можно будет продолжить обход. Второй раз войти в какую-то вершину
кроме первой, мы не сможем, потому что оба ребра
уже
будут красными.
Поскольку граф конечен, когда-то мы вернёмся в вершину, в которой уже были. Это обязательно вершина поскольку у остальных
вершин оба ребра уже красные. Получился простой цикл. Покажем, что он содержит все вершины графа. Предположим, что есть вершина
которая осталась чёрной. Тогда оба её ребра также чёрные, поскольку иначе посетили вершина
была бы красной. Рассмотрим
первую красную вершину
на пути от
до
(он существует, поскольку граф связен). Пусть мы пришли в
из
вершины
Она чёрная, так что оба её ребра также чёрные. Значит, из вершины
выходит как минимум чёрное ребро в
а также 2 красных ребра цикла, что противоречит условию. Значит, мы посетили все вершины, что и требовалось
доказать.
(b) Аналогично пункту (a) будем считать граф связным и запустим покраску. Если есть вершина степени 0, то весь граф состоит
только из неё.
сама по себе образует цепочку. Если в графе нет вершин степени 1, то по пункту (a) мы найдём простой цикл. Если же
есть вершина степени 1, то начнём покраску из неё. Граф конечен, поэтому процесс остановится, причём вернуться в уже посещенную
вершину нельзя. Значит, мы закончим в другой вершине степени 1. Тогда получилась цепочка. Аналогично циклу, мы обошли весь
граф.
Ошибка.
Попробуйте повторить позже
За один ход разрешается одновременно заменять все члены последовательности действительных чисел на
соответственно (число
для разных ходов может быть разным). Докажите, что за конечное
число ходов из любой начальной последовательности можно получить последовательность, состоящую только из нулей
и найдите наименьшее число ходов, за которое гарантированно можно этого добиться для фиксированного
Источники:
Подсказка 1
Давайте подберём для каждого хода какое-то удобное число a.
Подсказка 2
a можно выражать через соответствующие xᵢ для каждого хода. Помните, что мы хотим обратить все xᵢ в 0.
Подсказка 3
Сделаем все иксы равными, тогда на следующем ходе при a = x₁ получим последовательность нулей.
Подсказка 4
Пусть на первом шаге a = (x₁ + x₂)/2. Какими тогда будут x₁ и x₂?
Подсказка 5
Получится, что x₁ после первого шага и x₂ после k-ого шага будут равны |x₁ - x₂|/2. Попробуйте за n шагов обратить все xᵢ в 0.
Подсказка 6
Это утверждение доказывается по индукции, обратите внимание на минимальный и максимальный элемент последовательности на каждом шаге.
Покажем, что шагов достаточно для получения нулевой, т.е. состоящей только из нулей, последовательности. Будем обозначать
последовательность после
-го шага преобразований, и за
будем обозначать значения
выбранное на
-ом
шаге. Пусть
тогда
Далее пусть
тогда
Продолжая аналогично, на -м шаге выберем:
тогда:
для На
-м шаге выберем
и получим последовательность из нулей.
Теперь покажем, что шагов необходимы для некоторых начальных последовательностей, например,
Докажем это
индукцией по
База. тривиальна.
Индукционная гипотеза. Пусть утверждение верно для некоторого целого т.е. последовательность
невозможно
свести к нулевой последовательности менее чем за
шагов. Докажем аналогичное для
Отметим, что если — наименьшее число шагов, необходимое для “обнуления” последовательности
то
для
где:
Действительно, для и всех
имеем:
На -м шаге мы устанавливаем
для экономии шагов, что противоречит минимальности
С другой стороны, для и всех
имеем:
На -м шаге мы устанавливаем
для экономии шагов , что опять противоречит минимальности
Итак, откуда
для всех
При этом из
следует
для всех
Из предположения, что последовательность можно "обнулить"за не более чем
шагов, следует, что
последовательность
также обнулена этими шагами, причём для неё это количество шагов является минимальным
(индукционная гипотеза). Из выше изложенного следует,что
для всех
но тогда:
что противоречит Значит, последовательность
невозможно обнулить
шагами, и потребуется как
минимум
шаг, что завершает индукцию и решение задачи.
Ошибка.
Попробуйте повторить позже
По кругу стоит несколько коробок. В одной из них 2025 камней, а остальные пусты. Разрешается взять два камня (возможно, из разных коробок) и переложить один в соседнюю коробку по часовой стрелке, а другой — в соседнюю против часовой стрелки. Через некоторое время все камни оказались в одной и той же коробке, соседней с начальной. Докажите, что один из камней побывал во всех коробках.
Источники:
Подсказка 1
Занумеруем коробки от 0 до n-1. Скажем, что сначала камни были в нулевой коробке, а в конце — в первой.
Подсказка 2
А как именно мы будем вычислять номер коробки, в которой будет находиться камень, при перекладывании?
Подсказка 3
Если мы переложим камень по часовой стрелке из коробки k, то он окажется в коробке (k + 1) mod n. А давайте избавимся от взятия остатков.
Подсказка 4
Можно задать это отдельно: скажем, что у нас есть бесконечное количество кувшинов, в самом начале в кувшине с номером 0 будет 2025 шаров. При перекладывании камня i из коробки с номером k в коробку (k + 1) mod n, мы также переложим шар с номером i из кувшина k' в кувшин k' + 1.
Подсказка 5
В каких кувшинах окажутся шары в конце?
Подсказка 6
Их номера будут сравнимы с 1 по модулю n. А что можно сказать про сумму их номеров?
Подсказка 7
А как мы перекладываем камни?
Подсказка 8
Сумма номеров кувшинов всегда будет равно 0, при том за каждое перекладывание одно из слагаемых увеличивается на 1, а другое — уменьшается на 1. В кувшинах с какими номерами могут находиться шары в конце?
Подсказка 9
В кувшине с номером 0 не может быть шаров. Пусть шар с номером i оказался в кувшине с отрицательным номером. Посмотрите на остатки.
Подсказка 10
Как может меняться номер кувшина для i-го шара за одно перекладывание?
Занумеруем камни от до
Занумеруем коробки от
до
по или против часовой стрелки так, чтобы все камни в начале были
в
-й коробке, а в конце оказались в
-й.
Расставим бесконечное количество кувшинов в ряд (у каждого кувшина будет номер целое число). Положим в кувшин с нулевым
номером шаров, занумерованных от
до
Каждый ход, когда камень с номером
перекладывают из коробки номер
в
коробку номер
будем перекладывать шар номер
из кувшина
где он находился на момент перекладывания камня, в
кувшин номер
Аналогично, когда камень с номером перекладывают из коробки номер
в коробку номер
будем
перекладывать шар номер
из кувшина
где он находился на момент перекладывания камня, в кувшин номер
Таким образом, одновременно с перекладыванием двух камней мы будем перекладывать два шара. Заметим, что остаток по
модулю
от номера кувшина, в котором находится
-й шар, будет всегда равен номеру коробки, в котором находится
-й
камень.
Обозначим номер кувшина, в котором находится -й шар в данный момент, за
Мы только что выяснили, что тогда номер
коробки, в котором находится
-й камень, равен
Теперь ясно, что в конце все шары оказались в кувшинах, номера которых
сравнимы с
по модулю
Заметим, что сумма
в любой момент времени равна нулю: в начале она равна нулю, так как все шары были в кувшине с номером и каждый ход одно из
слагаемых увеличивается на
а другое — уменьшается.
Поскольку ни один из шаров в конце не находится в кувшине номер один из шаров, допустим
-й, оказался в конце в кувшине с
отрицательным номером. Поскольку этот номер сравним с
по модулю
номер кувшина
-го шара в конце концов оказался меньше
либо равен
Итого, номер кувшина -го шара каждый ход менялся не более, чем на
и в конце стал меньше либо равен
Но это значит, что
остатки от деления на
номера кувшина
-го шара пробежали все возможные значения от
(в начале) до
То есть номер
коробки
-го камня пробежал все возможные значения от
до
что и требовалось.
Ошибка.
Попробуйте повторить позже
В Камелот съехались 100 рыцарей Круглого Стола, любые два из которых либо дружат, либо враждуют (дружба и вражда взаимны). Фея Моргана может выбрать любого рыцаря и сделать так, что он поссорится со всеми своими друзьями и при этом подружится со всеми своими врагами. Накладывать это заклинание Моргана может сколько угодно раз. Докажите, что она сможет добиться того, чтобы в итоге образовались такие две группы по 5 рыцарей, что каждый рыцарь из первой пятёрки будет враждовать с каждым рыцарем из второй.
Источники:
Подсказка 1
Попробуйте построить пример, начав с некоторой пятерки рыцарей (будем называть её орденом).
Подсказка 2
Нам надо построить ещё одну пятерку (будем называть её братством), такую, что каждый рыцарь ордена будет враждовать с каждым рыцарем братства. На каких рыцарей, не состоящих в ордене, надо наложить заклинание?
Подсказка 3
Руководствуйтесь тем, что нам желательно получить как можно больше врагов для каждого из рыцарей ордена.
Подсказка 4
Будем накладывать заклинание на рыцаря Kᵢ, если у него не более двух друзей среди рыцарей ордена. Из каких рыцарей теперь лучше формировать пятерку для братства?
Подсказка 5
Рассмотрите рыцарей не из ордена, у которых совпадают друзья в ордене.
Подсказка 6
Если таких рыцарей окажется хотя бы 5, то достаточно будет наложить заклинание на их общих друзей из ордена.
Первое решение.
Возьмём произвольного рыцаря Наложим заклинание на тех рыцарей, кто дружит с
тем самым
теперь будет со всеми
враждовать. Выберем другого рыцаря
Помимо их двоих осталось ещё 98 рыцарей (обозначим их за
), поэтому
либо
дружит хотя бы с
рыцарями из
либо враждует хотя бы с 49 из них. Наложением заклинания на
(если
необходимо) можно добиться того, чтобы реализовался второй вариант, при этом оно не затронет отношения
с рыцарями
из
Таким образом мы добились того, что
и
вместе враждуют с группой из 49 рыцарей (обозначим их за
).
Продолжим процесс: выберем третьего рыцаря
не из
Тогда в
найдётся либо хотя бы
врагов
либо хотя бы 25 друзей
Во втором случае наложим заклинание на
что даст нам группу из 25 рыцарей, враждующих с
(обозначим их за
). Аналогично находятся рыцари
и строятся множества рыцарей
размера
и
соответственно, при этом все рыцари из
будут враждовать с рыцарями
что и
требовалось.
Второе решение.
Зафиксируем 5 рыцарей, назовём их орденом. На каждого из оставшихся рыцарей наложим заклинание в том и только в том случае, если
он дружит не более чем с двумя рыцарями из ордена. После наложения всех заклинаний получим, что каждый рыцарь имеет не менее 3
друзей среди рыцарей ордена. Будем считать двух рыцарей не из ордена схожими, если они дружат с одинаковыми рыцарями ордена.
Рыцарей вне ордена 95, а множество возможных друзей может принимать различных значений. Значит, по
принципу Дирихле найдётся хотя бы
схожих рыцарей, назовём их братством. Тогда фея Моргана может наложить
заклинания на их общих друзей из ордена, после чего каждый рыцарь из ордена будет враждовать с каждым рыцарем из
братства.
Третье решение.
Для решения нам понадобится:
_________________________________________________________________________________________________________________________________________________________________________________
Лемма. для
(считаем, что
при
).
Доказательство. Достаточно заметить, что для натуральных выполнено неравенство
Действительно,
по условию
поэтому
По свойству числа сочетаний
а
что приводит нас к
требуемому неравенству. Лемма доказана.
_________________________________________________________________________________________________________________________________________________________________________________
Вернёмся к решению задачи. Назовём метёлкой пару из рыцаря (будем называть его королём) и пятёрки других рыцарей (будем
называть их орденом), для которой король одновременно дружит или враждует со всеми рыцарями из ордена. Ясно, что если рыцарь
дружит с
рыцарями, то метёлок с королём
ровно
что по лемме не меньше
поэтому всего метёлок не менее
С другой стороны, количество возможных пятёрок равно
поэтому по принципу Дирихле найдётся как
минимум
метёлок с общим орденом. Тогда достаточно взять 5 таких метёлок и наложить заклинание на тех королей, которые дружат с рыцарями из ордена. Таким образом, все пять королей будут враждовать со всеми пятью рыцарями ордена, что и требовалось.
Ошибка.
Попробуйте повторить позже
Есть бесконечно много комнат в ряд, в некоторых живут пианисты (всего их конечное число, в комнате может жить несколько пианистов). Каждый день одна пара пианистов в соседних комнатах решает, что они мешают друг другу играть, и разъезжается — левый пианист в соседнюю комнату слева, а правый пианист — в соседнюю комнату справа. Докажите, что через некоторое время переселения прекратятся.
Рассмотрим произвольные три подряд идущие комнаты (с номерами
). Если в одной из них когда-нибудь окажется
пианист, то эта тройка комнат уже никогда не опустеет: чтобы покинуть эту тройку, пианист должен переселиться из
-й комнаты в
-ю (или из
-й в
-ю, что рассматривается аналогично), но тогда кто-то переселяется из
-й в
-ю, и
на этом шаге рассматриваемая тройка комнат непуста. Разобьём весь коридор на тройки (например, тройки вида (
) для целых
). Количество «занятых» троек не превосходит количества пианистов, и «занятые» тройки не
освобождаются, следовательно, пианисты никогда не покидают некоторую ограниченную часть коридора. С другой стороны,
сумма квадратов номеров комнат, в которых живут пианисты (с учетом кратности) при каждом переселении возрастает,
поскольку
Но в силу ограниченности той части коридора, где находятся пианисты, сумма квадратов номеров не может возрастать бесконечно. Значит, когда-нибудь переселения прекратятся.
Ошибка.
Попробуйте повторить позже
По кругу стоят детей. У них есть суммарно
печенек. За один ход ребенок может передать одну печеньку своему соседу. Причем,
пожадничав, в этот же момент он сразу съедает одну из своих печенек. Для каких
можно утверждать, что при любом
начальном распределении печенек ребята могут действовать так, чтобы передать хотя бы одну печеньку голодному мальчику
Вите?
Расставим веса детям так, что если между ребёнком и Витей стоит промежутков между детьми (берём минимальное из расстояний), то
его вес равен
Пусть вес печеньки равен весу ребёнка, у которого она находится. Заметим, что наша операция не увеличивает сумму
весов печенек. Пусть наиболее удалённого от Вити ребёнка зовут Никита.
Пусть Тогда рассмотрим ситуацию, где все печеньки находятся у Никиты. Его вес равен 1. Тогда сумма весов печенек меньше
и если бы в процессе печенька появилась у Вити, то сумма весов стала бы не меньше
Отсюда получаем противоречие. Значит,
не подходит.
Докажем, что подойдёт. Рассмотрим любое распределение печенек. Пусть у Никиты
печенек, тогда в одной из половин, на
которые Никита и Витя делят круг, находится не менее
печенек. Их общий вес не меньше
откуда общий вес печенек в этой
половине с Никитой не меньше
Запустим процесс: пусть если у кого-то из них хотя бы 2 печеньки, то он отдаёт одну по направлению к
Вите и одну съедает. Тогда сумма весов печенек не изменяется. Процесс конечен и если печеньки у Вити не появилось, то сумма весов стала
не больше
что меньше изначальной суммы весов у этих людей, откуда и получаем противоречие.
Ошибка.
Попробуйте повторить позже
В ряд стоит коробок. В самой левой из них лежит
спичек. За ход разрешается из любой коробки переложить одну спичку в
соседнюю справа коробку, при условии, что в исходной коробке останется не меньше спичек, чем в той, куда мы спичку добавили.
Докажите, что результат процесса не зависит от порядка действий.
Подсказка 1
Предположим, что имеются две разные последовательности ходов. Тогда в каком-то ходе они различаются. Пусть в первой последовательности из коробки a мы переложили шарик в коробку a+1, а во второй из коробки b в коробку b+1, где a и b различны. Можно ли доказать, что когда-то в первой последовательности ходов будет сделан перенос шарика из b в b+1 и наоборот?
Подсказка 2
Конечно! Иначе процесс, очевидно, никогда не прекратится! Причем, как легко видеть, этот ход можно сделать прямо перед ходом перекладывания из a в a+1. Мы знаем, что любой ход любой последовательности будет сделан рано или поздно в любой другой последовательности. Можно ли теперь преобразовать одну последовательность ходов в другую?
Пусть есть две разные последовательности ходов. Они различаются в каком-то месте: в первой последовательности был сделан
ход, перемещающий шарик из коробки в коробку
а во второй — из коробки
в коробку
Докажем,
что
1) ход будет обязательно сделан и в первой последовательности ходов;
2) этот ход можно сделать прямо перед ходом сохранив все остальные ходы (и итоговое расположение шариков в
коробках).
1) В самом деле, если этот ход можно было сделать во второй последовательности, то сейчас в коробке хотя бы на
шарик больше,
чем в коробке
Любые другие ходы, кроме
не уменьшают число шариков в коробке
и не увеличивают число шариков в
коробке
— значит процесс не закончится, если ход
не будет сделан.
2) сделаем ход перед ходом
(это возможно). Любой другой ход кроме
тоже можно будет сделать, так
как этот другой ход будет либо не затрагивать коробок
либо будет осуществлять перекладывание в коробку
(и это будет
возможно, так как в этой коробке шариков только на 1 меньше), либо будет осуществлять перекладывание из коробки
(и это будет
возможно, так как в этой коробке шариков только на
больше). Так мы дойдем до того момента, когда должен был быть сделан ход
после чего раскладывание будет ровно таким же, как и раньше. Итоговое распределение шариков при этом не
изменится.
Так можно постепенно преобразовать одну последовательность в другую, не меняя итогового распределения шариков. Значит результат не зависит от последовательности ходов.
Ошибка.
Попробуйте повторить позже
Дан связный граф. Докажите, что можно в нем выбрать несколько вершин, между которыми нет ребер, и удалить все ребра между оставшимися вершинами, чтобы остался связный граф.
Если исходный граф является полным, то можем выбрать одну из вершин, и условие задачи будет выполняться.
Пусть теперь граф не является полным. Тогда имеются две вершины, не соединённые ребром. Расстояние между ними не меньше
Рассмотрим кратчайший путь из первой вершины во вторую. Первую вершину обозначим
а через
обозначим вершину на
кратчайшем пути, находящуюся на расстоянии
от
Рёбра, инцидентные или
вместе со всеми инцидентными этим рёбрам вершинами, образуют подграф. Если он содержит все
вершины графа, то утверждение доказано. Пусть это не так. Тогда имеется вершина, не соединённая ни с
ни с
Расстояние от неё
до множества
не меньше
Рассмотрим кратчайший путь, соединяющий её с вершиной
или
На этом пути снова возьмём
вершину на расстоянии
от
где
Обозначим её через
По построению, между
нет рёбер. Далее снова
рассматриваем все рёбра, инцидентные хотя бы одной из трёх выбранных вершин вместе со своими концами. Это связный подграф, и если
он содержит не все вершины графа, то повторяем конструкцию. А именно, имеется вершина, не соединённая ни с
ни с
ни с
Расстояние от неё до множества
не меньше
Рассматриваем кратчайший путь, соединяющий
её с одной из вершин
где
(минимум длин путей берём по всем
). На этом пути берём вершину
на
расстоянии
от
и так далее. Рано или поздно в ходе этого процесса все вершины исчерпаются, и будет построено то, что
нужно.
Ошибка.
Попробуйте повторить позже
Двум мудрецам сообщили по натуральному числу и сказали, что эти числа отличаются на После этого они по очереди задают друг другу
один и тот же вопрос: “Знаешь ли ты мое число?”. Отвечают мудрецы честно. Докажите, что рано или поздно один из них ответит
“Да”.
Если число одного из мудрецов равно то он знает, что число другого мудреца равно либо
либо
ему остаётся определить
только то, какая из этих двух возможностей имеет место. Когда мудрец
отвечает на вопрос "Знаешь ли ты моё число?"в первый раз, он
может ответить положительно только если его число равно
(в этом случае число второго однозначно равно
). Если ответ был
отрицательный, то второй мудрец
узнает, что число
не равно
(хотя он это и так знает, если его число больше
). Далее,
если при втором задании вопроса
отвечает отрицательно, то
узнает, что число
не равно
и
(если число
равно
он наверняка знал бы, что число
равно
поскольку после первого вопроса он знает, что оно не равно
).
Пусть перед очередным вопросом одного из мудрецов (для определенности, ) обоим мудрецам известно, что число
не равно
а число
не равно
Если
ответил отрицательно, то его число не равно
(иначе он бы знал, что
число
равно
также его число не равно
(иначе он бы знал, что число
равно
поскольку оно
не может быть равно
). Итак, в случае отрицательного ответа
мы приходим к ситуации, аналогичной только что
рассмотренной: перед вопросом B обоим мудрецам известно, что число
не равно
а число
не равно
Далее при повторении отрицательных ответов каждый из гениев будет постепенно определять, что число другого гения не равно ни одному числу из начального отрезка натурального ряда. Так как числа гениев конечны, то процесс отрицательных ответов рано или поздно прекратится; это означает, что один из гениев ответит на вопрос положительно.
Ошибка.
Попробуйте повторить позже
На доске написаны чисел из интервала
Разрешается выбрать два числа
и
и заменить их на два различных корня
квадратного трехчлена
(если этот трехчлен имеет два различных корня). Докажите, что этот процесс не может продолжаться
бесконечно долго.
Решение 1. Сначала докажем, что все числа на доске всегда будут принадлежать интервалу Для этого достаточно проверить, что
корни трехчлена вида
где
тоже принадлежат интервалу
Пусть
и
— эти корни,
тогда
поэтому
и
числа одного знака. При этом
поэтому
и
положительны.
Кроме того,
поэтому
и
меньше
Таким образом,
и
тоже принадлежат интервалу
Рассмотрим сумму обратных величин к числам на доске и исследуем, как она изменяется при указанных операциях.
Заменяя пару чисел и
на корни
и
трехчлена
мы заменяем в этой сумме слагаемое
на
Так как и
—- числа из интервала
имеем
и
откуда
Таким образом, рассматриваемая сумма обратных величин на каждом шагу уменьшается более чем на Поскольку она останется
положительной, такое уменьшение не может происходить бесконечно много раз. Точнее, количество действий не может быть
больше, чем
где
— сумма обратных величин исходных чисел, а квадратные скобки обозначают целую часть
числа.
Решение 2. Как и в первом решении, отметим, что все числа на доске всегда принадлежат интервалу Кроме того,
заметим, что корни трехчлена
где
лежат между числами
и
на числовой оси. Действительно,
из равенства
и ранее доказанной положительности корней следует, что
и
А из равенства
и ранее доказанных неравенств
и
следует, что
и
. Таким образом, если у трехчлена
есть два корня, то
и корни лежат в интервале
Следовательно, минимум из чисел на доске не
уменьшается, значит, все числа будут не меньше некоторого положительного числа
(равного минимуму из исходных
чисел).
Теперь исследуем, как изменится сумма всех чисел на доске. При замене чисел и
на корни трехчлена
из этой суммы
вычитается
Действительно, исходные числа вносили в сумму вклад
а заменившие их корни
и
вклад
Таким образом, сумма всех чисел на каждом шаге уменьшается на величину, не меньшую, фиксированного положительного числа
Поскольку сумма всегда остается положительной и в начале она не превосходит
таких действий будет не больше, чем
где
квадратные скобки обозначают целую часть числа.
Ошибка.
Попробуйте повторить позже
Из двенадцати монет одиннадцать настоящих, а одна фальшивая (она отличается по весу от настоящей, но не известно, в какую сторону). Требуется за три взвешивания на двухчашечных весах без гирь найти фальшивую монету и выяснить, легче она или тяжелее настоящей.
Во-первых, специальным образом пронумеруем монеты: присвоим им трехзначные номера
Для первого взвешивания положим на одну чашу весов те монеты, у которых старший разряд равен
(то есть
), а на
другую — те монеты, у которых он равен
Если перетянет чашка с
запишем на бумажке цифру
Если перетянет
— запишем
Если чаши весов останутся в равновесии запишем
Для второго взвешивания на одну чашу выложим монеты (то есть все те монеты, у которых второй разряд равен
), а
на другую —
(то есть те монеты, у которых средний разряд равен
). Запишем результат взвешивания таким же образом,
что и при первом взвешивании.
Третьим взвешиванием сравниваем с
(соответственно, нули и двойки в младшем разряде) и
записываем третью цифру.
Мы получили три цифры — иначе говоря, трехзначное число. Далее определяем фальшивую монету по следующему рецепту:
Если это число совпадает с номером какой-то монеты, то эта монета фальшивая и тяжелее остальных. Если нет, то заменим в этом числе все нули на двойки, а все двойки на нули. После этого оно должно совпасть с номером какой-то монеты. Эта монета фальшивая и легче остальных.
Ошибка.
Попробуйте повторить позже
Назовём словом любую последовательность букв. Со словами разрешается проделывать следующие операции: 1) удалить первую букву
слова; 2) удалить последнюю букву слова; 3) добавить копию слова после него. Например, если исходное слово , применение операций
даст
и
соответственно. Верно ли, что с помощью таких операций можно в любом слове переставить буквы в любом
порядке?
Источники:
Подсказка 1
В этой задаче нужно придумать алгоритм перестановки букв с помощью данных операций для любого слова и любой перестановки. Но сразу догадаться до этого сложно, поэтому попробуйте рассмотреть какой-нибудь простой частный случай.
Подсказка 2
Как получить циклический сдвиг?
Подсказка 3
Достаточно просто удвоить слово и удалить всё лишнее! Теперь попробуйте перейти от этого к произвольной перестановке.
Сначала заметим, что мы можем сделать циклический сдвиг букв в слове. Действительно, пусть у нас есть слово . Удвоим его и
удалим буквы
слева. Получили слово
.
Теперь приведём алгоритм. Пусть у нас имеется слово , имеющее вид
. Сделаем копию
раз, получим слово
,
состоящее из
копий
, идущих подряд. Рассмотрим самое крайнее слово
справа, из него будем делать нужную перестановку.
Пусть мы хотим получить некоторую перестановку
. Пусть
— минимальный индекс такой, что
. Уберём в самом
правом слове
все буквы от
до
. Теперь сделаем циклический сдвиг, переместим
в конец слова
. Далее будем следовать
аналогичному алгоритму, найдём в слове
букву
(она будет среди
первых слева букв), удалим все буквы перед ней и сдвинем её
в конец слова
и так дальше.
Спустя не более циклических сдвигов
последних букв слова
будут нужной перестановкой, останется только удалить лишние
буквы слева и мы получим требуемое.
Осталось объяснить, почему длины слова хватит. На первом шаге мы удаляем не более
букв справа и менее
букв слева, а на
остальных шагах — менее
букв слева. Таким образом, всего будет удалено не более
букв. Длина слова
равна
. Неравенство
вытекает из неравенства
, которое можно доказать индукцией по
. Таким
образом, мы сможем выполнить
циклических сдвигов и при этом точно останутся
букв, составляющих нужную
перестановку.
Ошибка.
Попробуйте повторить позже
Есть несколько бочек мёда, каждая не тяжелее килограмма. Докажите, что их все можно разложить на две кучки так, чтобы веса кучек отличались не более чем на килограмм.
Подсказка 1
Давайте сначала закинем все бочки в одну кучку. И будем перекидывать по одной бочке в другую кучку. В какой момент лучше остановить этот процесс?
Подсказка 2
Правильно, надо остановить процесс, когда во второй кучке станет больше. Попробуйте написать неравенства и проверить, что в этот момент условие будет выполняться.
Давайте обозначим веса бочек меда за Давайте все бочки закинем в первую кучку и будем по одной бочке перекладывать во
вторую кучку, пока в первой кучке не станет меньше по весу. Пусть в каждый момент веса кучек отличаются больше, чем на
Тогда
посмотрим на момент перед последним шагом процесса. Пусть в этот момент в первой кучке общий вес
а в второй общий вес
Тогда
А в конце нашего процесса верно
Последнее неравенство неверно по условию. Противоречие.