Главная страница
    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.47 MB
Время: 0.034 c
3-1086267642
Jiny
2004-06-03 17:00
2004.06.27
Возможно проблема с TFrame


14-1087020424
YurikGL
2004-06-12 10:07
2004.06.27
На пиратских копиях Windows XP не установится Service Pack 2


1-1086769550
AGGRESSOR
2004-06-09 12:25
2004.06.27
Excel OLE


3-1085906835
Jet
2004-05-30 12:47
2004.06.27
Нужна помощь по Filter.


8-1081418501
@ndrew
2004-04-08 14:01
2004.06.27
рисование на канве





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский