В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
elemesayan
elemesayan
07.12.2022 16:23 •  Информатика

С клавиатуры вводится 2 целых числа (a и b) и одно натуральное (n). Вывести на экран коэффициенты C_1, C_2 ... C_(n+1) разложения (ax+bx)^n=C_1x^n+C_2x^(n-1)y+...+C_(n+1)y^n.

Показать ответ
Ответ:
dmgkmmsdk
dmgkmmsdk
10.09.2021 18:38

Пусть C_i^j — коэффициент в разложении (ax+by)^j при x^iy^{j-i}, то есть

(ax+by)^j=C_0^j x^j+C_1^j x^{j-1}y+C_2^jx^{j-2}y^2+\dots+C_j^j y^j

Выразим коэффициенты для j + 1 через j:

(ax+by)^{j+1}=(ax+by)^j\cdot(ax+by)=\\=(C_0^j x^j+C_1^j x^{j-1}y+C_2^jx^{j-2}y^2+\dots+C_j^j y^j)(ax+by)=\\=aC_0^j x^{j+1}+(aC_1^j+bC_0^j)x^jy+(aC_2^j+bC_1^j)x^{j-1}y^2+\dots+bC_j^j y^{j+1}

Таким образом, C_0^{j+1}=aC_0^j, C_{j+1}^{j+1}=bC_j^j и для всех остальных коэффициентов C_i^{j+1}=aC_i^j+bC_{i-1}^j

В ответ нужно вывести все коэффициенты для j = n.

Алгоритм: создадим список из n + 1 элемента, проинициализируем его так: a, b, 0, 0, ..., 0 (всего n - 1 ноль). Это коэффициенты разложения для j = 1. Затем в цикле будем обновлять значения, начиная с больших i.

Код (python 3):

a, b, n = map(int, input().split())

c = [a, b] + [0] * (n - 1)

for j in range(2, n + 1):

   c[j] = b * c[j - 1]

   for i in range(j - 1, 0, -1):

       c[i] = a * c[i] + b * c[i - 1]

   c[0] = a * c[0]

print(*c)

Пример ввода:

1 1 4

Пример вывода:

1 4 6 4 1

___________________________________________-

Можно сразу написать выражение для C_i^j. Тогда, если вы умеете считать биномиальные коэффициенты, всё получается короче (и быстрее):

from math import comb

a, b, n = map(int, input().split())

for i in range(n + 1):

   print(comb(n, i) * a**i * b**(n - i), end=" ")

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота