Процессы и алгоритмы
Ошибка.
Попробуйте повторить позже
Двадцать участников квеста должны пройти испытание с известными им правилами. Ведущий загадает число: или
и сообщит его
одному из них. Затем каждый участник запишет число
или
и отдаст его ведущему. Если все напишут одно и то же число, команда
проиграет. Если команда не проиграла, ведущий сообщит, сколько раз было написано число
После этого каждый должен угадать
загаданное число. Как участникам договориться, чтобы все угадали?
Подсказка 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
Это утверждение доказывается по индукции, обратите внимание на минимальный и максимальный элемент последовательности на каждом шаге.
Покажем, что шагов достаточно для получения нулевой, т.е. состоящей только из нулей, последовательности. Будем обозначать
последовательность после
-го шага преобразований, и за
будем обозначать значения
выбранное на
-ом
шаге. Пусть
тогда
Далее пусть
тогда
Продолжая аналогично, на -м шаге выберем:
тогда:
для На
-м шаге выберем
и получим последовательность из нулей.
Теперь покажем, что шагов необходимы для некоторых начальных последовательностей, например,
Докажем это
индукцией по
База. тривиальна.
Индукционная гипотеза. Пусть утверждение верно для некоторого целого т.е. последовательность
невозможно
свести к нулевой последовательности менее чем за
шагов. Докажем аналогичное для
Отметим, что если — наименьшее число шагов, необходимое для “обнуления” последовательности
то
для
где:
Действительно, для и всех
имеем:
На -м шаге мы устанавливаем
для экономии шагов, что противоречит минимальности
С другой стороны, для и всех
имеем:
На -м шаге мы устанавливаем
для экономии шагов , что опять противоречит минимальности
Итак, откуда
для всех
При этом из
следует
для всех
Из предположения, что последовательность можно "обнулить"за не более чем
шагов, следует, что
последовательность
также обнулена этими шагами, причём для неё это количество шагов является минимальным
(индукционная гипотеза). Из выше изложенного следует,что
для всех
но тогда:
что противоречит Значит, последовательность
невозможно обнулить
шагами, и потребуется как
минимум
шаг, что завершает индукцию и решение задачи.
Ошибка.
Попробуйте повторить позже
В ряд стоит коробок. В самой левой из них лежит
спичек. За ход разрешается из любой коробки переложить одну спичку в
соседнюю справа коробку, при условии, что в исходной коробке останется не меньше спичек, чем в той, куда мы спичку добавили.
Докажите, что результат процесса не зависит от порядка действий.
Подсказка 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
Правильно, надо остановить процесс, когда во второй кучке станет больше. Попробуйте написать неравенства и проверить, что в этот момент условие будет выполняться.
Давайте обозначим веса бочек меда за Давайте все бочки закинем в первую кучку и будем по одной бочке перекладывать во
вторую кучку, пока в первой кучке не станет меньше по весу. Пусть в каждый момент веса кучек отличаются больше, чем на
Тогда
посмотрим на момент перед последним шагом процесса. Пусть в этот момент в первой кучке общий вес
а в второй общий вес
Тогда
А в конце нашего процесса верно
Последнее неравенство неверно по условию. Противоречие.
Ошибка.
Попробуйте повторить позже
На плоскости заданы красных и
синих точек, причём никакие три точки не лежат на одной прямой. Докажите,
что можно провести
непересекающихся отрезков с концами в данных точках так, чтобы концы каждого отрезка были
разноцветны.
Подсказка 1
Для начала давайте проведем любые n отрезков с разноцветными концами. Мы хотим начать перестраивать эти отрезки, поэтому что нам важно про количество таких конфигураций?
Подсказка 2
Правильно, их конечно! Теперь попробуйте перестроить два пересекающихся отрезка и найти какую-нибудь величину, которая уменьшается при этой перестройке.
Давайте проведем любые отрезков с разноцветными концами. Заметим, что вообще таких конфигурации конечное число. Теперь
рассмотрим отрезки, которые пересекаются, и будем перестраивать их, как на картинке ниже(пунктиром обозначены новые отрезки).
Заметим, что сумма этих отрезков уменьшилась, а, значит, в какой-то момент наш процесс закончится, так как у нас конечное количество
конфигураций.
Ошибка.
Попробуйте повторить позже
На плоскости даны точки общего положения, одна из них синяя, остальные красные. Докажите, что количество треугольников с
вершинами в красных точках, содержащих синюю, чётно.
Подсказка 1
Давайте проведем все отрезки с концами в красных точках. Они в пересечении образовали несколько частей (внешнюю часть тоже считаем). Что будет, если синяя точка будет во внешней части?
Подсказка 2
Правильно! Тогда синяя точка не содержится ни в одном треугольнике с красными вершинами, а, значит, содержится в четном количестве треугольников. Поэтому считаем, что синяя точка содержится в какой-то внутренней части. Попробуйте придумать какой-нибудь алгоритм, который будет будет менять местоположение синей точки, но не будет менять четность количества треугольников, в которых она содержится, а в итоге переведет точку во внешнюю часть.
Подсказка 3
Будем называть части соседними, если они имеют общую сторону. Попробуйте доказать, что при переходе точки из одной части в соседнюю, четность количества треугольников, которые ее содержат, не меняется.
Подсказка 4
Пусть PQ отрезок на котором лежит общая сторона соседний частей. Рассмотрим треугольник, у которого нет стороны PQ с красными вершинами такой, что он содержит одну из этих частей. Что тогда можно сказать про соседнюю часть и это треугольник? А если не содержит?
Подсказка 5
Правильно, если треугольник содержит часть, то он содержит и соседнюю, а если не содержит, то и не содержит соседнюю. А значит, на количество треугольников влияют треугольники со стороной PQ. На сколько меняется количество треугольников содержащих синюю точку?
Подсказка 6
Верно, на модуль разности количества точек с одной стороны и другой стороны относительно прямой PQ. Нам интересна только четность этой разности. Поэтому достаточно узнать четность суммы. А чему же равна сумма?
Проведем всевозможные отрезки между красными точками. Они в пересечение образовали несколько частей. Будем называть соседними
части, если они имеют общую сторону. Внешнюю часть будем тоже считать частью. Заметим, что если синяя точка лежит в внешней
части, то она лежит в четном количестве треугольников, а именно в Будем доказывать, что если передвинуть точку в
соседнюю часть, то количество треугольников, в которых она содержится, изменится на четное число. Пусть общая сторона
соседних частей лежит на отрезке
Тогда если рассмотреть все треугольники, которые не содержат сторону
то
они либо содержат обе эти соседние части, либо не содержат. Поэтому нам интересны только треугольники с стороной
При переходе из одной части в другую количество треугольников содержащих точку меняется на
где
количество вершин с одной стороны от
а
по другую. Учитывая, что
мы получаем, что
тоже
четное.
Ошибка.
Попробуйте повторить позже
По кругу расставлены натуральных чисел, причём соседние отличаются ровно на
Назовём число, которое больше обоих соседей,
горой, а которое меньше — долиной. Докажите, что сумма чисел-гор на
больше суммы чисел-долин.
Подсказка 1
Попробуем запустить какой-нибудь процесс так, чтобы в конце него мы могли точно знать, какие останутся числа. Например, начнем уменьшать числа! Как это стоит делать и с каких чисел начать?
Подсказка 2
Верно! Попробуем начать уменьшать самые большие числа на 2. Как при этом изменяется разность между горами и долинами?
Подсказка 3
Точно, она не меняется! А какие числа остались в конце и как они располагаются?
Запустим процесс, когда мы из одного самого большого числа вычитаем Останавливаем процесс, когда все числа становятся равными
и
Рассмотрим, как при такой замене меняется разница между суммой гор и суммой долин. Пусть мы вычитаем
из наибольшей горы
Есть три случая: либо два соседа становятся горами, либо только один сосед, либо никто. В
первом случае сумма гор увеличилась на
а сумма долин увеличилась на
Во втором случае
сумма гор уменьшилась на
а сумма долин тоже уменьшилась на
В третьем случае
сумма гор уменьшилась на
а сумма долин тоже уменьшилась на
То есть при наших действиях
требуемая величина не изменяется. Процесс когда-нибудь закончится, так как каждым ходом сумма всех чисел уменьшается,
но отрицательных чисел мы не могли получить. Когда все числа либо
либо
у нас
гор и
долин с разницей
Ошибка.
Попробуйте повторить позже
В клубе “Что? Где? Когда?” провели анкетирование, в котором требовалось назвать своего любимого писателя, художника и композитора.
Оказалось, что каждый упомянутый хоть раз деятель искусств является любимым для не более чем человек. Докажите, что всех
проанкетированных можно разделить на не более чем
группы, чтобы в каждой группе любые два человека имели абсолютно разные
вкусы.
Подсказка 1
Попробуем представить условие в более удобном в виде, то есть в виде графа! Что стоит считать его вершинами и ребрами?
Подсказка 2
Верно! Деятели искусства будут вершинами, а симпатии ребрами. Тогда граф будет двудольным. А что можно сказать о степенях его вершин?
Подсказка 3
Точно! В одной из долей все степени равны 3, а в другой все степени не превосходят k. Попробуем в первой доле, где степени 3, удалить все вершины, а затем возвращать их, параллельно распределяя в группы. Можно ли оценить сверху число соседних вершин к соседям очередной возвращаемой вершины?
Подсказка 4
Верно! Поскольку, включая возвращаемую вершину, у каждого из ее соседей не более k своих соседей, то в графе будет не более 3(k-1) ее соседей. Какой вывод можно сделать?
Давайте переформулируем задачу на язык графов. Будем считать людей из клуба вершинами первой доли графа, а деятелей искусства
вершинами второй доли. Ребра будут обозначать симпатии. Заметим, что в первой доле у каждой вершины степень ровно а во второй
доле у каждой вершины степень не более
Для начала удалим все вершины первой доли и будет добавлять по одной, к тому же крася
вершины в
цвета. Возьмем любую добавленную вершину из первой доли и посмотрим на соседей её соседей. Этих вершин (включая
саму вершину) максимум
а, значит, мы сможем покрасить добавленную в свободный цвет от цвета соседей. По
построению вершины одного цвета из первой доли не имеют общих соседей. Теперь вершины одного цвета объединим в группу и получим то,
что хотели по условию.