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


              

Пример 5. Составлены размещения из


     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. Это можно сделать
  способами.

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

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