![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| lancelot555 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 19.2.2005 Репутация: нет Всего: нет |
Входные данные: Массив слов...
на выходе нужно получить все возможные комбинации этих слов с заданной сложностью(кол-во слов, которое может быть в комбинации) Перебором не хотелось бы делать.. Есть ли какие то алгоритмы для этого? Вроде как кол-во возможных вариантов комбинаций для сложности 1 равно кол-ву слов факториал.. а если сложность выше? --------------------
Hи что так не поpтит цель, как попадание! =) |
|||
|
||||
| masp |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 22.2.2007 Репутация: нет Всего: 2 |
я толком ничего не понял ... можно поподробнее
как вы будете имена генерить ? |
|||
|
||||
| lancelot555 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 19.2.2005 Репутация: нет Всего: нет |
наверно смутило слово имен...
входные данные: 1. hello motor car light 2. 2 1 это массив слов, 2ое сложность.. нужно получить на выходе все комбинации слов складывая их попарно... т.е. hello-motor car-motor и т.д. ( вроде их кол-во будет N! ) Сложность может быть любой.. например если 3 : должно быть на выходе hello-motor-car motor-car-hello car-motor-hello и т.п. тут уже кучи вариантов... Это сообщение отредактировал(а) lancelot555 - 22.1.2009, 17:30 --------------------
Hи что так не поpтит цель, как попадание! =) |
|||
|
||||
| Jamon |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 1.9.2007 Репутация: нет Всего: нет |
думаю, можно сделать дерево:
на первом уровне у нас n входных элементов на втором - к каждому элементу из первого уровня привязываются все остальные элементы, кроме него самого (т.к., по всей видимости, в комбинации не должно быть повторов). Далее нужно определится: hello-world и world-hello - это одна и та же комбинация или нет. В зависимости от этого нужно добавить фильтры при построени очередного уровня (чтобы фильтровать повторы - если считается, что это одинаковые комбинации). Сложность в данном случае - число уровней, соответственно, нужно делать алгоритм рекурсивным. Затем для построения коллекции самих комбинаций нужно будет обойти все ветки дерева. А чтобы посчитать число комбинаций, это вроде в теорвере называется выборки - там должна быть формула. |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
была уже такая тема, один товарищ её обозвал комбинаторикой. только ему нужен был пример с символами, думаю не сложно будет переделать на слова:
|
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |