Задача про вісім ферзів: відмінності між версіями

[перевірена версія][перевірена версія]
Вилучено вміст Додано вміст
BunykBot (обговорення | внесок)
м Категоризація за вмістом
BunykBot (обговорення | внесок)
м заміна застарілого тегу source
Рядок 42:
 
Для шахівниці 8×8 програма переглядає {{formatnum:15720}} позицій.
<sourcesyntaxhighlight lang="python">
def queenproblem(rows, cols):
if rows <= 0:
Рядок 74:
return False
return True
</syntaxhighlight>
</source>
 
Цей рекурсивний алгоритм можна перетворити на ітеративний алгоритм без рекурсії.
 
=== Реалізація задачі про вісім ферзів на мові програмування С++ ===
<sourcesyntaxhighlight lang="cpp">
#include "stdafx.h"
#include <iostream>
Рядок 125:
return 0;
}
</sourcesyntaxhighlight><br />
 
=== Програмування в обмеженнях ===
Рядок 133:
Наступна програма мовою [[Пролог (мова програмування)|Пролог]] (діалект ''[[GNU Prolog]]'') швидко знаходить розв'язок і для задач на більших шахівницях.
 
<sourcesyntaxhighlight lang="Prolog">
/* Цей предикат створює список, який відповідає розв'язку задачі.
Список містить числа від 1 до N без повторів. */
Рядок 153:
not_beats(_,[],_).
not_beats(X,[Y|Xs],N) :- X#\=Y+N, X#\=Y-N, T#=N+1, not_beats(X,Xs,T).
</syntaxhighlight>
</source>
 
== Розв'язки ==