11 класс функции Глава 2. Алгоритмы и программирование

ГДЗ по информатике, 11 класс, Босова, номер p131.12: функции

Информатика — Босова Л.Л., Босова А.Ю.

Роман Жуков, методист по информатике Шпаргача обновлено 8 сентября 2026

Условие

Составить программу для вычисления биномиального коэффициента C_n^k по формуле n! / ((n-k)! * k!), используя подпрограмму.

Номер как в учебнике. Условие — полный пересказ редакции: те же пункты, числа и факты, не цитата из книги.

Пошаговое решение

План решения:

  • Для вычисления биномиального коэффициента Ckn нам потребуется функция для нахождения факториала числа. Факториал n! — это произведение всех натуральных чисел от 1 до n.
  • Создадим подпрограмму (функцию) factorial, которая принимает целое число и возвращает его факториал.
  • В основной программе запросим у пользователя значения n и k, проверим корректность ввода (0≤k≤n), затем вычислим результат по формуле n!/(n-k)!·k! с использованием созданной функции.

Реализация на языке Python:

  1. Определяем функцию factorial(n). Внутри неё используем цикл или рекурсию. Для школьного курса удобнее итеративный подход (цикл).
  2. В теле функции инициализируем переменную result = 1.
  3. Запускаем цикл от 1 до n включительно, умножая result на текущее значение счетчика.
  4. Возвращаем полученное значение.
  5. В основной части программы запрашиваем ввод n и k.
  6. Вычисляем числитель как factorial(n), а знаменатель как factorial(n - k) * factorial(k).
  7. Делим числитель на знаменатель и выводим результат.

Код программы:

\ndef factorial(num):
    result = 1
    for i in range(1, num + 1):
        result *= i
    return result
\ntry:
    n = int(input("Введите n: "))
    k = int(input("Введите k: "))
    
    if k < 0 or k > n:
        print("Ошибка: должно выполняться условие 0 <= k <= n")
    else:
        numerator = factorial(n)
        denominator = factorial(n - k) * factorial(k)
        binomial_coefficient = numerator // denominator # Целочисленное деление, так как результат всегда целый
        print(f"C({n}, {k}) = {binomial_coefficient}")\nexcept ValueError:
    print("Введите целые числа.")

Проверка:

Рассмотрим пример: n=5,k=2. По формуле комбинаторики C25=5!/3!·2!=120/6·2=120/12=10.

Работа программы:
1. Вызов factorial(5) вернет 120.
2. Вызов factorial(3) вернет 6.
3. Вызов factorial(2) вернет 2.
4. Знаменатель: 6·2=12.
5. Результат: 120/12=10. Программа выдаст правильный ответ.

Ответ

def factorial(n): ... C(n, k) = factorial(n)//(factorial(n-k)*factorial(k))

В условии требуется использовать подпрограмму. В решении реализована функция factorial. Важно отметить, что в Python для больших чисел лучше использовать math.comb, но задача учебная, поэтому реализуем алгоритм вручную через факториалы, как указано в формулировке.

Как решение?

Двойная оценка: понятность и подробность. Можно выбрать одно или оба.

Подробность

У вас другое условие?

Загрузите фото — учтём ваши числа и редакцию.

Решить по фото

Частые вопросы

Это точный номер p131.12 из моего учебника?

Номер совпадает с учебником «Информатика», Босова Л.Л., Босова А.Ю.. Формулировка — пересказ редакции, не дословная цитата. Если в вашей редакции другие числа — загрузите фото.

Какой ответ в задании p131.12?

Краткий ответ: def factorial(n): ... C(n,k) = factorial(n)//(factorial(n-k)*factorial(k)).

Как пользоваться этим разбором?

Сначала прочитайте условие и чертёж, затем шаги решения по порядку и сверьте свой ход с кратким ответом внизу.

Какой учебник имеется в виду?

«Информатика», Босова Л.Л., Босова А.Ю.. Проверьте часть, год и автора на обложке. Тема в учебнике: Глава 2. Алгоритмы и программирование.

Можно ли списать ответ без решения?

Лучше сначала решить самостоятельно, а разбор использовать для проверки хода и поиска ошибки.

Соседние задания

Автор решения: Роман Жуков, методист по информатике Шпаргача.

Дата обновления: 8 сентября 2026.

Источник решения: оригинальное решение редакции Шпаргач.

Номер как в учебнике. Условие — полный пересказ редакции (те же пункты, числа и факты). Решение не копирует текст книги.