Добавил:
БГУИР ПОИТ Дистанционное Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ИПР1_В4 / ИПР1 / ИПР1

.pdf
Скачиваний:
22
Добавлен:
06.10.2021
Размер:
505.96 Кб
Скачать

БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ

Кафедра программного обеспечения информационных технологий

Факультет ФКСиС Специальность ПОИТ

Индивидуальная практическая работа №1

по дисциплине «Дискретная математика»

тема: «Элементы комбинаторики»

Вариант 4

Выполнил студент: Бордон Е.С. группа 991051 Зачетная книжка № 99105004

Минск 2020

Задание 1.

Сколькими способами из колоды в 36 карт можно выбрать неупорядоченный набор из 4-х карт так, чтобы в этом наборе было бы в точности:

4

3 дамы, 2 крестовые карты

 

 

Так как в колоде есть только 1 крестовая дама, существует только одно подмножество для решения задачи

1 крестовая дама – 1;

2 дамы – С32=3;

1 крестовая карта (не дама) – 8;

Общее число способов выбора 4-х карт, удовлетворяющих условию задачи равно: 1 * 3 * 8 = 24;

Ответ: 24.

Задание 2.

Дано множество А (см. таблицу ниже).

Для каждого пункта, указанного ниже, нужно найти количество объектов, а также получить сами соответствующие объекты.

1)Сколькими способами из множества А можно выбрать 2 различные цифры?

2)Сколько различных трехзначных чисел можно записать из цифр, входящих

вмножество А (цифры в записи числа могут повторяться)?

3)Сколько различных трехзначных чётных (нечётных) чисел можно записать из цифр, входящих в множество А (цифры в записи числа могут повторяться)?

4)Сколько различных трехзначных чисел можно записать из цифр, входящих

вмножество А (все цифры в записи числа различны)?

5)Сколько различных трехзначных чётных (нечётных) чисел можно записать из цифр, входящих в множество А (все цифры в записи числа различны)?

4

{0,2,3,6}

 

 

1. Сколькими способами из множества А можно выбрать 2 различные цифры?

2

=

4!

= 6.

 

 

4

 

2!(4−2)!

 

 

 

 

{{0,2}, {0,3}, {0,6}, {2,3}, {2,6}, {3,6}}

2. Сколько различных трехзначных чисел можно записать из цифр, входящих в множество А (цифры в записи числа могут повторяться)?

3 * 4 * 4 = 48;

(A\ {0}) x A x A = {2,3,6} x {0,2,3,6} x {0,2,3,6} =

{(2,0,0), (2,0,2), (2,0,3), (2,0,6), (2,2,0), (2,2,2), (2,2,3), (2,2,6), (2,3,0), (2,3,2), (2,3,3), (2,3,6), (2,6,0), (2,6,2), (2,6,3), (2,6,6), (3,0,0), (3,0,2), (3,0,3), (3,0,6), (3,2,0), (3,2,2), (3,2,3), (3,2,6), (3,3,0), (3,3,2), (3,3,3), (3,3,6), (3,6,0), (3,6,2), (3,6,3), (3,6,6), (6,0,0), (6,0,2), (6,0,3), (6,0,6), (6,2,0), (6,2,2), (6,2,3), (6,2,6),

(6,3,0), (6,3,2), (6,3,3), (6,3,6), (6,6,0), (6,6,2), (6,6,3), (6,6,6)}.

3. Сколько различных трехзначных чётных (нечётных) чисел можно записать из цифр, входящих в множество А (цифры в записи числа могут повторяться)?

Нечетные:

Последняя цифра выбирается из подмножества {1} множества А.

3 * 4 * 1 = 12;

(A\{0}) x A x {1} = {2,3,6} x {0,2,3,6} x {1} = {(2,0,1), (2,2,1), (2,3,1), (2,6,1), (3,0,1), (3,2,1), (3,3,1), (3,6,1), (6,0,1), (6,2,1), (6,3,1), (6,6,1)}.

Четные:

Последняя цифра выбирается из подмножества {0,2,6} множества А.

3 * 4 * 3 = 36;

