Комбинаторика
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Комбинаторика - 2012-05-07 12:10:29.860000
|
|
|
Proritsatel
Сообщений: 4
Оценки: 0
Присоединился: 2012-05-07 11:51:10.890000
|
Приветствую! Подскажите… есть ли такая программа и где её взять которая бы генерировала все возможные комбинации из числа заданных к примеру слов и сохраняла бы их формате txt. Примет: Задаем к три слова: Вася, любит, спать. А программа выдает все возможные комбинации этих слов…. Вася, любит, спать любит, Вася, спать спать, Вася, любит спать, любит, Вася ……….и т.д. Заранее благодарю!
|
|
|
RE: Комбинаторика - 2012-05-07 12:20:56.153333
|
|
|
The Joker
Сообщений: 3485
Оценки: 99
Присоединился: 2008-10-07 16:22:13.730000
|
Такую лабуду написать – как два пальца об асфальт. Prosiratel, давай вдвоём напишем?
|
|
|
RE: Комбинаторика - 2012-05-07 12:48:07.946666
|
|
|
sh3llc0d3
Сообщений: 54
Оценки: 0
Присоединился: 2012-03-09 00:14:15.473333
|
The Joker, lol.
|
|
|
RE: Комбинаторика - 2012-05-07 12:49:31.550000
|
|
|
GothX
Сообщений: 263
Оценки: 20
Присоединился: 2011-06-22 13:27:08.173333
|
На том же паксале - 10 минут работы
|
|
|
RE: Комбинаторика - 2012-05-07 14:31:07.943333
|
|
|
Proritsatel
Сообщений: 4
Оценки: 0
Присоединился: 2012-05-07 11:51:10.890000
|
Я только за! Мне бы просто понять принцип формирования комбинаций. Я бы и сам написал… Это был простой пример… на самом деле задача тяжелее, а цель не создать библиотеку для bruta а решить математическую модель заимодействия магнитных сил)))… Проблема для меня в том, что у меня 39 значений (первоначальный ряд), одна комбинация состоит из 5 значений из первоначального ряда. Число возможных неповторяющихся комбинаций (сочитаний) = 575757 шт. Мне нужно видеть все эти сочитания для дальнейшей обработки, при чем каждое значение комбинации должно отделятся друг от друга какой либо литерацией (пробел и т.д.). Если вы можете чем то помочь. Буду признателен! P/S Я не прошу написать мне код… я прошу обьяснить принцип построения комбинаций (не числовых).
|
|
|
RE: Комбинаторика - 2012-05-07 18:13:45.996666
|
|
|
The Joker
Сообщений: 3485
Оценки: 99
Присоединился: 2008-10-07 16:22:13.730000
|
quote:
ORIGINAL: Proritsatel я прошу обьяснить принцип построения комбинаций Это правильный подход. Объяснюю на пальцах. Есть у тебя какой-то набот (чего угодно – цифр, чисел, слов, дебилов и т.д.). Для наглядности представь, что эти дебилы все сидят закрытые в палате номер 6. Санитар Федя заходит в палату, хватает первого попавшегося и ведёт на процедуры. Полсе процедур отпускает его из дурки, или переводит в реанимацию – не существенно, главное, чтобы не обратно в шестую палату. Потом провожает следующего на процедуры. И так, пока не закончатся пациенты. Задача найти все возможные последовательности, в которых дебилы пройдут через проце-дурную. Эти последовательности называются перестановками. Алгоритм такой: * Выстраиваем дебилов в ряд (в любой последовательности, лишь бы как-то начать). Назовём эту шеренгу дебилов массивом М. M[1] это первый в ряду, M[2] это второй и т.д. Считаем их. len(M) это общее число дебилов в ряду, или длинна массива. Их число важно – оно будет числом итераций в наружном цикле и числом вложенных циклов. Достаём бумажку, на которой мы будем записывать все полученные последовательности. * Запускаем самый внешний цикл (начинаем с первого и до последнего дебила в ряду). При первой итерации цикла спрашиваем имя первого дебила в ряду (при второй будем спрашивать у второго и т.д.) и записываем его. Ставим запятую, ибо в ряду ещё остались дебилы. * Запускаем второй (вложенный) цикл. Смотрим какие дебилы остались неопрошенными. Их должно остаться len(M)-1. У них тоже будем спрашивать имя, по одному за цикл, до последнего. Записываем и ставим запятую. … * Запускаем последний (самый-самый вложенный) цикл. В этом цикле у нас остаётся всего один элемент (строго говоря, это и не цикл вовсе, но каждый раз будут оставаться разные элементы). Спросили его имя, записали, поставили точку и перешли на новую строку. Возвращаемся в предпоследний цикл. … * Возвращаемся в самый последний (наружный) цикл, переходим к следующему элементу и записываем его в начало строки и снова по циклам… … * Обойдя все элементы, выходим из внешнего цикла. В результате, на нашей бумажке будут все варианты перестановок дебилов в шеренге. Теперь пример. Есть набор "Трус", "Балбес" и "Бывалый". Три элемента. Внешний цикл надо будет прокрутить три раза. Вложенных циклов тоже будет три. Первый цикл, первый проход. "Трус"! Записали, поставили запятую. Осталось двое ("Балбес" и "Бывалый"). Второй цикл, первый проход. "Балбес"! Записали, поставили запятую. Остался один. Третий цикл, первый (и единственный) проход. "Бывалый"! Записали, поставили точку. Второй цикл, второй проход. "Бывалый"! Записали, поставили запятую. Третий цикл – "Балбес"! Записали, поставили точку. Первый цикл, второй проход. "Балбес"! Записали, поставили запятую. Осталось двое ("Трус" и "Бывалый"). Второй цикл, первый проход. "Трус"! Записали, поставили запятую. Остался один. Третий цикл, первый (и единственный) проход. "Бывалый"! Записали, поставили точку. Второй цикл, второй проход. "Бывалый"! Записали, поставили запятую. Третий цикл – "Трус"! Записали, поставили точку. Первый цикл, второй проход. "Бывалый"! Записали, поставили запятую. Осталось двое ("Трус" и "Балбес"). Второй цикл, первый проход. "Трус"! Записали, поставили запятую. Остался один. Третий цикл, первый (и единственный) проход. "Балбес"! Записали, поставили точку. Второй цикл, второй проход. "Балбес"! Записали, поставили запятую. Третий цикл – "Трус"! Записали, поставили точку. В результате получаем: Трус, Балбес, Бывалый. ____, Бывалый, Балбес. Балбес, Трус, Бывалый. ______, Бывалый, Трус. Бывалый, Балбес, Трус. ________, Трус, Балбес. Заполнив пробелы именами сверху, получаем полный список перестановок.
|
|
|
RE: Комбинаторика - 2012-05-07 18:19:29.463333
|
|
|
zzsnn
Сообщений: 7459
Оценки: 680
Присоединился: 2007-09-25 07:17:14.240000
|
Тут http://algolist.manual.ru/maths/combinat/ описаны сами алгоритмы и даны их примеры на Pascal . Похоже твой вопрос это http://algolist.manual.ru/maths/combinat/permutations.php . Просмотри. Может тогда уточнишь свой вопрос.
|
|
|
RE: Комбинаторика - 2012-05-08 09:54:35.273333
|
|
|
Proritsatel
Сообщений: 4
Оценки: 0
Присоединился: 2012-05-07 11:51:10.890000
|
quote:
ORIGINAL: zzsnn Тут http://algolist.manual.ru/maths/combinat/ описаны сами алгоритмы и даны их примеры на Pascal . Похоже твой вопрос это http://algolist.manual.ru/maths/combinat/permutations.php . Просмотри. Может тогда уточнишь свой вопрос. Я как раз изучал эти ссылочки!
|
|
|
RE: Комбинаторика - 2012-05-08 09:59:35.853333
|
|
|
Proritsatel
Сообщений: 4
Оценки: 0
Присоединился: 2012-05-07 11:51:10.890000
|
The Joker. Обьяснил мастерски… принцип понял…а это самое главное. Спасибо. P/S Всем спасибо кто откликнулся!
|
|
|
|
|