задачка (математическое)
Mar. 8th, 2012 06:29 pmВот рассказали забавную задачку - я думал, что знаю все задачки про сто арестантов, но оказалось, что не все. Задачка не очень сложная, но и не совсем тривиальная. Комментарии не скрываю.
Update: в комментариях есть несколько правильных решений; первым правильное решение запостил
kaathewise.
--------------
100 узников сидят в 100 тюремных камерах, которые расположены в ряд. В одной камере всегда сидит ровно один узник.
У каждого узника есть любимая камера, в которой ему бы больше всего хотелось сидеть. При этом у разных узников любимые камеры могут совпадать. Если узнику не довелось сидеть в своей любимой камере, то он предпочитает остальные в соответствии с расстоянием до любимой. Например, если у узника любимая камера номер 25, то на втором месте - камеры 24 и 26, на третьем 23 и 27, и так далее.
На данный момент все узники рассажены по камерам каким-то образом. Известно, что существует такой способ их пересадить, чтобы увеличилось количество добра и никто не ушел обиженный. Иными словами, в результате пересадки ни один из узников не попадает на худшее с своей точки зрения место, и по крайней мере один узник попадает на лучшее.
Нужно доказать, что в такой ситуации обязательно найдутся два узника, которые согласятся поменяться местами. То есть, опять-таки, ни одному из этих двоих не станет хуже, и как минимум одному станет лучше.
Update: в комментариях есть несколько правильных решений; первым правильное решение запостил
--------------
100 узников сидят в 100 тюремных камерах, которые расположены в ряд. В одной камере всегда сидит ровно один узник.
У каждого узника есть любимая камера, в которой ему бы больше всего хотелось сидеть. При этом у разных узников любимые камеры могут совпадать. Если узнику не довелось сидеть в своей любимой камере, то он предпочитает остальные в соответствии с расстоянием до любимой. Например, если у узника любимая камера номер 25, то на втором месте - камеры 24 и 26, на третьем 23 и 27, и так далее.
На данный момент все узники рассажены по камерам каким-то образом. Известно, что существует такой способ их пересадить, чтобы увеличилось количество добра и никто не ушел обиженный. Иными словами, в результате пересадки ни один из узников не попадает на худшее с своей точки зрения место, и по крайней мере один узник попадает на лучшее.
Нужно доказать, что в такой ситуации обязательно найдутся два узника, которые согласятся поменяться местами. То есть, опять-таки, ни одному из этих двоих не станет хуже, и как минимум одному станет лучше.
no subject
Date: 2012-03-08 04:36 pm (UTC)no subject
Date: 2012-03-08 04:40 pm (UTC)no subject
Date: 2012-03-08 04:40 pm (UTC)no subject
Date: 2012-03-08 04:51 pm (UTC)Не будем рассматривать всех узников, которые не поменяют своего места при переходе к "лучшей" рассадке.
Рассмотрим самого правого узника, который пересядят вправо при переходе к "лучшей" рассадке. Пусть он сидит на месте N. Тогда его идеальное место точно справа от N, иначе бы он расстроился.
Узник N+1 не может оставаться на месте и не может пересесть вправо (по предположению). Значит, он пересаживается влево, и его идеальное место слева от N+1, иначе бы он тоже расстроился.
Поэтому можно поменять N-го и (N+1)-го.
(Нумерация пропускает узников, сидящих на месте).
Единственный момент, когда это не работает - когда N и N+1 меняются друг с другом при переходе к правильной рассадке, и им это безразлично. Тогда их тоже можно выкинуть:)
no subject
Date: 2012-03-08 05:19 pm (UTC)Замечательно, спасибо! Очень просто и наглядно. Мое собственное решение в том же духе, но несколько сложнее.
Я все же заскриню на несколько часов ваше решение, если вы не против, пока оно единственное верное ;)
no subject
Date: 2012-03-08 04:52 pm (UTC)no subject
Date: 2012-03-08 04:54 pm (UTC)no subject
Date: 2012-03-08 05:36 pm (UTC)спасибо)
no subject
Date: 2012-03-08 05:56 pm (UTC)no subject
Date: 2012-03-08 06:14 pm (UTC)no subject
Date: 2012-03-08 06:18 pm (UTC)no subject
Date: 2012-03-08 06:23 pm (UTC)no subject
Date: 2012-03-08 06:34 pm (UTC)Мое похоже на него: я доказываю, что можно сократить любую цепочку длиной больше 2, "закоротив" ее в середине. Пусть в выигрышной цепочке некий выигрышный ход A->B будет слева направо. Тогда любой другой элемент в цепочке, находящийся справа от A, должен также быть справа от B (иначе A может прыгнуть сразу в него и укоротить цепочку). Рассмотрим другие звенья в цепочке до и после А: ...->Y->Z->A->B->C->... Видим, что после B все следующие переходы должны оставаться справа от B - иначе им нужно прыгнуть аж влево от A, но тогда такой переход можно заменить на переход к A и сократить. С другой стороны, Z->A должен прийти слева, потому что иначе Z расположен справа от B и может придти в B и сократить. Выходит, что соединить части цепочки слева и справа от A невозможно.
no subject
Date: 2012-03-08 06:53 pm (UTC)no subject
Date: 2012-03-08 06:15 pm (UTC)no subject
Date: 2012-03-08 07:50 pm (UTC)Лемма 1 неверна, например, в такой ситуации: Х(1,2,3) = (1,2,1) - рассадка оптимальна, однако пересечения есть.
Теорема неверна, например, в такой ситуации: Х(1,2,3) = (3,2,1) - можно поменять местами 1-го и 3-го, а соседних поменять нельзя.
no subject
Date: 2012-03-08 08:03 pm (UTC)no subject
Date: 2012-03-08 08:07 pm (UTC)no subject
Date: 2012-03-08 08:13 pm (UTC)no subject
Date: 2012-03-08 08:16 pm (UTC)no subject
Date: 2012-03-08 08:26 pm (UTC)no subject
Date: 2012-03-08 07:03 pm (UTC)Пусть i --- номер заключенного, a(i) --- номер его текущей камеры, b(i) --- номер любимой камеры. Недовольство заключенного выражается через |a(i) - b(i)|. Общее недовольство всех заключенных равно S = |a(1) - b(1)| + ... + |a(100) - b(100)|. По условию существует такая перестановка (k(1), ..., k(100)), что каждое k(j) принимает уникальное значение от 1 до 100 и |a(k(1)) - b(1)| + ... + |a(k(100)) - b(100)| < S.
Теперь предположим противное устанавливаемому утверждению: при пересадке любых двух заключенных недовольство обоих не уменьшается, т.е. для любых i и j справедливо |a(i) - b(j)| >= |a(j) - b(j)|. Выбирая последовательно все пары (i, j) = (k(1), 1), ..., (k(100), 100) и суммируя получаемые неравенства, приходим к |a(k(1)) - b(1)| + ... |a(k(100)) - b(100)| >= |a(1) - b(1)| + ... |a(100) - b(100)| = S. Т.е. противоречие.
no subject
Date: 2012-03-09 08:26 am (UTC)no subject
Date: 2012-03-09 08:52 am (UTC)no subject
Date: 2012-03-09 09:17 am (UTC)Ваш аргумент, по-моему, означает лишь то, что условие задачи может быть ослаблено и достаточно потребовать, чтобы в сумме всем заключенным было лучше, а не каждому в отдельности.
no subject
Date: 2012-03-09 09:34 am (UTC)Поскольку мы хотим доказать "i стало не хуже, j стало не хуже, и хотя бы в одном из двух случае неравенство строгое", точное условие, противное этому, будет "либо i стало хуже, либо j стало хуже, либо обоим одинаково". Это можно записать в виде трех формул в вашей нотации, но из-за "либо" суммировать их не очень получается.
no subject
Date: 2012-03-09 10:07 am (UTC)no subject
Date: 2012-03-08 08:19 pm (UTC)no subject
Date: 2012-03-08 08:55 pm (UTC)решение
Date: 2012-03-08 10:42 pm (UTC)Сначала исключим из рассмотрения тех, кто остался на месте, а также те пары, которые обменялись местами без улучшения. В последнем случае "любимые" камеры каждого из них совпадают и расположены посередине между ними.
Всех остальных перенумеруем слева направо. Они как-то обмениваются местами. На место первого кто-то приходит, и он сдвигается влево. Обозначим через k минимальный номер того, кто сдвигается влево.
Ясно, что k больше 1, так как номер 1 движется вправо. Поэтому существует номер k-1, и он сдвигается вправо в силу минимальности выбора k. Далее показываем, что k-1 и k могут обменяться местами с соблюдением условий задачи.
Прежде всего, покажем, что при таком обмене ни у одного из них положение не ухудшится. Достаточно это обосновать для перемещения номера k-1 ввиду симметрии. Ясно, что k-1 перемещался либо на место k, либо правее. Его положение при этом не ухудшилось. Следовательно, не ухудшится и его положение при шаге в том же направлении на ту же самую или на меньшую величину.
Выделенное соображение является "ключевым" для решения, поэтому скажем несколько слов в качестве обоснования. Любимая камера для k не может находиться левее него -- в противном случае он при шаге вправо увеличил бы до неё расстояние. Она не может также совпадать с k, что очевидно. Тем самым, она правее k, и если при коротком шаге вправо положение ухудшается, то это означает, что он сдвигается правее любимой камеры на достаточно большое расстояние. А тогда при более длинном перемещении вправо он отдаляется от любимой камеры ещё больше.
Итак, мы показали, что после обмена местами k-1 и k никому не станет хуже. Если лучше тоже никому не стало, то они оба находятся на равном расстоянии от любимой камеры, одинаковой для каждого из них. Из этого следует, что если в изначальном перемещении k-1 сдвинется правее k, или k сдвинется левее k-1, то произойдёт ухудшение. Этого быть не может по условию, но тогда получается, что k-1 и k поменялись местами в исходном перемещении. А такие случаи мы договорились не рассматривать в самом начале изложения.
Объяснение, возможно, длинноватое, но я старался так писать, чтобы ничего не было упущено.
Re: решение
Date: 2012-03-09 12:41 am (UTC)no subject
Date: 2012-03-11 07:37 am (UTC)no subject
Date: 2012-03-11 07:58 am (UTC)no subject
Date: 2012-03-11 07:59 am (UTC)no subject
Date: 2012-03-29 05:42 pm (UTC)1. запишем любимые камеры узников в массив (любимая камера i-го узника записана i-м элементом)
2. сравним начальный и конечный массивы (A и B). пусть m, n - индекс первого отличия в массивах с начала и с конца, соответственно
3. пусть x - элемент на месте n в массиве B, k - его индекс в массиве A. ясно, что m<=k<=n
Докажем через индукцию по n-m, что есть пара элементов с индексами c и d, выполняющими m<=c<=d<=n, перестановка которых улучшает положение одного узника и не ухудшает положение другого. Для n-m=1 очевидно. Для других: обменяем местами a[k] и a[n]. Не может такого быть, что a[k] ухудшил свое положение или оба сохранили предыдущее положение (последнее бы означало, что a[n]=b[n]). Три остающихся варианта:
1. a[k] улучшил, a[n] не ухудшил
2. a[k] не ухудшил, a[n] улучшил
3. a[k] улучшил, a[n] ухудшил
Первы два варианта дают искомую пару, остается 3-й. По индукции, в A' (т.е. в массиве А после перестановки) есть интересующие нас c и d, выполняющие m<=c<=d<=n-1. Если c!=k и d!=k, то a[c] и a[d] - это искомая пара. Если c<k=d, тогда a[k] и a[n] - это искомая пара. Наконец, если c=k<d, то искомая пара - это a[k], a[d].