2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Как доказать, что карты соберутся в первой кучке?
Сообщение01.06.2009, 00:05 
Заслуженный участник


14/12/06
881
Вот начало задачи, которая давалась на первом курсе физфака по программированию.
$m$ карт раскладывается на $n$ кучек, затем берётся та кучка, в которую упала последняя карта и раскладывается в те же кучки в том же порядке, затем снова та кучка, в которую упала последняя карта раскладывается и так далее.
Например, если имеется три кучки и три карты, то процесс выглядит так (указано текущее число карт в кучках, подчёркнута кучка, в которую упала последняя карта): 1 1 1, 2 1 0, 1 2 0, 2 1 0, 3 0 0.
Вопрос: обязательно ли настанет такой момент, когда все карты соберутся в первой кучке?
Как это доказать для любых $m$ и $n$ ($m\ge n$)?

 Профиль  
                  
 
 Re: Как доказать, что карты соберутся в первой кучке?
Сообщение01.06.2009, 00:15 
Модератор
Аватара пользователя


11/01/06
5660
zbl в сообщении #218757 писал(а):
Например, если имеется три кучки и три карты, то процесс выглядит так (указано текущее число карт в кучках, подчёркнута кучка, в которую упала последняя карта): 1 1 1, 2 1 0, 1 2 0, 2 1 0, 3 0 0.

А разве тут такой расклад: 1 1 1, 2 1 0, 1 2 0, 0 3 0 ?
Или я не понял как вы раскладываете карты из позиции 2 1 0 ?
zbl в сообщении #218757 писал(а):
Вопрос: обязательно ли настанет такой момент, когда все карты соберутся в первой кучке?

В первой или все-таки одной? В примере выше у меня получается, что все карты попадают во вторую кучку.

Вот тут была похожая задачка: http://www.nsu.ru/phorum/read.php?f=29&i=5624&t=5467

 Профиль  
                  
 
 Re: Как доказать, что карты соберутся в первой кучке?
Сообщение01.06.2009, 00:22 
Заслуженный участник


14/12/06
881
maxal в сообщении #218759 писал(а):
zbl в сообщении #218757 писал(а):
Например, если имеется три кучки и три карты, то процесс выглядит так (указано текущее число карт в кучках, подчёркнута кучка, в которую упала последняя карта): 1 1 1, 2 1 0, 1 2 0, 2 1 0, 3 0 0.

А разве тут такой расклад: 1 1 1, 2 1 0, 1 2 0, 0 3 0 ?
Или я не понял как вы раскладываете карты из позиции 2 1 0 ?

Из 2 1 0 (последняя лежит в первой кучке, берём её) раскладываем снова точно так же: берём две в руку из первой кучки, кладём в первую одна, во второй уже одна есть -- туда идёт ещё одна.
Получается 1 2 0 -- последняя упала во вторую кучку.

-- 01 июн 2009 01:31 --

maxal в сообщении #218759 писал(а):
zbl в сообщении #218757 писал(а):
Вот тут была похожая задачка: http://www.nsu.ru/phorum/read.php?f=29&i=5624&t=5467

Похожая; но решения там не вижу.
Тут, конечно, тоже интересно количество шагов, и даже больше скажу -- интересна финальная перестановка карт в колоде в зависимости от числа кучек.
Но в данный момент интересен только факт, соберутся или нет при любых числах карт и кучек -- как это строго показать?

 Профиль  
                  
 
 Re: Как доказать, что карты соберутся в первой кучке?
Сообщение01.06.2009, 06:09 
Заслуженный участник
Аватара пользователя


23/08/07
5420
Нов-ск
Не соберутся в одной кучке.
Например, 4 карты кидаем в 2 кучки: 1, 2, 1, 1 (это в какую кучку кидаем карту)

 Профиль  
                  
 
 Re: Как доказать, что карты соберутся в первой кучке?
Сообщение01.06.2009, 06:14 
Модератор
Аватара пользователя


11/01/06
5660
TOTAL
Как я понял, для 4-х карт и 2-х кучек получаются такие расклады:
2 2
3 1
4 0

 Профиль  
                  
 
 Re: Как доказать, что карты соберутся в первой кучке?
