Преобразование степеней в число применений (лямбда-функции) - PullRequest
0 голосов
/ 30 апреля 2020

Этот вопрос касается реализации математической формулы в Python (с использованием пакетов NumPy и SciPy).

Пусть L1 и L2 будут двумя математическими операторы (которые обычно не коммутируют, то есть: L1 (L2 (x)) = / = L2 (L1 (x)) ), предположим, что у меня есть следующая формула: apply (L1 + L2) ^ n на x . Например: если n = 2 , то:

(L1 + L2) ^ 2 x = (L1 * L1 + L1 * L2 + L2 * L1 + L2 * L2) (x) = L1 (L1 (x)) + L1 (L2 (x)) + L2 (L1 (x)) + L2 (L2 (x))

Как относиться к полномочиям ( целые положительные числа) оператора как число его применения на входе? Я думаю, что это можно сделать с помощью лямбда-функций Python, но я не уверен, как.

1 Ответ

0 голосов
/ 30 апреля 2020

Для конкретной c проблемы вычислений (L1 + L2) ^ nx Я нашел решение, используя рекурсию.

def f(L1,L2,x,n) :
   if n == 0 :
       return x
   else :
     return L1( f(L1,L2,x,n-1) ) + L2( f(L1,L2,x,n-1) )

Можно также записать его как al oop, исходя из n = 0 до желаемой мощности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...