avva: (moose)
[personal profile] avva
Очень милая задачка от Джона Конвея (изобретателя игры "Жизнь").

Есть три карты: туз, король и дама, и они могут лежать на одной из трех позиций на столе перед вами - назовем эти позиции L,M,R (left, middle, right).
Карты всегда лежат лицом вверх, но если больше одной карты лежат в одной позиции, то вы видите только верхнюю. Например, может быть так, что слева лежит король на даме (и вы видите только короля), посредине туз, а справа ничего. Может, все три карты лежат справа, и вы видите только верхнюю. И так далее.

На каждом ходу вы можете переместить одну карту - всегда верхнюю - с любой позиции на любую другую. Например, если слева лежит король на даме, а посредине туз, вы можете решить снять короля и положить его на туза или на пустое место справа.

Ваша задача - придумать алгоритм, как перекладывать карты, чтобы в конце концов придти к выигрышному положению, когда слева лежат туз, король, дама (туз верхний, дама нижняя), а остальные позиции пустые. Но есть одно осложнение. У вас нет краткосрочной памяти. Каждый раз, когда вы делаете ход, вы забываете, что было раньше, и видите только карты, как они лежат сейчас.

(да, из этого следует, что вы не можете сами обнаружить, когда выиграли. Предполагаем, что есть посторонний наблюдатель, и как только в игре получается состояние туз-король-дама слева, он останавливает вас).

Это все. Нужно придумать алгоритм, который любое начальное положение приводит к выигрышному. Я думаю, что можно эту задачу решить компьютерным способом, а можно на бумаге (может, есть такие монстры, что и в уме смогут, я не из них). Я решил на бумаге, это было не очень легко и довольно приятно. Предупреждаю: если вы нашли решение и оно довольно простое, подумайте как следует, действительно ли вы учли эффект краткосрочной памяти и действительно ли любое начальное положение приходит к победе.
Page 1 of 3 << [1] [2] [3] >>

Date: 2013-12-09 11:47 am (UTC)
From: [identity profile] ilya-dogolazky.livejournal.com
глубина стопки видна? а, наверное не видна, иначе слишком просто
Edited Date: 2013-12-09 11:49 am (UTC)

Date: 2013-12-09 11:50 am (UTC)
From: [identity profile] avva.livejournal.com
не видна.

Date: 2013-12-09 11:51 am (UTC)
From: [identity profile] mudasobwa.livejournal.com
    » из этого следует, что вы не можете сами обнаружить, когда выиграли
Это почему это? Существует момент, когда я вижу карты и они лежат правильно. Или мне нужно вообще запретить смотреть на стол, что сводит задачу к медиумной.

Date: 2013-12-09 11:56 am (UTC)
self_perfection_lj: (Default)
From: [personal profile] self_perfection_lj
Если вы видите только туз в левой позиции, то возможно два варианта расположения карт (в зависимости от порядка расположения короля и дамы под тузом). Выигрышно только одно из двух расположений.

Date: 2013-12-09 11:57 am (UTC)
From: [identity profile] carfagen.livejournal.com
Например, может быть так, что слева лежит король на даме
Are we sure we are talking about card? ;-)

Date: 2013-12-09 12:06 pm (UTC)
From: [identity profile] vsh.livejournal.com
Решил! Получилось, правда, неизящно, целых четыре правила.

Date: 2013-12-09 12:07 pm (UTC)
From: [identity profile] dark-barker.livejournal.com
есть относительно немного вариантов расположения карт. даже при случайных перекладываниях очень быстро будет решение)))

вообще, очевидно, решение тут сводится к построению конечного автомата на состояниях картины которую мы видим
Edited Date: 2013-12-09 12:09 pm (UTC)

Date: 2013-12-09 12:25 pm (UTC)
From: [identity profile] freedom_of_sea.livejournal.com
если слева туз и везде пусто, а наблюдатель утверждает что мы не выиграли, значит лежит стопка туз - дама - король, в это случае кладем туза налево.
предвыигрышная позиция - король на даме, туз справа.
прочие промежуточные случаи тривиальны.

позиция при которой стопка слева, сверху туз достигается одноходовкамии

Date: 2013-12-09 12:52 pm (UTC)
From: [identity profile] melkiythegreat.livejournal.com
Я правильно понимаю что я не вижу не только нижнюю карту но и то есть ли она вобще? И не могу узнать где лежит дама если вижу туза короля и пустое место, например.

Date: 2013-12-09 12:56 pm (UTC)

Date: 2013-12-09 12:56 pm (UTC)
From: [identity profile] avva.livejournal.com
Да, именно так.

Date: 2013-12-09 12:57 pm (UTC)
From: [identity profile] avva.livejournal.com
Не очень понял, что значит "кладем туза налево" если и так уже все слева. В общем, это не выглядит правильным решением.

Date: 2013-12-09 01:02 pm (UTC)
From: [identity profile] avva.livejournal.com
Только четыре? Совсем неплохо, у меня, например, их больше (сколько в точности - смотря как считать) :)

Если вы не уверены на сто процентов и хотите проверить свое решение, то вот программа, которую я написал, чтобы проверить свое:

http://pastebin.com/BkQAKNKQ

Нужно в определении переменной decider в конце описать поведение своего алгоритма в ответ на любую конфигурацию карт, где _ означает пустую позицию. Сейчас я там вбил везде "12" вместо своего решения, что означает всегда передвинуть с первой позиции на вторую, и не работает, ясно. Нужно это поменять на "12", "13", "21", "23", "31" и "32" в соответствии со своим алгоритмом, потом запустить программу.

Date: 2013-12-09 01:03 pm (UTC)
From: [identity profile] vsh.livejournal.com
Ну да, смотря как формулировать. Сейчас проверю.