(A\{0}) x A x {0,2,6} = {2,3,6} x {0,2,3,6} x {0,2,6} ={ (2,0,0), (2,0,2), (2,0,6), (2,2,0), (2,2,2), (2,2,6), (2,3,0), (2,3,2), (2,3,6), (2,6,0), (2,6,2), (2,6,6), (3,0,0), (3,0,2), (3,0,6), (3,2,0), (3,2,2), (3,2,6), (3,3,0), (3,3,2), (3,3,6), (3,6,0), (3,6,2), (3,6,6), (6,0,0), (6,0,2), (6,0,6), (6,2,0), (6,2,2), (6,2,6), (6,3,0), (6,3,2), (6,3,6), (6,6,0), (6,6,2), (6,6,6) }

4.Сколько различных трехзначных чисел можно записать из цифр, входящих

вмножество А (все цифры в записи числа различны)?

3* 3 * 2 = 18;

{2} x ({0} x {3, 6} {3} x {0, 6} {6} x {0, 3})

{3} x ({0} x {2, 6} {2} x {0, 6} {6} x {0, 2})

{6} x ({0} x {2, 3} {2} x {0, 3} {3} x {0, 2}) =

={(2,0,3), (2,0,6), (2,3,0), (2,3,6), (2,6,0), (2,6,3)}{(3,0,2), (3,0,6), (3,2,0), (3,2,6), (3,6,0), (3,6,2)}{(6,0,2), (6,0,3), (6,2,0), (6,2,3), (6,3,0), (6,3,2)} =

={ (2,0,3), (2,0,6), (2,3,0), (2,3,6), (2,6,0), (2,6,3), (3,0,2), (3,0,6), (3,2,0), (3,2,6), (3,6,0), (3,6,2), (6,0,2), (6,0,3), (6,2,0), (6,2,3), (6,3,0), (6,3,2) }.

5. Сколько различных трехзначных чётных (нечётных) чисел можно записать из цифр, входящих в множество А (все цифры в записи числа различны)?

Нечетные:

1 * 2 * 2 = 4;

{2} x {0,6} x {3} {6} x {0,2} x {3} = {(2,0,3), (2,6,3), (6,0,3), (6,2,3)}

Четные:

Если последняя цифра 2 или 6: 2 * 2 * 1 = 4 Если последняя цифра 0: 3 * 2 * 1 = 6 Общее количество возможных чисел: 4+4+6=14

{2} x {3,6} x {0} {2} x {0,3} x {6}

{3} x {2,6} x {0} {3} x {0,6} x {2} {3} x {0,2} x {6}

{6} x {2,3} x {0} {6} x {0,3} x {2} =

= { (2,3,0), (2,6,0), (2,0,6), (2,3,6), (3,2,0), (3,6,0), (3,0,2), (3,6,2), (3,0,6), (3,2,6), (6,2,0), (6,3,0), (6,0,2), (6,3,2) }

Задание 3.

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

Набор элементов

 

 

4

aaa b cc dd

 

 

Программа написана на языке pascal в программной среде Lazarus.

В программе реализована генерация сочетаний задаваемой длинны K из элементов a,b,c,d также задаваемой длины. Реализовано сохранение в текстовый файл результатов работы программы.

Рис 1. Схема работы программы

Процедура генерации всех возможных комбинаций, удаления лишних и внесения результатов в ListBox:

procedure TForm1.Difficult(Sender: TObject); // Сортировка и вывод var

sl :TStringList;

 

procedure Gen(S0,S1 : string);

 

var

 

i,j: integer;

 

s: string;

 

c:char;

 

begin

 

if length(S1) > 1 then

// Генерация всех возможных перестановок

for i:=1 to length(S1) do

 

Gen(S0+S1[i],copy(S1,1,i-1) + copy(S1,i+1,length(S1))) // S0 увеличивается на 1, S1

уменьшается

 

else

 

begin

 

s:= copy(S0+S1,1,k_count);

// Обрезаем результат до длины K

for i:=1 to k_count-1 do

// Сортируем по алфавиту элементы

for j:=i+1 to k_count do if ord(s[i])>ord(s[j]) then begin

c:=s[i];

s[i]:=s[j];

s[j]:=c;

end; //Добавляем в Stringlist sL.Add(s);

end;

end;

begin

sL:= TStringList.Create; sL.Sorted:= True;

sL.Duplicates:= dupIgnore; // Удаление всех дубликатов Gen('',n_s_count);

ListBox1.Items.Assign(sL);

sL.Free;

Label17.Caption:= 'Число сочетаний: ' + IntToStr(Form1.ListBox1.Items.Count); end;

Результаты работы программы:

Соседние файлы в папке ИПР1