Russian
Поставим коня в центре шахматного поля и покажем все его возможные ходы, см. рисунок
pic. 1. Обычно шахматам учат
детей. Меня, кажеться, научил дед, когда мне было 6 лет. Дед сказал, что конь ходит как буква "Г" из русского алфавита ("L" из английского).
Т.е. 2 клетки вперёд и 1 в сторону. Сразу хочу оговориться, что как и у любой другой шахматной фигуры, возможные ходы коня
могут быть ограничены границами шахматной доски или другими фигурами.
Давайте теперь посмотрим на ходы коня глазами взрослого человека окончившего общеобразовательную школу. Посмотрим с позициий
алгебры и геометрии. На рисунке
pic. 6 видно, что ход как буква "Г"("L") - это движение по катетам прямоугольного треугольника, тогда
расстояние между началом и концом движения коня - являеться гипотенузой. К прямоугольному треугольнику можно применить теорему Пифагора.
a
2+b
2=c
2 (1)
2
2+1
2=c
2 (2)
c
2=5 или c=5
0.5≈2.2361 (3)
Теперь посмотрим на
pic. 2. Все его возможные ходы коня находяться на одинаковом расстоянии 5
0.5≈2.2361 от его текущей
позиции. А это, в свою очередь, есть определение окружности. И так,
ходы коня находяться на окружности радиуса 50.5≈2.2361 !
Теперь перейдём к задаче в которой конь должен обойти все клетки шахматной доски, побывав в каждой клетке только 1 раз.
Известно, что Варнсдорф (на немецком Warnsdorf) опубликовал труд "Самое простое и общее решение задачи Россельшпрунга" в марте 1823 г.
на тему обхода конём шахматной доски на 68 страницах, см.
https://books.google.com/books?id=zvNdAAAAcAAJ.
Эту же задачу решал и Эйлер. В 20-м параграфе Варнсдорф доказывает, что
стратегия коня - идти в точку с меньшим количеством ходов !
Я давно написал программу на HTML/CSS/Javascript используя рекурсию. Которая была опубликована на GeoCities(Yahoo) и CodeProject. Мой родственник нашёл 1 точку случайно, когда не всё поле покрываеться; со временем я нашёл ещё 2 точки программно.
В случае, когда конь имеет 2 одинаковые возможности с минимальным количеством ходов, то нужно проверить каждую точку
дополнительно на 1 шаг вглубь.
English
I place the knight in the middle of the chessboard and show all possible knight's moves, as seen in Picture 1. Children are taught chess, and I recall that my grandfather taught me when I was six years old. He told me that a knight moves like the letter "Г" in Russian (or "L" in English). In other words, it moves two squares forward and one square to the side. It’s also important to note that a knight's movement, like that of any other chess piece, can be restricted by the boundaries of the chessboard or by other pieces.
Now, let's consider the knight's movements from the perspective of an adult who has completed general schooling. Looking at it through the lenses of algebra and geometry, we can see in Picture 6 that a knight’s movement, resembling the letter "Г" ("L"), forms the legs of a right triangle. Therefore, the distance between the starting and ending points of a knight’s move is the hypotenuse. The Pythagorean theorem can be applied to this right triangle:
a
2+b
2=c
2 (1)
2
2+1
2=c
2 (2)
c
2=5 or c=5
0.5≈2.2361 (3)
Now, let’s look at Picture 2. All of the knight’s possible moves are equidistant, about 2.2361 squares from its current position. This distance defines a circle,
so all knight moves lie on a circle with a radius of 50.5≈2.2361!
Next, let’s return to the problem where the knight must visit every square on the chessboard exactly once. It is known that in March 1823, Warnsdorf published the article *"Des Rösselsprunges einfachste und allgemeinste Lösung"* ("The simplest and most general solution to the knight’s tour" in English). The article spans 68 pages and can be found [here](
https://books.google.com/books?id=zvNdAAAAcAAJ). Euler also tried to solve this problem.
Warnsdorf proved in paragraph 20 that
the optimal strategy for the knight is to move to the square with the fewest possible subsequent moves!
A long time ago, I wrote a program in HTML/CSS/JavaScript using recursion to solve this problem. It was published on GeoCities (Yahoo) and CodeProject. A relative of mine accidentally found one case where the knight didn’t cover all the squares. Over time, I identified two more such cases programmatically. In situations where the knight has two equally valid moves with the minimum number of possible subsequent moves, you need to check each point one level deeper.