Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Алгоритмы Алгоритм решения задач динамического программирования https://www.cyberforum.ru/ algorithms/ thread1734299.html
Здравствуйте, нужно решить следующую задачу посредством метода динамического программирования. Максимизировать z=(y1+2)^2+y2y3+(y4-5)^2 при условиях y1+y2+y3+y4<=5 yi>=0 и целые,i=1,2,3,4....
Тасовка Алгоритмы
Как растасовать так, чтобы в каждой колонке был как минимум один пустой квадрат, а в каждой строчке осталось столько красных квадратов, сколько в ней есть? В формулах не разбираюсь и сложного...
Алгоритм сравнения местоположения объектов на изображениях Алгоритмы
Здравствуйте, есть задача: Делается фото помещения в разные интервалы времени, затем они сравниваются,а именно местоположение объектов на изображениях ( есть ли смещения объектов). Например, книга...
Алгоритмы Оформление кода в блок-схемах ну вот, к примеру, код на с++ : #include <iostream> using namespace std; class Stack { private: enum { MAX = 10 }; int st; https://www.cyberforum.ru/ algorithms/ thread1733366.html
Алгоритмы Выделить связные подграфы https://www.cyberforum.ru/ algorithms/ thread1733015.html
Задача: Задан связный подграф, необходимо разделить его на максимальные связные подграфы и выделить связующие узлы (удалить их), с чего начать? Может быть есть какие то описания алгоритмов как это...
Алгоритмы Генерация "случайного" числа
Приветствую всех! Подскажите алгоритм для генерации последовательностей "случайных" чисел в диапазоне от 4352 до 65535. Алгоритм должен иметь входные данные, чтобы, в зависимости от них, он...
составить алгоритм решения задачи на машине тьюринга:если в слове нечетное количество букв, то после каждой Алгоритмы
Здравствуйте! помогите, пожалуйста, составить алгоритм решения задачи на машине тьюринга:если в слове нечетное количество букв, то после каждой буквы поставить ! заранее благодарна
Алгоритмы Описание процесса создания программы Своим первым языком программирования выбрал C и недавно начал по чуть-чуть его изучать и возник вопрос по поводу описания действий алгоритма. Конкретно,как описывать действия(Блок-схемы или... https://www.cyberforum.ru/ algorithms/ thread1732540.html
Алгоритмы Конструирование машины Поста https://www.cyberforum.ru/ algorithms/ thread1732165.html
Дано два массива меток находящихся на некотором расстоянии друг от друга. Разработать программу для машины Поста, которая соединяет их в один массив. Каретка находится над.Крайней левой меткой...
Алгоритмы Задачи по НАМ Есть 2 задачи: 1.Задано алфавит A = {а, b, c}. В Непустое словир P удвоить первый символ, то есть приписать этот символ слева в P. 2.Входной алфавит A = {а, b}. Приписать справа к слову P столько... https://www.cyberforum.ru/ algorithms/ thread1731998.html
Модератор
2563 / 1755 / 386
Регистрация: 26.03.2015
Сообщений: 6,456
15.05.2016, 01:48 0

Задача Дам или задача Восьми

15.05.2016, 01:48. Просмотров 799. Ответов 4
Метки (Все метки)

Ответ

Dame с немецкого в данном контексте переводится "ферзь". Поэтому это "задача о ферзях", а не "задача дам".
Выкладывать код с комментариями на немецком - это признак дурного тона.
Использовать для переменных не английские имена - это очень плохой стиль программирования.

Судите сами:
Знаете, что такое обфуска́ция? Используется она для того, чтобы читающему было сложнее разобраться в коде. Один из приёмов обфускации - дать переменным бессмысленные названия. Как, например, brettgroesse. Ведь, не зная немецкого, я не могу понять смысл. И даже в словаре не могу найти, так как не знаю, что искать надо Brettgröße.


Вот Вы пишите про метод QueenFits
In die Methode stellt fest , ob die Dame i in der Spalte j aufgestellt werden kann
а сами для параметра i передаёте значение brettgroesse (строка 40).
Поэтому в строке 40 меняем brettgroesse на i.

Теперь разберёмся с i.
Судя по инициализации (строка 21) и условию "i == brettgroesse" (строка 42), i меняется в диапазоне от 1 до brettgroesse.
А судя по коду метода QueenFits и условию "i<brettgroesse-1" (строка 45), i меняется в диапазоне от 0 до brettgroesse - 1.
Поэтому в строке 21 пишем:
placeQueens(arr, brettgroesse, 0);
а в строке 42 пишем:
if( i == brettgroesse - 1)




з.ы. А вообще задача решается в три строки:
Haskell
1
2
3
queens n = foldM f [] [1..n] where
      f qs _ = [q:qs | q <- [1..n] \\ qs, q `notDiag` qs] 
      q `notDiag` qs = and [abs (q - qi) /= i | (qi,i) <- qs `zip` [1..]]


Вернуться к обсуждению:
Задача Дам или задача Восьми
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.05.2016, 01:48
Готовые ответы и решения:

Задача о размене -задача динамического программирования?
Является ли задача о размене суммы задачей динамического программирования? Мне кажется нет. хотя...

Управления ресурсами или транспортная задача
Всем привет! Недавно поставили задачу и я даже не знаю за что первым хвататься. Вообщем обобщенно...

алгоритм какой-то или задача в лоб?
Есть циферблат (как у часов, но если у часов 12 чисел, то тут может быть 10000000). Надо пройтись...

Есть определенная задача. На чем лучше писать, C++ или C#
Прошу не пинать ногами, отличия C# от C++ я уже изучил. Интересует ваше мнение. Сам привык работать...

4
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.