Печать
Категория: Recur
Просмотров: 1597

Recur8. Описать рекурсивную функцию RootK(X, K, N) вещественного типа, находящую приближенное значение корня K-й степени из числа X по формуле:
\(Y_0 = 1, \quad Y_{N +1} = Y_N - (Y_N - X /(Y_N)^{K-1})/K,\)
где \(Y_N\) обозначает RootK(X, K, N) при фиксированных X и K. Параметры функции: X (> 0) — вещественное число, K (> 1) и N (> 0) — целые. С помощью функции RootK найти для данного числа X приближенные значения его корня K-й степени при шести данных значениях N.

Решение на Python 3:

import random

def RootK(X,K,N):
if N == 0:
return 1
Y_prev = RootK(X,K,N-1)
Y = Y_prev - (Y_prev - X/Y_prev**(K-1))/K
return Y


X = random.randrange(1,100)
K = random.randrange(2,7)

print("X = ",X)
print("K = ",K)
Y = X**(1/K)
print("X^(1/K) = ",Y)
for N in range(5,15):
Y2 = RootK(X,K,N)
print("RootK({0},{1},{2}) = {3}".format(X,K,N,Y2))