Professional Documents
Culture Documents
ФЕІ-11 Вовк Андрій лабораторна робота №3
ФЕІ-11 Вовк Андрій лабораторна робота №3
ЛАБОРАТОРНА РОБОТА №3
«Комбінаторика»
Підготував
студент ФЕІ-11
Вовк Андрій
Перевірив
ас. Шмигельський Ярослав Антонович
Львів 2022
Звіт
Частина 1
1. Створити нову бібліотеку Comb(Comb.h, Comb.cpp)
int main()
{
SetConsoleOutputCP(1251);
while (true)
{
int o;
cout << "Виберіть дію" << endl;
cout << "1. Обчислити кількості розміщень та сполучень" << endl;
cout << "2. Генерування перестановок" << endl;
cout << "3. Генерування сполучень" << endl;
cin >> o;
switch (o)
{
case 1:
int n, k;
cout << "Введіть n -> ";
cin >> n;
cout << "Введіть k ->";
cin >> k;
if (n < k)
{
cout << "Помилка! n повинне бути більшим за k";
return 0;
}
case 3:
int m;
cout << "N = ";
cin >> n;
cout << "M = ";
cin >> m;
A = new int[n];
for (int i = 0; i < n; i++)
A [i] = i + 1;
show(A, m);
if (n >= m)
{
while (GenComb(A, n, m))
show(A, m);
}
default:
break;
}
}
2) Comb.h
#pragma once
int F(int n)
{
if (n == 1)
return 1;
else
return n * F(n - 1);
}
{
return pow(n, k);
}
int P(int n)
{
return F(n);
}
int part3()
{
int n, m, * A;
cout << "N = ";
cin >> n;
cout << "M = ";
cin >> m;
A = new int[n];
for (int i = 0; i < n; i++)
A[i] = i + 1;
show(A, m);
if (n >= m)
{
while (GenComb(A, n, m))
show(A, m);
}
return 0;
}
Висновок:
Під час виконання лабораторної роботи я ознайомився з
основними правилами комбінаторики та її об’єктами, а також
навчився генерувати перестановки та сполучення в
лексографічному порядку.