Date: 2013-12-09 01:31 pm (UTC)
From: [identity profile] vnarod.livejournal.com
Решил на бумаге пока на работу ехал. Честно говоря, не показалось очень сложным.

Date: 2013-12-09 01:37 pm (UTC)
From: [identity profile] vsh.livejournal.com
Работает. Тут как, спойлерить уже можно?

Date: 2013-12-09 01:53 pm (UTC)
From: [identity profile] ksega.livejournal.com
Я бы делал так.
1)Очевидно, какая стратегия перекладывания если бы мы видели не только верхнюю, но и карты лежащие ниже (например, сначала отложить даму посередине, а все остальные карты справа, потом начинать укладывать в порядке их слева). Таким образом Для каждого состояния расположения карт у нас есть следующее действие диктуемое стратегией.
2) Теперь для случая, когда мы видим только верхнюю карту. В таком случае наблюдаемое состояния может соответствовать от 1 до 2 полных состояний (например если мы видим туза справа и все, то это может быть туз дама король или туз король дама). И действие алгоритма такое, если состояние полностью определено(например, лежат слева направо туз король дама), то действуем в соответствии с пунктом первым, если состояние не полностью определено, то с вероятностью 0.5 выбираем действие для соответствующее первому состоянию, с вероятностью 0.5 соответствующее второму состоянию.
Очевидно, что для каждого начального состояния, есть конечная вероятность достичь результата. Мат ожидание будет конечно. Но каждая конкретная игра может занять долгое время.
Edited Date: 2013-12-09 02:06 pm (UTC)

Date: 2013-12-09 02:14 pm (UTC)
From: [identity profile] avva.livejournal.com
Если слева сверху дама, то даму налево. Если под дамой был король

Сорри, у вас дама лежит слева, поэтомы вы вернулись к первоначальным указаниям "все скидываем направо, пока не получим [_] [_] [cards]", и на этом вы зависли навсегда.

У вас нет возможности сказать себе: "ок, этот этап работы закончился, теперь ведем себя по-другому". У вас нет памяти о том, сколько до сих пор было ходов, как вы себя в них вели и какие в них были карты.

Date: 2013-12-09 02:15 pm (UTC)
From: [identity profile] iisus.livejournal.com
такие задачи показывают, насколько стохастические методы решения могут быть проще в смысле их создания

можно поломать голову и составить свод точных правил, а можно использовать случайный выбор карты и места, куда её переложить, и получить решение, затратив на порядок меньше времени

при этом, количество ходов, затрачиваемых на решение может быть в некоторых случаях быть меньше для случайного поиска, чем для детерминистического, но статистически время работы случайного метода будет, наверное, раза в полтора-два дольше

Date: 2013-12-09 02:18 pm (UTC)
From: [identity profile] captain-tylor.livejournal.com
1. КТ_, К_Т - туз на короля.
2. Прочие случаи с двумя или одной видимыми картами - кладем карту, справа от которой пусто, на это пустое место (правым от L считается M, от M - R, от R - L).
3. Если видны все три карты. Если дама на L - короля на даму. Если дама на M - даму на R. Если дама на R - L на M.

Date: 2013-12-09 02:30 pm (UTC)
From: [identity profile] avva.livejournal.com
Давайте.

Date: 2013-12-09 02:35 pm (UTC)
From: [identity profile] vsh.livejournal.com
Закольцуем места (теперь место 2 находится слева от места 0). Теперь правила, пробовать применять их надо по порядку:

Если Q на месте 0, а на остальных двух A и K, положить K на Q (идеальный сценарий)
Если K на месте 0, а на остальных двух A и пусто, положить A на K (в надежде, что это продолжение идеального сценария)
Если справа от карты X есть пустое место Y, положить карту X на это пустое место Y (разбиваем стопки в 1, 2, или 3 шага)
Положить карту справа от Q на карту слева от Q (если карты лежат плоско, передвигаем их в идеальную ситуацию)

Кстати, легко масштабируется на любое n, где n - количество карт и мест.
Edited Date: 2013-12-09 02:52 pm (UTC)

Date: 2013-12-09 02:36 pm (UTC)
From: [identity profile] sinyuk alexey (from livejournal.com)
10 правил. Левая позиция ключевая, а середина/справа - нет, поэтому середина и право могут меняться в условии.

Условие : Действие

A K/Q Q/K : A на K
K Q/A A/Q : K на A
Q K/A A/K : K на Q

0 A/K Q : Q на 0
K A 0 : A на K
A Q 0 : A на 0
Q K/A 0 : Q на 0

A 0 0 : A на 0
K 0 0 : K на 0
Q 0 0 : Q на 0
Edited Date: 2013-12-09 02:38 pm (UTC)

Три правила

Date: 2013-12-09 03:12 pm (UTC)
From: [identity profile] mudasobwa.livejournal.com
— если есть свободная ячейка — сдвигаем на нее карту слева от нее;
— если нет свободных ячеек и никто не на своем месте — кладем младшую на старшую так, чтобы потом два правых сдвига давали выигрыш или позицию «нет свободных ячеек и одна карта на месте»;
— если нет свободных ячеек и одна карта на месте, снимаем на правильно лежащую карту такую, чтобы два правых сдвига давали выигрыш.

Вроде работает.

Re: Три правила

Date: 2013-12-09 03:16 pm (UTC)
From: [identity profile] mudasobwa.livejournal.com
А, черт. Так мы получим ДКТ.
Page 1 of 3 << [1] [2] [3] >>

January 2026

S M T W T F S
    1 2 3
4 5 6 7 8 910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 11th, 2026 04:16 am
Powered by Dreamwidth Studios