Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.07.11;
Скачать: [xml.tar.bz2];

Вниз

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

 
Глеб ©   (2004-06-23 11:37) [0]

Здравствуйте!

Дано число N.
Мне нудно найти все возможные пеерстановки чисел от 1 до N. Точно знаю, что их n! (n-факториал).
Подскажите, пожалуйста, хороший алгоритм нахождения всех возможных перестановок чисел.


 
nikkie ©   (2004-06-23 11:53) [1]

http://bspu.ab.ru/~pvv/shen/


 
Глеб ©   (2004-06-24 07:54) [2]

Зачем давать мне ссылку на книгу?
Мне нужен алгоритм.


 
Ozone ©   (2004-06-24 08:19) [3]

Делай обыкновенный перебор, как вариант.


 
wal ©   (2004-06-24 09:37) [4]

1. Для одного числа тривиально.
2. Для n чисел ставишь на первое место по очереди числа от [1] до [n].
3. Для оставшихся после п. 2 чисел выполняешь п. 2 для n-1 чисел.
Короче рекурсия.
Где-то видел и более красивый алгоритм, но уже не помню где, да и сам алгоритм затрудняюсь вспомнить. Вроде сложность у него была ниже, чем предложенный мной вариант. Попробуй поискать.

С уважением.


 
Igorek ©   (2004-06-24 11:39) [5]

поищи в архиве - был такой вопрос


 
nikkie ©   (2004-06-24 18:14) [6]

>[2] Глеб
Глебушка, люби книгу - источник знаний. конкретно эта книжка научит тебя большему, чем мастер-класс по программированию.


 
wl   (2004-06-24 19:31) [7]

Мне нудно найти... замечательно...


 
Ильичев С.А. ©   (2004-06-24 20:30) [8]

http://algolist.manual.ru/


 
Aldor ©   (2004-06-24 21:52) [9]

Совсем недавно в Основной поднималась эта тема. Можете поискать там.


 
Victor T   (2004-06-24 22:14) [10]

Ваял такую програмку. Тока она дома. Завтра, если не забуду, кину исходник (он маленький кажись).


 
Victor T   (2004-06-24 22:20) [11]

А вот > Ильичев С.А. ©   (24.06.04 20:30) [8] нормальную ссылку дал кстати, вот тута нашлось: http://algolist.manual.ru/maths/combinat/permutations.php
И в книге Шена тоже есть (тоже ссылку дали)


 
Victor T   (2004-06-24 22:25) [12]

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


 
jack128 ©   (2004-06-24 22:39) [13]


> Т.е. у слова к примеру "аа" получалось две перестановки,
> а нужно, чтоб была одна.

По рекурсионному алгоритму [4] - пытаешься вставить символ в i-ую позицию - если i - равен текущему, то дальше вставляешь текущий символ в i + 2 позицию, иначе в i + 1..

то есть у тя есть строка 12345 и текущий символ 2. вставляешь его
в 1 поз. - 212345
во 2  -    122345 так как в исходной строке второй символ тоже 2, то
в 4 поз.   123245 и так далее


 
Глеб ©   (2004-06-25 07:41) [14]


> Мне нудно найти... замечательно...

Ну описался просто.
Не "нудно", а "нужно".
Догадаться трудно?


 
Глеб ©   (2004-06-25 07:42) [15]

Удалено модератором



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

Форум: "Потрепаться";
Текущий архив: 2004.07.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.031 c
8-1082634969
CraKer
2004-04-22 15:56
2004.07.11
Как загрузить полноцветный курсор


4-1086023452
Manulo
2004-05-31 21:10
2004.07.11
Запуск команды от имени другого пользователя


3-1087446671
r9000
2004-06-17 08:31
2004.07.11
Определение номера колонки редактируемой таблицы.


11-1076098035
DDA
2004-02-06 23:07
2004.07.11
ImageShow problem


3-1087376529
B-boy Dimo-N
2004-06-16 13:02
2004.07.11
Вертикальная прокрутка данных в DBGrid





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский