Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
InfOlimp_14-lab.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
202.75 Кб
Скачать

Информатикадан олимпиада есептерін шешу әдістері №14 лабораториялық жұмыс

Комбинаторика. Орын ауыстыру (перестановка), орналастыру (размещение)

Орын ауыстыру

Мысал 1. 10 адам кезекте қанша әдіспен тұруы мүмкін?

Бұл сеспті талқылай отырып, 10 адамды кезектің 10 орнында орналастыру қажет екені түсінікті болып отыр, яғни 10 элементтен 10 бойынша орналастыру қажет - . Ол мынаған тең:

= 10 9 8 ... 3 2 1 = 10!

n элементтен n бойынша орналастыру n элементтен алмастыру деп аталады. Осылайша, n элементтен екі түрлі алмастыру бір-бірінен элементтер санымен емес, элементтердің орналасу ретімен ерекшеленеді. Анықтама. M = {a1, a2, ..., an} ақырғы жиыны бар болсын. М жиынының n элементінен тұратын әрбір реттелген жиын осы жиынның алмастыруы деп аталады

Анықтамаға сәйкес n элементтен алуан түрлі алмастырулар саны төмендегіге тең:

Ұмытпаңыздар, 0! = 1.

Берілген есепті шешу үшін санның факториалын есептейтін процедурасы бар программаны құру қжет.

Program mіsal6;

uses WіnCrt;

var

n, f : 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

wrіte('Жиынның элементтер санын енгізіңіз '); readln(n);

Factorіal(n, f);

wrіteln('Он адам кезекте ', f, ' әдіспен тұруы мүмкін')

end.

Мысал 7. 2, 3, 4, 5, 9 цифрларынан қанша жұп бес таңбалы сан құруға

болады?

Шешімнің математикалық алгоритмі

Жұп сандар жұп цифрмен аяқталады. Берілген мысалда жұп сандар екеу.

Айталық, жұп санның бірі барлық жағдайда ең соңғы орында орналассын, онда барлық алынатын сандар жұп болады. Мұндай сандар нешеу болады? Оның саны қалған 4 цифрдан алынатын алмастырулар санына, яғни 4!-ға тең. Бірақ берілген сандардың ішінде тағы бір жұп сан бар. Айталық, енді осы екінші жұп сан да ең соңғы орында орналассын. Онда тағы да жұп сандар шығады және оның саны 4!-ға тең.

Нәтижеде бес таңбалы жұп сандар саны 2*4! болады.

Программаны құру қиынға соқпайды. Сондықтан да оны өз бетінше құрыңыздар.

Тапсырма 3

0, 1, 2, 3, 5 цифрларымен 5-ке бөлінетін қанша бес таңбалы сан құруға болады?

Орналастыру

Алдымен математикадағы, оның ішінде жиындар теориясындағы кейбір ұғымдарды еске түсірейік.

Біріншіден, жиын дегеніміз не? Жиын ұғымы математикада негіз қалаушы және анықталмаған болып табылады.

Жиын дегеніміз қандай да бір ортақ белгісі бойынша біріккен объектілер жиынтығы

Осылайша, сыныптағы орындықтар мен үстелдер жиыны жөнінде, натурал сандар жиыны, бүтін, рационал және нақты сандар жиыны туралы айтуға болады.

Жиынға кіретін объектілерді элементтер деп атаймыз.

5 саны натурал сандар жиынының элементі болады. Үстел сыныптағы үстелдер жиынының элементі болады. Әдетте жиындар A, B, C, D, ..., X, Y, Z латынның бас әріптерімен белгіленеді, ал олардың элементтері a, b, c, d, ..., x, y, z кіші әріптермен белгіленеді.

а А жиынының элементі дегенді а А жиынына тиісті дейді.

Әдетте жиын элементтері фигуралы жақша ішінде жазылады:

Бізге элементтері көрсетілген А жиыны және B = {a1, a2, a3, a4} жиыны берілсін.

Байқағанымыздай, В жиынының әрбір элементі А жиынының да элементі болады. Бұл жағдайда В жиынын А жиынының ішкі жиыны деп айтады.

Анықтама..Егер В элементінің әрбір элементі А жиынының да элементі болса, онда В А-ның ішкі жиыны деп аталады.

Көп жағдайда бізге жиын элементтерін ғана емес, сонымен қатар олардың жиындағы орналасу ретін де білу қажет болады.

Егер жиындағы элементтердің орналасу реті ескерілсе, онда орналасу реті әр түрлі бірдей элементтері бар жиындар біз үшін әр түрлі жиындар болып саналады.

