2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу 1, 2, 3  След.
 
 Уравнение всех матов в шахматах в один ход
Сообщение09.12.2016, 13:55 


09/12/16
5
Приветствую. Недавно в руки попал дневник одного небезызвестного математика с интересной биографией. Нашел там очень интересную задачу, вследствие чего решил с вами поделиться. Предлагаю обсудить построение модели, ну и само решение (для желающих).
Текст.
Используя только положение фигур на шахматной доске построить уравнение всех шахов (упрощенная версия - матов).

От меня: как я понял из содержания остальной части дневника, автор предлагает составить такое уравнение, что подставив туда каким-то образом данные о положении фигур, в случае, если мат (шах) можно поставить одним действием, уравнение обращается в тождество.

 Профиль  
                  
 
 Re: Уравнение всех матов в шахматах
Сообщение09.12.2016, 14:35 
Аватара пользователя


07/01/15
1145
$$5^{m+1} = 3^{m+1} + 4^{m+1},$$
где $m -$ наименьшее количество ходов, за которое можно поставить мат.

А если серьезно, то в этой задаче и проще, и естестеннее программировать, чем выписывать уравнение. Можно расписать переборчег отдельно для ферзя, для ладьи, для коня, с учетом допусловий (перепрыгивания через фигуры запрещены) и т. д. Отличное упражнение, кстати, для адептов ООП (создать родительский класс "Фигура", расписать перегруженные функции возможных ходов для каждой отдельной фигуры $-$ объекта производного класса). Можно дать в качестве самостоятельной работы начинающим программистам и заставить их страдать.

 Профиль  
                  
 
 Re: Уравнение всех матов в шахматах
Сообщение09.12.2016, 15:13 


05/09/16
11467
regression в сообщении #1175379 писал(а):
Используя только положение фигур на шахматной доске построить уравнение всех шахов (упрощенная версия - матов).

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

 Профиль  
                  
 
 Re: Уравнение всех матов в шахматах
Сообщение09.12.2016, 16:27 
Заслуженный участник


16/02/13
4105
Владивосток
SomePupil в сообщении #1175385 писал(а):
$5^{m+1} = 3^{m+1} + 4^{m+1}$
Вы опровергли Ферма, или мне только кажется?

 Профиль  
                  
 
 Re: Уравнение всех матов в шахматах
Сообщение09.12.2016, 17:09 


09/12/16
5
SomePupil в сообщении #1175385 писал(а):
$$5^{m+1} = 3^{m+1} + 4^{m+1},$$
где $m -$ наименьшее количество ходов, за которое можно поставить мат.


К сожалению, вы меня не поняли. Нам нужно уравнение, подставив в которое положение шахмат на доске, мы сможем однозначно сказать - можно ли мат этим ходом сделать или нет. Это задача целочисленного лп, как мне видится
SomePupil в сообщении #1175385 писал(а):

А если серьезно, то в этой задаче и проще, и естестеннее программировать.
Такую программу написать ничего не стоит, беда в том, что это ни коим образом не будет уравнением. Это будет просто программа, функция математическая так сказать. Это не решение задачи в том виде, в котором она дана.

wrest в сообщении #1175391 писал(а):
regression в сообщении #1175379 писал(а):
Используя только положение фигур на шахматной доске построить уравнение всех шахов (упрощенная версия - матов).

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

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


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

 Профиль  
                  
 
 Re: Уравнение всех матов в шахматах
Сообщение09.12.2016, 17:14 
Аватара пользователя


26/09/16
198
Снегири
regression в сообщении #1175423 писал(а):
можно ли мат этим ходом сделать или нет.

В смысле, поставить на этом ходу?
В смысле, чтобы мы посмотрели на расположение фигур и вывели true или false как можно поставить или нельзя поставить?

А зачем тут тогда уравнение? Какие переменные вы туда подставите?

 Профиль  
                  
 
 Re: Уравнение всех матов в шахматах
Сообщение09.12.2016, 17:25 


10/04/12
704
SomePupil в сообщении #1175385 писал(а):
Отличное упражнение, кстати, для адептов ООП (создать родительский класс "Фигура", расписать перегруженные функции возможных ходов для каждой отдельной фигуры $-$ объекта производного класса). Можно дать в качестве самостоятельной работы начинающим программистам и заставить их страдать.


Самый непроизводительный путь осуществлять перебор. Битовые маски куда эффективней.

 Профиль  
                  
 
 Re: Уравнение всех матов в шахматах
Сообщение09.12.2016, 17:42 


05/09/16
11467
regression в сообщении #1175423 писал(а):
Однако у нас состояние поля, а если быть точнее - положение фигур, однозначно определяет все возможные ходы (на текущий момент).

Задача 1: Ход белых. Могут ли белые своим ходом объявить шах?
Изображение
Задача 2: Ход белых. Могут ли белые своим ходом объявить шах?
Изображение

 Профиль  
                  
 
 Re: Уравнение всех матов в шахматах
Сообщение09.12.2016, 17:54 
Заслуженный участник