Сообщение01.06.2009, 06:31 
Заслуженный участник
Аватара пользователя


23/08/07
5420
Нов-ск
maxal
Если раскладывать в указанном мною порядке, то получаются расклады
3 1
2 2
1 3
3 1
.............

 Профиль  
                  
 
 Re: Как доказать, что карты соберутся в первой кучке?
Сообщение01.06.2009, 06:40 
Модератор
Аватара пользователя


11/01/06
5660
TOTAL
Игра начинается с разложения $m$ по $n$ кучкам, то есть по сути с позиции:
$$m \underbrace{0\ 0\ \dots\ 0}_{n-1}$$
и нужно доказать, что начав с этой позиции, мы в нее же рано или поздно вернемся.

 Профиль  
                  
 
 Re: Как доказать, что карты соберутся в первой кучке?
Сообщение01.06.2009, 06:52 
Заслуженный участник
Аватара пользователя


23/08/07
5420
Нов-ск
Я не так понимаю задачу. В условии не сказано про порядок раскладки в кучки. Я считал порядок раскладки произвольным. Главное, чтобы при последующих раскладках этот порядок соблюдался. Пусть автор уточняет условие.

 Профиль  
                  
 
 Re: Как доказать, что карты соберутся в первой кучке?
Сообщение01.06.2009, 06:55 
Модератор
Аватара пользователя


11/01/06
5660
TOTAL
А по-моему все понятно. Раскладывая 4 карты по 2-м кучкам, получаем 2 2; а 7 карт по 3-м кучкам - 3 2 2 и т.д.
См.:
zbl в сообщении #218757 писал(а):
$m$ карт раскладывается на $n$ кучек, затем берётся та кучка, в которую упала последняя карта и раскладывается в те же кучки в том же порядке

 Профиль  
                  
 
 Re: Как доказать, что карты соберутся в первой кучке?
Сообщение01.06.2009, 10:21 
Заслуженный участник
Аватара пользователя


23/08/07
5420
Нов-ск
maxal в сообщении #218784 писал(а):
Игра начинается с разложения $m$ по $n$ кучкам, то есть по сути с позиции:
$$m \underbrace{0\ 0\ \dots\ 0}_{n-1}$$
и нужно доказать, что начав с этой позиции, мы в нее же рано или поздно вернемся.

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

 Профиль  
                  
 
 Re: Как доказать, что карты соберутся в первой кучке?
Сообщение01.06.2009, 10:28 
Модератор
Аватара пользователя


11/01/06
5660
TOTAL
Обратимость ходов - нетривиальная часть задачи.
Я скоро набросаю доказательство.

-- Mon Jun 01, 2009 02:35:13 --

Доказательство.

Позицией назовем вектор $p=(k,q_1,q_2,\dots,q_n)$, где $q_i$ количество карт в $i$-й кучке и $k$ - номер кучки из которой предстоит сделать ход, причем $q_1+q_2+\dots+q_n = m$, $1\leq k\leq n$ и $q_j>0$ для всех $j\leq k$.

Пусть $f(p)$ - это функция, которая позицию $p=(k,q_1,q_2,\dots,q_n)$ переводит в новую позицию, раскидывая карты из кучки $k$ согласно правилам.

Докажем, что для каждой позиции $p$ найдется по крайней мере одна позиция $p'$, для которой $f(p')=p$. Рассмотрим в $p$ кучки с минимальным количеством карт, а среди них самую левую - пусть ее номер равен $t$ (таким образом, для $j<t$ мы имеем $q_j\geq q_t+1$, а для $j\geq t$ - соответственно $q_j\geq q_t$).