Мысалы: Z = {z1, z2, z3, z4 } и B = {z2, z1, z3, z4} әр түрлі жиындар болып саналады, өйткені оларда жиындардың орналасу реті әр түрлі.

Элементтердің орналасу реті берілген жиын реттелген деп аталады

Қарапайым мысалдар қарастырайық.

1-мысал. Сыныпта 12 оқу пәні бар. Бір күнде 5 әр түрлі сабақ өтіледі. Сабақ кестесі қанша түрлі әдіспен құрылуы мүмкін.

Оқу пәндерін 1-ден 12-ге дейінгі цифрлармен белгілейік:

1, 2, 3, 4, 5, ..., 10, 11, 12.

Есептің шарты бойынша осы 12 санның ішінен 5 саннан таңдау қажет. Осы бес саннан тұратын таңдау сандармен ғана емес, олардың орналасу ретімен де ерекшеленуі тиіс, мысалы, терімнің бірі келесідей болуы мүмкін: {1, 2, 3, 4, 5}; осы сандарды алмастыруда шығатын {2, 1, 3, 4, 5} терімі де есептің шартын қанағаттандырады.

Шынында да, бірінші терім келесі пәндерден тұратын болсын: {алгебра, физика, химия, тарих, әдебиет}; онда ең болмағанда екі пәнді алмастыру барысында алынған терім сабақтың жаңа кестесін береді: {физика, алгебра, химия, тарих, әдебиет}.

Осылайша, 5 саннан тұратын терім сандармен ғана емес, олардың орналасу ретімен де ерекшеленуі мүмкін.

Мұндай ішкі жиындар комбинаторикада орналастырулар деп аталады.

Анықтама. k бойынша n элементтен тұратын орналасу деп берілген жиынның k элементтен тұратын барлық реттелген ішкі жиыны аталады

Мысалы, M = {1, 2, 3, 4} жиынынан 4-тен 2-еу бойынша 12 әр түрлі орналастырулар алуға болады:

{1, 2} {1, 3} {1, 4} {2, 3} {2, 4} {3, 4}

{2, 1} {3, 1} {4, 1} {3, 2} {4, 2} {4, 3}

n элементтен k бойынша алынған орналастырулар санын символымен ерекшелейміз және = формуласы бойынша анықтаймыз.

Яғни, = = = = 12.

1-ші мысалға оралайық. Онда 12-ден 5-еу бойынша орналастырулар санын табу керек.

Формула бойынша табатын болсақ: = =

Орналастыру санын басқа әдіспен де табуға болады:

= =

Сонымен,

n элементтен k бойынша орналастыру саны k элементтер санының көбейтіндісіне тең деп айтсақ болады :

Мысалы,

Осылайша, осы принцип бойынша есептеу процедурасын құра отырып, біз факториалдар есептеуде шығатын үлкен сандармен жұмыс жасаудан құтыламыз және программа құруды қысқартамыз.

n элементтен k бойынша орналастыру процедурасы..

Procedure pl(n, k : іnteger; var r : longіnt);

var

і : іnteger;

begіn

r := 1;

for і := 1 to k do r := r*(n - k + і)

end;

Программасы

Program mіsal1;

uses WіnCrt;

var

n, k, r : longіnt;

{----------------------------------------------------------------------------------------}

{ n элементтен k бойынша орналастыру санын емесптейтін процедура }

Procedure pl(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);

Pl(n, k, r);

wrіteln('Сабақ кестесі нұсқаларының саны мынаған тең: ', r )

end.

Мысал 2. 0, 1, 2, ..., 9 цифрлары арқылы төрт таңбалы әр түрлі қанша сан жазуға болады?

Алдымен 10-нан 4 цифр бойынша қанша түрлі әдіспен таңдауға болатынын анықтауымыз қажет. Яғни 10 элементтен 4–еуден орналастырулар санын анықтау қажет .

Бірақ сандардың бұл шамасынан 0 цифрімен басталатындарын алып тастауымыз қажет, мысалы, 0123, 0213 және т.с.с. Бұл сандар төрт таңбалыға жатпайды. Мұндай сандар 9 цифрдан (0-ден басқа) шығатын үш таңбалы сандар мөлшеріне, яғни 9 элементтен 3-еу бойынша шығатын орналастырулар санына тең, .

10 цифрдан құрастыруға болатын төрт таңбалы сандар мөлшері айырмасына тең.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]