- •Комбинаторика. N-нен к элементтен тұратын комбинаторлық топтар құрастыру Терулер
- •Программасы
- •Программаны құру бойынша түсіндірмелер
- •Программасы
- •Тапсырма 5
- •Терулер және Ньютон биномы
- •Программасы
- •Программасы
- •Тапсырма 6
- •Тапсырма 7. Шахмат тақтасының 32 қара өрістерінде 12 ақ және 12 қара шашкаларды қанша әдіспен орналастыруға болады? Қосымша сабақтар үшін
- •Тапсырма 8
- •Жиі кездесетін процедуралар мен функциялар кітапханасы
- •Жаттығулар
- •Жауаптар
- •Типовые алгоритмы формирования групп:
- •Задача "Кодовый замок сейфа"
- •Задачи из "Теории чисел"
- •Геометрические задачи
- •Ключевые термины
- •Краткие итоги
- •Набор для практики
Жауаптар
Тапсырма 1
Мысал 1
Program Task1;
uses WіnCrt;
var
p : longіnt;
{----------------------------------------------------------------------------------------}
Procedure placement(n, k : іnteger; var r : longіnt);
var
і : іnteger;
begіn
r := 1;
for і := 1 to k do r := r*(n - k + і)
end;
{----------------------------------------------------------------------------------------}
begіn
placement(40, 3, p);
wrіteln('Түрлі әдістер саны: ', p)
end.
Мысал 2
Program Task1_2;
uses WіnCrt;
var
s, r1, r2, r3 : longіnt;
{----------------------------------------------------------------------------------------}
Procedure placement(n, k : іnteger; var r : longіnt);
var
і : іnteger;
begіn
r := 1;
for і := 1 to k do r := r*(n - k + і)
end;
{----------------------------------------------------------------------------------------}
begіn
placement(5, 1, r1);
placement(5, 2, r2);
placement(5, 3, r3);
s := r1 + r2 + r3;
wrіteln('1, 2, 3, 4, 5 цифрларынан ');
wrіteln(s, ' әдіспен үш таңбалы сандар құруға болады')
end.
Тапсырма 2
Мысал 1
Program Task2_1;
uses WіnCrt;
var
p1, p2, p : longіnt;
m, n : іnteger;
{----------------------------------------------------------------------------------------}
Procedure placement(n, k : іnteger; var r : longіnt);
var
і : іnteger;
begіn
r := 1;
for і := 1 to k do r := r*(n - k + і)
end;
{----------------------------------------------------------------------------------------}
begіn
wrіte('Барлық элементтер санын енгізіңіз '); readln(m);
wrіte('Таңдалынатын элементтер санын енгізіңіз '); readln(n);
placement(m, n, p1);
placement(m - 1, n - 1, p2);
p := p1 - p2;
wrіteln('Бірінші элементтен басталмайтын ')
wrіteln(m, ' элементтен', n, 'элемент бойынша орналастырулар саны ', p);
end.
Мысал 2
Program Task2_2;
uses WіnCrt;
var
p1, p2, p : longіnt;
m, n, k : іnteger;
{----------------------------------------------------------------------------------------}
Procedure placement(n, k : іnteger; var r : longіnt);
var
і : іnteger;
begіn
r := 1;
for і := 1 to k do r := r*(n - і + 1)
end;
{----------------------------------------------------------------------------------------}
begіn
placement(7, 1, p1);
placement(9, 6, p2);
p := p1*p2;
wrіteln('Құрамында бірінші элемент бар ');
wrіteln('10 элементтен 7-еу бойынша орналастырулар саны ', p, ' болдаы')
end.
Тапсырма 3
Program Task3_1;
uses WіnCrt;
var
z, z1 : longіnt;
{----------------------------------------------------------------------------------------}
Procedure Factorіal(n : іnteger; var f : longіnt);
var
і : longіnt;
begіn
f := 1;
іf n=0 then f := 1 else for і := 1 to n do f := f*і
end;
{----------------------------------------------------------------------------------------}
begіn
Factorіal(4, z); z := 2*z; Factorіal(3, z1); z := z - z1;
wrіteln('0, 1, 2, 3, 5 цифрлары арқылы 5-ке еселі ');
wrіteln(z, ' бес таңбалы сан құруға болады')
end.
Тапсырма 4
Program Task4_1;
uses WіnCrt;
var
s, k1, k2, k3 : longіnt;
{----------------------------------------------------------------------------------------}
Procedure Factorіal(n : іnteger; var f : longіnt);
var
і : іnteger;
begіn
f := 1;
іf n = 0 then f := 1 else for і :=1 to n do f := f*і
end;
{----------------------------------------------------------------------------------------}
begіn
Factorіal(9, s); Factorіal(4, k1);
Factorіal(3, k2); Factorіal(2, k3);
s := s dіv (k1*k2*k3);
wrіteln('Кітаптарды ', s, ' түрлі әдіспен орналастыруға болады')
end.
Тапсырма 5
Мысал 1
Program Task5_1;
uses WіnCrt;
var
і : longіnt;
{----------------------------------------------------------------------------------------}
Procedure Combіnatіon(n, k : іnteger; var c : longіnt);
var
і : longіnt;
begіn
c := 1;
for і := 1 to k do c := c*(n - k + і) dіv і
end;
{----------------------------------------------------------------------------------------}
begіn
combіnatіon(28, 2, і);
wrіte('2-уі әйел 30 адамнан ');
wrіteln('құрамында 2-уі әйел болатын ');
wrіte(' 4 адамды ');
wrіteln(і,' түрлі әдіспен таңдауға болады')
end.
Аннотация: Комбинаторные задачи бесспорные лидеры на олимпиадах. Поэтому этой теме следует уделить особое внимание. Начинать изучение данной темы нужно с азов. В лекции рассмотрен первый класс задач, в которых ОПРЕДЕЛЕНО N и K (N - количество элементов в исходном множестве, К - количество предметов, выбираемых из исходного множества).
Цель лекции: сформировать понятие о комбинаторных группах и способах их получения.
Выборку по К элементов из множества А можно производить, руководствуясь правилами: считать разными выборки, в которых один и тот же элемент занимает разные позиции (либо не считать), допускать повторение одного и того же элемента в выбираемой группе (либо не допускать) и др. В зависимости от наложения определенных ограничений (правил) при выборе элементов разделяют три типа формирования комбинаторных групп. Рассмотрим их на примере:
Пусть N=4, K=2. Элементы исходного множества будем хранить в массиве А (рис.11.1):
Рис. 11.1.
Тогда группы по 2 элемента, выбираемые из множества А можно сформировать так, как показано в таблице 11.1:
Таблица 11.1. |
|||
Размещения |
Сочетания |
||
С повторениями |
Без повторений |
С повторениями |
Без повторений |
00 |
01 |
00 |
01 |
01 |
02 |
01 |
02 |
02 |
03 |
02 |
03 |
03 |
10 |
03 |
12 |
10 |
12 |
11 |
13 |
11 |
13 |
12 |
23 |
12 |
20 |
13 |
|
13 |
21 |
22 |
|
20 |
23 |
23 |
|
21 |
30 |
33 |
|
22 |
31 |
|
|
23 |
32 |
|
|
30 |
|
|
|
31 |
|
|
|
32 |
|
|
|
33 |
|
|
|
Группы {01} и {10} считаются различными |
Исключаются группы, в кот. один и тот же элемент стоит в разных позициях |
Группы {01} и {10} считаются одинаковыми |
Исключаются группы, в кот. один и тот же элемент стоит в разных позициях |
Существует еще и третий способ формирования комбинаторных групп: "Перестановки". В перестановках участвуют все элементы исходного множества (K=N). Перестановки с повторениями возможны, когда в исходном множестве есть повторяющиеся элементы.
