Паскаль. Основы программирования



              

Задачи, решаемые с помощью размещений - часть 2


     Procedure placement(n, k : integer;  var r : longint);

          var

             i : integer;

          begin

             r := 1;

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

          end;

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

      begin

         write('Введите число всех элементов '); readln(m);

         write('Введите число выбираемых элементов '); readln(n);

         placement(m - 1, n - 1, p);

         writeln('Число размещений из ', m, ' элементов по ', n, ',');

         writeln('которые нач. с первого элемента, равно ', p)

      end.

Пример 5. Составлены размещения из 10 элементов по 7 элементов. Сколько из этих размещений будут содержать: а) первый элемент, б) второй и четвертый элементы?

Решение

Во-первых, чем эта задача отличается от предыдущей?

В предыдущей задаче к первому элементу было строгое требование, - он должен находиться в образуемых размещениях обязательно на первом месте.

В этом примере, первый элемент просто должен присутствовать в получаемых размещениях, но совсем необязательно чтобы он находился на первом месте, значит он может занимать любое из 7 мест в получаемых размещениях.

Пронумеруем элементы множества цифрами от 1 до 7, тогда заданное множество элементов может быть записано так: {1, 2, 3, 4, 5, 6, 7}. Первый элемент выбираем из заданного множества, а "незанятые" места обозначим "x". Как видно, получается 7 подмножеств.

Отсюда следует, что его можно расположить в получаемых размещениях

  способами.

Во-вторых,

после того, как "вытащили” первый элемент из 10 в нем осталось 9 элементов. Из этих 9 надо выбрать и добавить к первому элементу еще 6, чтобы всего получаемых эл. было бы 7. Это можно сделать

  способами.

В итого мы имеем количество способов, равное произведению размещений

. Продумайте решение пункта б) этой задачи.

Программу

составьте  самостоятельно




Содержание  Назад  Вперед