Возможны следующие случаи:
1) Если $k\geq t$, то положим
$$p' = (t,q_1 - q_t, \dots, q_{t-1} - q_t,   k q_t + (n-k) (q_t - 1), q_{t+1} - q_t, \dots, q_{k} - q_t, q_{k+1} - (q_t - 1), \dots, q_n - (q_t - 1));$$
2) если $k<t$ и существует такое $j\leq k$, что $q_j = q_t + 1$, то переопределим $t$ равным минимальному такому $j$, попадая таким образом в случай 1) рассмотренный выше;
3) если $k<t$ и для всех $j\leq k$ выполняется $q_j > q_t + 1$, то положим
$$p' = (t,q_1 - (q_t + 1), \dots, q_k - (q_t + 1), q_{k+1} - q_t, \dots, q_{t-1} - q_t, k (q_t + 1) + (n-k) q_t, q_{t+1} - q_t, \dots, q_n - q_t)$$
Обозначим это построение через $p' = g(p)$. Для заданной позиции $p$ вектор $g(p)$ также является позицией. Причем, как нетрудно проверить, $f(g(p))=p$.

Пусть $p$ - произвольная позиция. Рассматривая последовательные итерации $g(\cdot)$ на $p$, из конечности числа различных позиций, заключаем, что либо $g^{(q)}(p)=p$ для некоторого натурального $q$, либо существует такие неотрицательные целые числа $q_1$ и $q_2$, что $g^{(q_1)}(p)\ne g^{(q_2)}(p)$ и $g^{(q_1+1)}(p)= g^{(q_2+1)}(p)$. Второй вариант, однако, невозможен, так как в нем получается противоречие:
$$g^{(q_1)}(p) = f(g^{(q_1+1)}(p)) = f(g^{(q_2+1)}(p)) = g^{(q_2)}(p).$$

Итак, получаем, что $g^{(q)}(p)=p$ для некоторого натурального $q$, а значит и $f^{(q)}(p) = p$, то есть начав с произвольной позиции $p$ мы обязаны в нее же и вернуться при итерациях $f(\cdot)$.
Другими словами, мы доказали, что $f$ и $g$ являются взаимно-обратными перестановками на множестве позиций.

 Профиль  
                  
 
 Re: Как доказать, что карты соберутся в первой кучке?
Сообщение01.06.2009, 11:00 
Заслуженный участник
Аватара пользователя


23/08/07
5420
Нов-ск
Пусть после очередного хода последняя карта положена в кучку $K.$
Отложим в буфер по одной карте из кучки $K$ и изо всех кучек с меньшими номерами.

1 IF(одна из кучек пустая) THEN
на предыдущем ходе была разобрана пустая кучка с наименьшим номером,
а количество карт в ней было равно отложенному количеству карт

(восстановили предыдущую позицию)
ELSE
Изо всех кучек отложим в буфер по одной карте; GOTO 1
ENDIF

 Профиль  
                  
 
 Re: Как доказать, что карты соберутся в первой кучке?
Сообщение01.06.2009, 13:47 
Заслуженный участник


14/12/06
881
maxal в сообщении #218831 писал(а):
Доказательство.

Спасибо.
Это то, что было нужно.

maxal в сообщении #218831 писал(а):
причем $q_1+q_2+\dots+q_n = m$, $1\leq k\leq n$ и $q_j>0$ для всех $j\leq k$.

Опечатка? $q_j\ge 0$

 Профиль  
                  
 
 Re: Как доказать, что карты соберутся в первой кучке?
Сообщение01.06.2009, 15:21 
Модератор
Аватара пользователя


11/01/06
5660
zbl в сообщении #218887 писал(а):
maxal в сообщении #218831 писал(а):
причем $q_1+q_2+\dots+q_n = m$, $1\leq k\leq n$ и $q_j>0$ для всех $j\leq k$.

Опечатка? $q_j\ge 0$

Нет. $k$ - это кучка, куда легла последняя карта, поэтому в ней и во всех предыдущих кучках должна быть как минимум одна карта, то есть $q_j>0$.

 Профиль  
                  
 
 Re: Как доказать, что карты соберутся в первой кучке?
Сообщение07.06.2009, 05:07 
Модератор
Аватара пользователя


11/01/06
5660
В связи с этой задачкой добавил в OEIS последовательности A161135..A161138
Последние две, кстати, нуждаются в большем числе членов - может, найдутся желающие могут повычислять?

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: YandexBot [bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group