Proc 45. Описать функцию \(\text{Power4}(x, a, \varepsilon)\) вещественного типа (параметры \(x, a, \varepsilon\) -  вещественные, \(|x| < 1\); \(a,\, \varepsilon > 0\)), находящую приближенное значение функции \((1+x)^a\):

\[(1+x)^a = 1 + a\cdot x + a\cdot (a-1)\cdot x^2/(2!) +  ... \\ + a\cdot (a-1)\cdot ... \cdot (a-n+1)\cdot x^n/(n!) + ...\]

В сумме учитывать все слагаемые, модуль которых больше \(\varepsilon\). С помощью Power4 найти приближенное значение  \((1+x)^a\) для данного x  и a при шести данных \(\varepsilon\).

Решение на Python 3

import random
import math

def Power4(x,a,eps):
if eps <= 0:
print("Epsilon should be greater than 0")
y = a*x
f = 1 + y
i = 2
while abs(y) > eps:
y *= (a-i+1) * x / i
i += 1
f += y
#print(i,":",y,":",f)
return f

eps = 0.01
a = 10
x = 0.1
for i in range(0, 6):
#x = -0.5
#x = 2
print("( 1 +",x,") ^",a,"=",Power4(x,a,eps),";",(1+x)**a)
eps /= 10