Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.27;
Скачать: CL | DM;

Вниз

Алгоритм нахождения всех перестановок   Найти похожие ветки 

 
Walkie Talkie   (2004-06-10 16:11) [0]

Блин, чё-то сообразить никак не могу... парюсь с этим рекурсивом...

В общем есть такое: obj: array[1..10] of string;

а result:=obj[1]+obj[2]+...+obj[10];

Вот нужно создать прогу, которая "перетасовывала" этот obj, чтобы получить все возможные перестановки... их N!... в данном случае 10!
реализация нужна для любого количеста элементов...


 
MBo ©   (2004-06-10 16:33) [1]

именно строки переставлять нужно?
начни с символов или небольших чисел.
Включи голову - раз тебе нужно реализовать задачу именно рекурсивно, и известно, что количество вариантов N! - значит, процедура будет вызывать себя с изменяющимся на единицу аргументом - вот от этого и пляши.


 
Walkie Talkie   (2004-06-10 19:56) [2]


> раз тебе нужно реализовать задачу именно рекурсивно

а разве можно по-другому?

PS Хотелось бы более практический совет...


 
GuAV ©   (2004-06-10 22:11) [3]

похожую задачку уже решал:
http://delphimaster.net/view/1-1086250968/


 
Aldor ©   (2004-06-10 22:21) [4]

Во-первых www.google.com + "permutation generation"

 Во-вторых, Кнут, первый том, описан не один оригальный способ, в частности http://acm.uva.es/p/v100/10063.html.

       Удачи!


 
default ©   (2004-06-10 22:24) [5]

http://algolist.manual.ru/maths/combinat/permutations.php


 
default ©   (2004-06-10 22:28) [6]

Aldor ©   (10.06.04 22:21) [4]
у Кнута по-моему больше теор-ки этот момент разобран...могу ошибаться


 
Aldor ©   (2004-06-11 00:05) [7]

default ©   (10.06.04 22:28) [6]
у Кнута по-моему больше теор-ки этот момент разобран...

 Не могу сказать точно, под рукой сейчас нет, но даже если там не приведен код на mix-assembler"е (что, скорее всего автору поста не понадобится), то там алгроитм описан словесно - для таких простых алгоритмов этого, мне кажется, вполне достаточно.


 
Walkie Talkie   (2004-06-11 00:27) [8]


> http://algolist.manual.ru/maths/combinat/permutations.php


Как это я не заметил спасибо... хотя не совсем то, но я уже адаптировал.

Кто столкнётся с такой же проблемой - используйте второй, рекурсивный алгоритм - его проще понять и он более универсален, так как первй использует то, что все символы - цифры, да и ещё в возрастающем порядке... частный случай в общем...



Страницы: 1 вся ветка

Текущий архив: 2004.06.27;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.049 c
8-1077738996
Opilki_Inside
2004-02-25 22:56
2004.06.27
Оверлеи


4-1084729893
NiaSoft
2004-05-16 21:51
2004.06.27
Как сделать свою панель задач


14-1086907355
ИМХО
2004-06-11 02:42
2004.06.27
"Тихий Дон" Шолохова и одноименный фильм


3-1085978892
angelcom
2004-05-31 08:48
2004.06.27
Опять может повторюсь...


4-1084981535
IceMaster
2004-05-19 19:45
2004.06.27
Системный трей