|
1 / 1 / 0
Регистрация: 15.12.2013
Сообщений: 5
|
|
Генерация списка всех возможных расстановок максимального количества ладей на доске N x N клеток15.12.2013, 21:39. Показов 2383. Ответов 13
Метки нет (Все метки)
Добрый вечер,
я в хаскелле новичок помогите пожалуйста решить задачу о расстановке ладьей на шахматной доске. Для кого-то может быть будет очень интересно ее решить, но у меня мало времени, чтобы с этой задачей быстро справится. Задача: "Генерация списка всех возможных расстановок максимального количества ладей на доске N x N клеток таким образом, чтобы ни одна из ладей не била другую. Ладьёй называется фигура, ходящая прямо в горизонтальном или вертикальном направлении."
0
|
|
| 15.12.2013, 21:39 | |
|
Ответы с готовыми решениями:
13
Цикл для всех возможных расстановок Проверка смежных клеток, максимум из всех возможных вариантов Рекурсия: найти число расстановок N ладей, которые симметричны относительно диагоналей и не бьют друг друга |
|
1 / 1 / 0
Регистрация: 15.12.2013
Сообщений: 5
|
|
| 16.12.2013, 16:30 [ТС] | |
|
Как раз в хаскель сложно это реализовать. С java я бы справился.
0
|
|
|
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
|
|
| 16.12.2013, 20:25 | |
|
2
|
|
|
|
|||||||
| 16.12.2013, 20:33 | |||||||
|
По-хорошему, это задача на генерацию всех перестановок ряда [1..n], если последовательностью [x1,x2,..] обозначать расстановку, где на 1 строке находится на позиции x1, на 2 строке — на позиции x2 и т.д., по 1 ладье на строку. Я предлагаю несколько общее решение с бэктрекингом, допускающая абстракцию от вида кодирования и спокобе взаимодействия фигур.
Не по теме: Английский знаю плохо, поэтому поясняю слова, которыя я мог использовать неправильно: Можно в качестве аргумента ф-ции arrange передать любой способ взаимодействия, например, взаимодействие по диагонали учесть, тогда будет расстановка ферзей.
2
|
|||||||
|
1 / 1 / 0
Регистрация: 15.12.2013
Сообщений: 5
|
||||||
| 16.12.2013, 23:22 [ТС] | ||||||
|
спасибо за помощь))
а как бы вы написали таким же способом основную функцию, имеющею такую сигнатуру
0
|
||||||
|
|
||||||||||||||||
| 16.12.2013, 23:59 | ||||||||||||||||
|
Перестановка permutation :: [Int] порождает такую расстановку
1
|
||||||||||||||||
|
1 / 1 / 0
Регистрация: 15.12.2013
Сообщений: 5
|
||||||
| 17.12.2013, 04:25 [ТС] | ||||||
|
большое спасибо)) все легко и просто идёт, когда знаешь стандартные функции в Хаскель))
Добавлено через 3 часа 53 минуты а как бы вы решили подобную задачу, только с игрой домино. берется любое количество домино, где одна домино-косточка соответствует паре
и из всех возможных "генераций рядов/строк", должно быть проверено, являются ли эти "домино-ряды/строки" , то есть должно быть проверено могут ли к друг другу присоединены как бы функция domino должна потом выдать эти "домино-ряды"
0
|
||||||
|
|
|
| 17.12.2013, 05:10 | |
|
Ну попробуйте сделать. Подсказки:
1. Можете создать "базу" всех домино, используя обычный map (дважды). 2. Перестановку ряда можно сделать стандартными средствами, используя "базу" в качестве аргумента. 3. Используйте filter над всем рядами, чтоб выделить подходящие. Предикат подходящего ряда сами можете описать.
1
|
|
|
1 / 1 / 0
Регистрация: 15.12.2013
Сообщений: 5
|
||||||
| 18.12.2013, 02:33 [ТС] | ||||||
|
я попробовал так решить задачу с домино
если у кого-то есть идеи, что можно улучшить или сделать эффективнее или сократить, покажите пожалуйста ![]()
1
|
||||||
|
|
|||||||||||||||||||||
| 27.02.2014, 04:07 | |||||||||||||||||||||
|
Подыму старую тему в виду того, что она интересная.
Приведу свои результаты. Сравниваются стандартная функция permutations, вариант автора и мой вариант (три разные стратегии); также два варианта check, которые отличаются только организацией кода. Также приводится вариант с фильтрацией на этапе формирования перестановок domino'. Код с тестами под GHC
Что сразу бросается в глаза, глядя на самую последнюю таблицу (колонка %time) 1. простое переписывание check в check' без изменения логики улучшает производительность. 2. стандартная permutations работает быстрее любой частной реализации, концепция mxplusln последовательного размещения каждого элемента на каждой возможной позиции работает быстрее моей концепции о последовательном размещении на каждой позиции всех возможных элементов. 3. фильтр во время генерации перестановок рулит ))
1
|
|||||||||||||||||||||
| 09.03.2014, 16:06 | |
|
А может определитель по строке разложить .
каждый моном - это произведение чисел которые лежат одиночно и в строке и в столбце. всего мономов факториал штук . А каждый элемент монома содержит координату .
0
|
|
| 09.03.2014, 16:06 | |
|
Помогаю со студенческими работами здесь
14
Генерация всех возможных ключей Генерация всех возможных комбинаций Зная текущую положение шахматного коня на доске перечислить список всех уникальных возможных положений Как сосчитать количество всех возможных путей короля по шахматной доске с клетки а1 на эту же клетку а1
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|