1-11 класс
  • 1-11 класс
  • 1 класс
  • 2 класс
  • 3 класс
  • 4 класс
  • 5 класс
  • 6 класс
  • 7 класс
  • 8 класс
  • 9 класс
  • 10 класс
  • 11 класс
Выберите класс
Предметы
Босова
Задание 12 Параграф 9 ГДЗ Босова 11 класс (Информатика)
Босова, Босова
11 класс
Автор
Босова, Босова

Задание 12 Параграф 9 ГДЗ Босова 11 класс (Информатика)

Задача

Число сочетаний без повторений из n по k – это число способов, сколькими можно из различных n элементов выбрать k штук без учета порядка.
Подпрограмму-функцию можно сделать для вычисления факториала. Ее можно сделать двумя способами: с использованием рекурсии и без рекурсии.
С рекурсией
function F(m: integer): integer;
begin
if m = 0 then F := 1
else
F := F(m — 1) * m;
end;
var
n, k: integer;
C:real;
begin
writeln(‘Введите n и k через пробел, n > k ‘);
readln(n, k);
C := F(n) / (F(n — k) * F(k));
writeln(‘C=’, C)
end.
Программа: Z_9_12_R.pas
(ссылка ниже)
Без рекурсии
function F(m: integer): integer;
var
i,fa: integer;
begin
fa:=1;
for i := 1 to m do
fa := fa * i;
F:=fa
end;
var
n, k: integer;
C: real;
begin
writeln(‘Введите n и k через пробел, n > k ‘);
readln(n, k);
C := F(n) / (F(n — k) * F(k));
writeln(‘C=’, C)
end.
Программа: Z_9_12.pas
(ссылка ниже)

Подробный ответ

Число сочетаний без повторений из $$n$$ по $$k$$ вычисляется по формуле:

$$C_n^k=\frac{n!}{k!(n-k)!}$$

Удобно вынести вычисление факториала в подпрограмму-функцию. Тогда основная программа будет только считывать $$n$$ и $$k$$ и подставлять их в формулу.

Вариант с рекурсией:

function F(m: integer): integer;
begin
  if m = 0 then F := 1
  else F := F(m — 1) * m;
end;

var
  n, k: integer;
  C: real;
begin
  writeln(‘Введите n и k через пробел, n > k ‘);
  readln(n, k);
  C := F(n) / (F(n — k) * F(k));
  writeln(‘C=’, C);
end.

Вариант без рекурсии:

function F(m: integer): integer;
var
  i, fa: integer;
begin
  fa := 1;
  for i := 1 to m do
    fa := fa * i;
  F := fa;
end;

var
  n, k: integer;
  C: real;
begin
  writeln(‘Введите n и k через пробел, n > k ‘);
  readln(n, k);
  C := F(n) / (F(n — k) * F(k));
  writeln(‘C=’, C);
end.

Ответ

Программа для вычисления числа сочетаний без повторений из $$n$$ по $$k$$ составляется с использованием подпрограммы-функции для нахождения факториала.



Общая оценка
4.6 / 5
Другие учебники
Другие предметы