a(a-n)(a-2n)...(a-n^2)
(Программа Python)
Решите простым примером,не через пайтон
Помогите,пожалуйста!
product $ fmap (x -> a - x*n) [0..n]
Ответы
На входе у тебя два аргумента: a и n. На выходе некое произведение, множители которого вычисляются из вышеуказанных аргументов.
Для нахождения произведения необходимо найти множитель в общем виде. Наше выражение a*(a-n)*(a-2n)*...*(a-n^2). Это можно представить как (a-0*n)*(a-1*n)*(a-2*n)*...*(a-n*n). Отсюда очевидно, что множитель имеет вид (a-k*n), где a и n – какие-то константы, а k – переменная, принимающая в качестве значений целые числа в диапазоне от 0 до n (иначе говоря, k выводится из n).
Таким образом, мы можем вычислить это произведение для любых произвольных значений a и n. Для этого создадим переменную, в которой будем хранить промежуточные и конечный результаты произведения, которую назовём res и которая изначально равна 1 (1 – нейтральный элемент над операцией умножения над целыми числами и не влияет на результат). Значения a и n нам известны и передаются на вход программе, а значения k мы будем перебирать в цикле.
Реализуем вышесказанное на Python.
- a = int(input("a = "))
- n = int(input("n = "))
- res = 1
- for k in range(n+1):
- res *= a - k*n
- print("res = %d" % res)
P.S. Python позволят делать более лаконичные решения
- from functools import reduce
- from operator import mul
- a = int(input("a = "))
- n = int(input("n = "))
- print("res = %d" % reduce(mul, map(lambda k: (a-k*n), range(n+1)), 1))