|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.11.2014, 20:37 | #1 |
Новичок
Джуниор
Регистрация: 17.11.2014
Сообщений: 1
|
помогите вывести все перестановки, алгоритм: с помощью двух массивов
Вывести все перестановки. Перестановки содержат в себе все элементы исходного множества и отличаются между собой лишь порядком элементов. Рекурсивные алгоритм предполагает поочередный подбор элементов в перестановку.
Рекурсивная функция будет иметь один целочисленный параметр: количество подобранных на данный момент элементов перестановки (назовем его «k»). Чтобы элементы исходного множества (числа от 1 до n) не повторялись в одной перестановке мы будет использовать вспомогательную структуру (массив) для хранения информации об использовании элементов в перестановке. Если a[i] == 1 (или true) значит элемент уже используется в генерируемой перестановке, иначе a[i]==0. Кроме того, нам потребуется массив b для хранений самой перестановки. Добавляя очередной элемент в перестановку, мы будем записывать его в позицию k, то есть b[k] = x. Где x новый элемент. Рекурсивная функция на псевдокоде: функция «перестановки»(параметр k) если k == n то (мы уже набрали достаточное количество элементов) печатаем перестановку выход из функции перебираем все использованные в перестановке элементы отмечаем выбранный элемент в массиве а, как занятый добавляем выбранный элемент в массив b запуск «перестановки»(k+1) удаляем элемент из b отмечаем выбранный элемент в массиве a, как свободный текст моей неправильной программы: Код:
Последний раз редактировалось Stilet; 17.11.2014 в 23:20. |
17.11.2014, 23:24 | #3 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Э-э-э.... Я может ща глупость скажу, но перестановки это же сортировка пузырьком? Не?
I'm learning to live...
|
17.11.2014, 23:33 | #4 | |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
Цитата:
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Задачи на обработку одномерных массивов (помогите решить все на паскале ) | Жаннулька | Помощь студентам | 9 | 21.01.2014 10:50 |
задан массив чисел из n элементов. вывести все возможные варианты перестановки из n элементов по m ( на паскале ) | Sting707 | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 11.03.2012 08:20 |
Вывести все буквы данного текстового файла, входящие в файл не менее двух раз. | swillrocker | Помощь студентам | 0 | 10.06.2011 17:16 |
Множества. Вывести в алфавитном порядке все буква текста, входящие в него более двух раз | ilyas22 | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 23.05.2010 12:50 |
[Делфи]Как вывести из мемо все что есть (без циклов и массивов) | zotox | Помощь студентам | 3 | 03.05.2009 20:25 |