09/05/12
25179
regression в сообщении #1175423 писал(а):
Такую программу написать ничего не стоит, беда в том, что это ни коим образом не будет уравнением. Это будет просто программа, функция математическая так сказать. Это не решение задачи в том виде, в котором она дана.
По идее, логические выражения - тоже формулы. Соответственно, всегда можно написать выражение, фактически содержащее все возможные позиции требуемого нам рода. Как следствие, всякое программное решение задачи всегда можно превратить в "формульное" и наоборот, так что такая программа - тоже решение.

 Профиль  
                  
 
 Re: Уравнение всех матов в шахматах
Сообщение09.12.2016, 17:54 
Заслуженный участник
Аватара пользователя


01/08/06
3049
Уфа
Во второй задаче не хватает чёрной пешки на e3.

 Профиль  
                  
 
 Re: Уравнение всех матов в шахматах
Сообщение09.12.2016, 18:03 


05/09/16
11467
worm2 в сообщении #1175442 писал(а):
Во второй задаче не хватает чёрной пешки на e3.

Да, спасибо!

 Профиль  
                  
 
 Re: Уравнение всех матов в шахматах
Сообщение10.12.2016, 07:59 
Аватара пользователя


22/07/08
1373
Предместья
wrest в сообщении #1175438 писал(а):
Задача 1: Ход белых. Могут ли белые своим ходом объявить шах?

Разумеется здесь не однозначное определение позиции, а двузначное.
Но эта чисто техническая проблема, и она решаема.
Достаточно определить две разных фигуры: "просто пешка" и "пешка, которая только что прошла через битое поле", и на диаграмме такую белую пешку обозначать, допустим, красным цветом, а черную - зеленым цветом.
Тогда на диаграмме сразу будет видно, какая пешка стоит на поле $d 5$ - черная, или зеленая.
Если черная - шах невозможен, если зеленая, возможно взятие на проходе с шахом: $e 5:d 6\;+$
wrest в сообщении #1175438 писал(а):
Задача 2: Ход белых. Могут ли белые своим ходом объявить шах?

Здесь аналогично можно доопределить, скажем "полнофункциональный король" - белый, а "король, потерявший право на рокировку" - красного цвета. Если король белый, возможна короткая рокировка с шахом $0-0\;+$, а если король красный, то такой ход не возможен.
Я не говорю, что нужно обязательно раскрашивать фигуры, достаточно установить какие-то флажки в описании позиции, дополнительные биты или как-то еще, но повторюсь, однозначность позиции это чисто технический вопрос.
И это мы не говорим еще о том, что для любой позиции может не быть вообще ни одного хода, если она получилась после троекратного повторения позиции и зафиксирована ничья.
Для любой, в том числе и для начальной, после ходов:
$1.\;Kg 1-f 3 \; Kg 8-f 6\quad 2.\; Kf 3-g 1\; Kf 6-g 8 \quad3. \; Kb 1-c 3\; Kb 8-c 6\quad4.\; Kc 3-b 1 \; Kc 6-b 8 \quad1/2-1/2$
:D
И еще замечание: ход с шахом не всегда будет лучшим ходом.
Я во второй позиции за белых пошел бы просто ладьей на $h 3$ без шаха, или слоном... куда-нибудь... :D
Начинающие игроки, бывает, увлекаются "шахованием", приводя позицию своих фигур в плачевное состояние...

-- Сб дек 10, 2016 07:21:49 --

iifat в сообщении #1175403 писал(а):
Вы опровергли Ферма, или мне только кажется?

Только кажется. При $m=1$ равенство таки выполняется... :D
И это действительно "наименьшее количество ходов, за которое можно поставить мат".

-- Сб дек 10, 2016 07:44:04 --

SVD-d в сообщении #1175424 писал(а):
Какие переменные вы туда подставите?

Вот основной вопрос!

 Профиль  
                  
 
 Re: Уравнение всех матов в шахматах
Сообщение10.12.2016, 12:04 


05/09/16
11467
Лукомор в сообщении #1175598 писал(а):
Но эта чисто техническая проблема, и она решаема.

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

 Профиль  
                  
 
 Re: Уравнение всех матов в шахматах
Сообщение10.12.2016, 12:25 
Аватара пользователя


22/07/08
1373
Предместья
wrest в сообщении #1175617 писал(а):
компьютеры играют в шахматы по всем правилам.

Да, но они при этом играют партию от начала до конца, а если задать такую двусмысленную позицию - компьютер "сломается"...

 Профиль  
                  
 
 Re: Уравнение всех матов в шахматах
Сообщение10.12.2016, 12:50 


09/12/16
5
wrest, товарищ Лукомор предложил то же, что и предложил бы я, зайдя вчера в топик. Все именно так и есть

Лукомор в сообщении #1175598

[quote="SVD-d в сообщении #1175424
писал(а):
Какие переменные вы туда подставите?

Вот основной вопрос![/quote]
Да-да, уже ближе к тому, чем я занимаюсь

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

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



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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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