This commit is contained in:
krahets
2026-04-14 18:06:19 +08:00
parent 17b2a0b630
commit cf0747ba3e
131 changed files with 604 additions and 609 deletions
@@ -4381,7 +4381,7 @@
<h1 id="134-n">13.4 &nbsp; Задача о n ферзях<a class="headerlink" href="#134-n" title="Permanent link">&para;</a></h1>
<div class="admonition question">
<p class="admonition-title">Question</p>
<p>Согласно правилам шахмат ферзь может атаковать фигуры, находящиеся с ним на одной строке, в одном столбце или на одной диагонали. Даны <span class="arithmatex">\(n\)</span> ферзей и шахматная доска размера <span class="arithmatex">\(n \times n\)</span> ; требуется найти такие расстановки, при которых ни одна пара ферзей не может атаковать друг друга.</p>
<p>Согласно правилам шахмат ферзь может атаковать фигуры, находящиеся с ним на одной строке, в одном столбце или на одной диагонали. Даны <span class="arithmatex">\(n\)</span> ферзей и шахматная доска размера <span class="arithmatex">\(n \times n\)</span>. Требуется найти такие расстановки, при которых ни одна пара ферзей не может атаковать друг друга.</p>
</div>
<p>Как показано на рисунке 13-15, при <span class="arithmatex">\(n = 4\)</span> существует два решения. С точки зрения поиска с возвратом доска размера <span class="arithmatex">\(n \times n\)</span> содержит <span class="arithmatex">\(n^2\)</span> клеток, которые образуют все возможные выборы <code>choices</code> . По мере поочередного размещения ферзей состояние доски непрерывно меняется, и текущее содержимое доски образует состояние <code>state</code> .</p>
<p><img alt="Решения задачи о 4 ферзях" class="animation-figure" src="../n_queens_problem.assets/solution_4_queens.png" /></p>
@@ -4394,7 +4394,7 @@
<h3 id="1">1. &nbsp; Построчная стратегия размещения<a class="headerlink" href="#1" title="Permanent link">&para;</a></h3>
<p>Число ферзей и число строк доски одинаково и равно <span class="arithmatex">\(n\)</span> , поэтому легко получить следующий вывод: <strong>в каждой строке доски разрешено и нужно разместить ровно одного ферзя</strong>.</p>
<p>Иначе говоря, можно использовать построчную стратегию: начиная с первой строки, размещать по одному ферзю в каждой строке, пока не будет достигнута последняя.</p>
<p>На рисунке 13-17 показан процесс построчного размещения для задачи о 4 ферзях. Из-за ограничений размера изображения на нем раскрыта только одна ветвь поиска для первой строки, а все варианты, не удовлетворяющие ограничениям по столбцам и диагоналям, были отсечены.</p>
<p>На рисунке 13-17 показан процесс построчного размещения для задачи о 4 ферзях. Из-за ограничений размера изображения на рисунке 13-17 показана лишь одна ветвь поиска для первой строки, а все варианты, не удовлетворяющие ограничениям по столбцам и диагоналям, были отсечены.</p>
<p><img alt="Построчная стратегия размещения" class="animation-figure" src="../n_queens_problem.assets/n_queens_placing.png" /></p>
<p align="center"> Рисунок 13-17 &nbsp; Построчная стратегия размещения </p>