Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
3 / 3 / 2
Регистрация: 17.05.2010
Сообщений: 67
1

Создать DLL для генерации перестановок и сочетаний

24.03.2014, 14:24. Показов 780. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Необходимо создать DLL для генерации перестановок и сочетаний.
Вот основная программа

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include <stdio.h>
 
int A[100];
int cnt;
int N;
 
void Combination(int n, int m);
void Permutation(int n);
 
int main() {
    printf("----- Combination(6, 4):\n");
    Combination(6, 4);
        
    printf("----- Permutation(4):\n");
    Permutation(4);
    
    getchar();
    return 0;
}
  
void Combination(int n, int m) {
     int cnt = 0;
     for(int i=0; i<m; i++) A[i] = i;
     int p = m-1;
     while(p >= 0) {
         printf("%3d. ", ++cnt);
         for(int i=0; i<m; i++) printf("%3d", A[i]);
         printf("\n");
         if(A[m-1] == n-1) p--; else p = m-1;
         if(p >= 0)
             for(int i=m-1; i>=p; i--) A[i] = A[p] + i - p + 1;            
    }
}
 
void reverse(int m) {
    int i=0;
    int j=m-1;
    while(i < j) {
        int r = A[i];
        A[i] = A[j];
        A[j] = r;
        i++;
        j--;
    }  
}
    
void antilex(int m) {
    if(m == 1) {
        printf("%3d. ", ++cnt);
        for(int i=0; i<N; i++) printf("%3d", A[i]);
        printf("\n");
    } else
        for(int i=0; i<m; i++) {
            antilex(m-1);
            if(i < m-1) {
                int r = A[i];
                A[i] = A[m-1];
                A[m-1] = r;
                reverse(m-1);
            }
        }
}
    
void Permutation(int n) {
    cnt = 0;
    N = n;
    for(int i=0; i<n; i++) A[i] = i; 
    antilex(n);
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.03.2014, 14:24
Ответы с готовыми решениями:

Число размещений, сочетаний, перестановок для данной генеральной совокупности
Составить программу считающую число размещений, сочетаний, перестановок для данной генеральной...

Алгоритм генерации сочетаний
Добрый день, помогите пожалуйста с решением данной задачи: Напишите программу для решения задачи...

Программа генерации сочетаний
Добрый день, есть задание написать программу генерации сочетаний, алгоритм дан в учебнике, после...

Генерации сочетаний из N по М с выводом в файл
Уважаемые программисты Опубликуйте, пожалуйста, программу на ТР для генерации сочетаний...

1
3 / 3 / 2
Регистрация: 17.05.2010
Сообщений: 67
26.03.2014, 22:38  [ТС] 2
upp
0
26.03.2014, 22:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.03.2014, 22:38
Помогаю со студенческими работами здесь

Произвести генерацию - сочетаний, размещений и перестановок (из M по N) вручную
Я студент. Я выполнил три лабораторные. Генерацию перестановок. Генерацию сочетаний. Генерацию...

Найти все комбинации сочетаний и перестановок элементов списка
Найти все комбинации сочетаний и перестановок элементов списка Добавлено через 8 минут список...

Найти все комбинации сочетаний и перестановок элементов списка
разработать программу для нахождения всех комбинаций сочетаний и перестановок элементов...

Алгоритм генерации перестановок в лексикографическом порядке
У меня проблема. Нужно перебрать все лексикографически следующие перестановки. Вот мой код. Одна...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru