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

Лабораторные работы / Захаров / Лабораторная работа 5

.doc
Скачиваний:
48
Добавлен:
28.06.2014
Размер:
72.7 Кб
Скачать

Лабораторная работа № 5.

Захаров Антон

А – 13 – 08

Вариант № 10.

Найти все , где N=10 – номер варианта, а также сами сочетания и размещения.

Число различных сочетаний: Число различных размещений:

Алгоритм вычисления числа сочетаний и размещений:

Для вычисления факториала F числа S используем простой цикл:

F:=1;

для i от 1 до S

F:=F*i;

Используя этот алгоритм вычисления факториала, считаем требуемые составляющие формул (1) и (2), подставляем их в эти формулы и получаем искомое число сочетаний и размещений.

Подобные расчеты повторяем для всех

Алгоритм нахождения всех сочетаний :

для i от 1 до k

A[i]:=i; {A – первое сочетание}

p:=k;

пока (p1)

начало цикла

вывод (A[1],A[2]…A[k]);

если (A[k]=n)

то p:=p – 1;

иначе p:=k; если (p1)

то

для i от k до p шаг (–1)

A[i]:=A[p] + i – p + 1;

{A – очередное сочетание}

конец цикла

Словесное описание алгоритма:

  1. Заполняем все k позиций множества А элементами n-элементного множества в порядке их возрастания (лексикографическом).

  2. p:=k;

  3. Если p<1, то ВЫХОД.

  4. Иначе получили очередное сочетание А. ВЫВОД А.

  5. Если последний элемент множества А равен n, то p:=p – 1, иначе p:=k.

  6. Если p1, то изменить элементы множества А по формуле

  7. Повторить пункты 3 – 7.

Алгоритм нахождения всех размещений :

S[1]:=1; k:=1;

пока (k>0)

начало цикла

пока (A[k]<n)

начало цикла

A[k]:=S[k]; S[k]:=S[k]+1;

пока (sk<n и не S[k]A)

начало цикла

S[k]:=S[k]+1;

если (k=n)

то

вывод (A[1], A[2],..., A[n]);

иначе

k:=k+1;

S[k]:=i;

пока (S[k]<n и не S[k]A)

S[k]:=S[k]+1;

конец цикла

конец цикла

k:=k-1;

конец цикла

Словесное описание алгоритма:

  1. S[1]:=1, k:=1;

  2. Если k0, то ВЫХОД

  3. Иначе:

    1. Если S[k]>n, то перейти к пункту 4.

    2. Иначе

А[k]:=S[k]; S[k]:=S[k]+1;

Изменить S по следующему правилу:

Если S[k]n и

    1. Если k=n, то ВЫВОД А (очередное размещение)

    2. Иначе k:=k+1; S[k]:=1;

Изменить S по следующему правилу:

Если S[k]n и

    1. Вернуться к пункту 3.1.

  1. k:=k–1;

  2. Вернуться к пункту 2.

Соседние файлы в папке Захаров