Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.01.2009, 12:41   #1
Witaliy
Форумчанин Подтвердите свой е-майл
 
Регистрация: 27.04.2008
Сообщений: 179
По умолчанию Задача (наверное на перебор)

Добрый день всем
У меня такая задача:
Есть шахматная доска N на N и К одинаковых камней. Нужно посчитать, сколькими способами можно разложить камни по клеточкам так, чтобы в каждой строке и в каждом столбце доски было не более одного камня.
Например N=2 K=2
Відповіть:2

Как я понял, доску можно изобразить в виде матрицы NxN. Тогда по очереди раскладывать по К камней и проверять, есть в каждом столбце и в каждой строке количество камней = 1.

Проблема в том, как за однин шаг разложить К камней на матрицу (например там где камень можно заполнить числом 1, а где его нет 0). Остальной алгоритм я сам смогу доделать.

Очень всем спасибо
www.programmer.uaforums.net - Український форум програмістів.

www.satellite.ipsys.net - Український форум супутникового телебачення.
Witaliy вне форума Ответить с цитированием
Старый 18.01.2009, 16:17   #2
Witaliy
Форумчанин Подтвердите свой е-майл
 
Регистрация: 27.04.2008
Сообщений: 179
По умолчанию

Как я понял, надо делать через перебор
www.programmer.uaforums.net - Український форум програмістів.

www.satellite.ipsys.net - Український форум супутникового телебачення.
Witaliy вне форума Ответить с цитированием
Старый 18.01.2009, 16:39   #3
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Мне кажется здесь матрица и перестановки не нужны.
Если s-количество способов, то при к=1 s=n^2; при n=2 и k=2 s=2;
во всех остальных случаях s=n^2* (n-1)^2*(n-2)^2 ... (n-k+1)^2;
Напрашивается рекурсивная функция F(n,k).
puporev вне форума Ответить с цитированием
Старый 18.01.2009, 18:06   #4
Witaliy
Форумчанин Подтвердите свой е-майл
 
Регистрация: 27.04.2008
Сообщений: 179
По умолчанию

Спасибо, всё понял
Цитата:
Мне кажется здесь матрица и перестановки не нужны.
Действительно, в задаче N <= 10 000.... ))))
www.programmer.uaforums.net - Український форум програмістів.

www.satellite.ipsys.net - Український форум супутникового телебачення.
Witaliy вне форума Ответить с цитированием
Старый 18.01.2009, 18:11   #5
Witaliy
Форумчанин Подтвердите свой е-майл
 
Регистрация: 27.04.2008
Сообщений: 179
По умолчанию

А если есть число в виде строки S, и в ней нужно вичеркивать К символов. Нужно перероботать все варианты и узнать найменше (найменьше число). Как такое сделать?
www.programmer.uaforums.net - Український форум програмістів.

www.satellite.ipsys.net - Український форум супутникового телебачення.
Witaliy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перебор и его сокращения *Zimnij* Общие вопросы C/C++ 1 04.01.2009 14:38
Психо Гипноз....Наверное зря Я сюда это выложил.)))) Izhic Свободное общение 5 23.10.2008 16:25
Перебор элементов матрицы pikkk Общие вопросы Delphi 3 09.05.2008 14:45
Задача на большой перебор МаксимNEWProgramm Паскаль, Turbo Pascal, PascalABC.NET 2 06.04.2008 18:15