Породження перестановок ефективним методом
Состав работы
|
|
Работа представляет собой файл, который можно открыть в программе:
- Microsoft Word
Описание
Мета: навчитися робити породження перестановок ефективним методом
Теоретичні відомості:
Послідовність n! перестановок на множині {1, 2, ..., n},
в якій сусідні перестановки розрізняються так мало, як тільки
можливо, - найкраще, на що можна сподіватися з точки зору міні-
мізації обсягу роботи, необхідного для породження перестали-
вок. Для того щоб така відмінність була мінімально можливим,
будь-яка перестановка в нашій послідовності повинна відрізняти-
ся від попередньої їй транспозицією двох сусідніх елементів.
Таку послідовність перестановок легко побудувати рекур-
вибухобезпечний. Для n = 1 єдина перестановка {1} задовольняє на-
шим вимогам. Припустимо, ми маємо послідовність
перестановок p1; p2> p3> - на множині {1, 2, ..., n}, в якій після-
довательности перестановки розрізняються тільки транспозицією
суміжних елементів. Розширимо кожну з цих (і - 1)! перестали-
вок, вставляючи елемент п на кожне з я можливих місць. Порядок
породжуваних таким чином перестановок буде наступним:
Постанова задачі
1. Реалізувати робочу програму та блок-схему породження перестановок ефективним методом на мові С
2. Ввести у вхідний файл EffectIn.txt довжину перестановки (порядковій номер -5) n=6.
3. Отримати вихідний файл EffectOut.txt виду 1) 1 2 3 4 5 6, де 1) – номер перестановки, а все інше – перестановка.
Виконання роботи
1. Побудував блок-схему до програми
3. Текст програми
#include <iostream>
#include <time.h>
#include <ctime>
const int n_max=20;
typedef int Vector[n_max+1];
FILE *f;
void Effect(Vector z, int n);
void Effect(Vector z, int n){
long int k=0;
Висновок: навчитися робити породження перестановок ефективним методом за допомогою програми на мові С
Теоретичні відомості:
Послідовність n! перестановок на множині {1, 2, ..., n},
в якій сусідні перестановки розрізняються так мало, як тільки
можливо, - найкраще, на що можна сподіватися з точки зору міні-
мізації обсягу роботи, необхідного для породження перестали-
вок. Для того щоб така відмінність була мінімально можливим,
будь-яка перестановка в нашій послідовності повинна відрізняти-
ся від попередньої їй транспозицією двох сусідніх елементів.
Таку послідовність перестановок легко побудувати рекур-
вибухобезпечний. Для n = 1 єдина перестановка {1} задовольняє на-
шим вимогам. Припустимо, ми маємо послідовність
перестановок p1; p2> p3> - на множині {1, 2, ..., n}, в якій після-
довательности перестановки розрізняються тільки транспозицією
суміжних елементів. Розширимо кожну з цих (і - 1)! перестали-
вок, вставляючи елемент п на кожне з я можливих місць. Порядок
породжуваних таким чином перестановок буде наступним:
Постанова задачі
1. Реалізувати робочу програму та блок-схему породження перестановок ефективним методом на мові С
2. Ввести у вхідний файл EffectIn.txt довжину перестановки (порядковій номер -5) n=6.
3. Отримати вихідний файл EffectOut.txt виду 1) 1 2 3 4 5 6, де 1) – номер перестановки, а все інше – перестановка.
Виконання роботи
1. Побудував блок-схему до програми
3. Текст програми
#include <iostream>
#include <time.h>
#include <ctime>
const int n_max=20;
typedef int Vector[n_max+1];
FILE *f;
void Effect(Vector z, int n);
void Effect(Vector z, int n){
long int k=0;
Висновок: навчитися робити породження перестановок ефективним методом за допомогою програми на мові С
Другие работы
Формы и условия привлечения банковского кредита
alfFRED
: 25 октября 2013
Введение
1. Теоретическая сущность, классификация и анализ инвестиционных рисков
1.1 Понятие и классификация инвестиционных рисков
1.2 Анализ инвестиционных рисков
1.3 Меры снижения риска инвестиционного проекта
2. Краткая организационно-экономическая характеристика ООО «ТД «Вятские минеральные воды» за 2008-2009 гг.
2.1 Общие сведения о ООО «ТД «Вятские минеральные воды»
2.2 Анализ основных экономических показателей
2.3 Оценка финансового состояния предприятия
3. Анализ инвестиционных р
10 руб.
Вычислительная математика. Экзамен. Билет №10.
LowCost
: 26 мая 2020
Билет №10
1. Найдите методом трапеций, разбив интервал интегрирования на 10 частей. Оцените погрешность полученного значения.
2. Определите, какое равенство точнее (найдите относительные погрешности).
70 руб.
Управление данными. Базы данных.
ezhva
: 29 июня 2022
- - - Всего 75 вопросов-ответов - - -
1. Подзапрос, возвращающий множество значений - это … подзапрос
2. Ссылочная целостность может быть нарушена при выполнении операции …
3. Оператор … фильтрует группы строк объекта в соответствии с указанным условием
4. Совокупность допустимых значений, из которой берутся значения соответствующих атрибутов определенного отношения, – это …
5. Основополагающие для организации складов данных принципы – это …
6. Модель, отображающая информационные объекты, их сво
210 руб.
Рабинович Сборник задач по технической термодинамике Задача 169
Z24
: 30 ноября 2025
Для использования теплоты отходящих газов двигателя мощностью N=2500 кВт установлен подогреватель, через который проходит L=60000 м³/ч воздуха при температуре t1=15 ºC и давлении р=0,101 МПа. Температура воздуха после подогревателя равна 75 ºС. Определить, какая часть теплоты топлива использована в подогревателе. КПД двигателя принять равным 0,33. Зависимость теплоемкости от температуры линейной.
Ответ: 71%.
150 руб.