- •Комбинаторика. Орын ауыстыру (перестановка), орналастыру (размещение)
- •Шешімнің математикалық алгоритмі
- •Тапсырма 3
- •Программасы
- •Тапсырма 1
- •Орналастыру көмегімен шешілетін есептер
- •Программа құру бойынша түсініктемелер
- •Программасы
- •Программаны өз бетінше орындаңыздар Тапсырма 2
- •Жаттығулар
- •12 Комбинаторика. Формирование комбинаторных групп из n по к (к - от 1 до n)
- •Ключевые термины
- •Краткие итоги
- •Набор для практики
Программасы
Program mіsal2;
uses WіnCrt;
var
n, k, a, a1 : 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
wrіte('Цифрлардың берілген мөлшерін енгізіңіз '); readln(n);
wrіte('СВведите ко-во цифр, из скольких составляется число '); readln(k);
placement(n, k , a);
placement(n - 1, k - 1, a1);
wrіteln(' 0, 1, 2, .., 9 цифрлары арқылы жазуға болатын түрлі ');
wrіteln('төрт таңбалы сандар мөлшері: ', a - a1)
end.
Тапсырма 1
Орналастыру процедурасын қолданып, программа құрыңыз.
1. 40 адамнан тұратын жиналыста өз ортасынан төрағаны, оның орынбасарын және хатшыны қанша түрлі әдіспен таңдай алады?
2. 1, 2, 3, 4, 5 цифрларынан сандардағы цифрлар қайталанбайтындай етіп қанша үш таңбалы сан құрастыруға болады?
Орналастыру көмегімен шешілетін есептер
Мысал 3. Бір адам он әріптің бірінен және бес цифрдан тұратын телефон нөмірін ұмытып кетті. Бірақ ол бұл нөмірде 3,5,7,9 цифрларының бар екенін біледі. Қажетті абонентке звондап хабарласу үшін қанша рет сынама жасап көру қажет?
Ізделініп отырған нөмірге 5
орынға түрлі әдіспен орналастыруға
болатын төрт цифр енуі қажет
,
бірақ бесінші цифр 10 цифрдің ішінен кез
келгені болуы мүмкін (0, 1, 2, ..., 9). Сондықтан
әріпсіз түрлі телефон нөмірлер саны
болады.
Бұл нөмірлерді он әріптің әрқайсысымен қоса отырып, келесіні аламыз:
10 10 .
Орналастыру процедурасын қолданып, программаны құрайық:
Program Problem3;
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(5, 4, p);
p := 10*10*p;
wrіteln('звондап хабарласу үшін ', p, ' рет сынама жасау керек')
end.
Мысал 4. n элементтен m бойынша қанша орналастыру бірінші элементтен басталады?
Программа құру бойынша түсініктемелер
n элементтен бірінші элементті таңдап алып, оны алынатын орналастыруларда бірінші орынға қатаң бекітеміз.
Сонда, ізделініп отырған жиында n-1 элемент қалады. Оның ішінен m - 1 элементтен таңдап, оны бірінші кезекте тұрған бірінші элементке қосу керек.
Енді n-1 –ден
бойынша қанша түрлі әдіспен таңдауға
болатынын анықтау қажет. Оны
әдіспен орындауға болады.
Алынатын орналастыруларда бірінші элемент бірінші орынға қатаң бекітіліп қойылғандықтан, барлық орналастырулар саны -ға тең болады.
