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
1244
$$5^{m+1} = 3^{m+1} + 4^{m+1},$$
где $m -$ наименьшее количество ходов, за которое можно поставить мат.

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

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


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

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

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


16/02/13
4214
Владивосток
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
706
SomePupil в сообщении #1175385 писал(а):
Отличное упражнение, кстати, для адептов ООП (создать родительский класс "Фигура", расписать перегруженные функции возможных ходов для каждой отдельной фигуры $-$ объекта производного класса). Можно дать в качестве самостоятельной работы начинающим программистам и заставить их страдать.


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

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


05/09/16
12274
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
3151
Уфа
Во второй задаче не хватает чёрной пешки на e3.

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


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

Да, спасибо!

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


22/07/08
1416
Предместья
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
12274
Лукомор в сообщении #1175598 писал(а):
Но эта чисто техническая проблема, и она решаема.

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

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


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

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

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


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

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

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

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

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

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



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

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


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

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