Java教程

数据结构算法每日一练(二)Laguerre多项式

本文主要是介绍数据结构算法每日一练(二)Laguerre多项式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

数据结构算法每日一练(二)Laguerre多项式

1、N次Laguerre多项式 P n ( x ) P_n(x) Pn​(x)的递归定义是:

P 0 ( x ) = 1 P_0(x)=1 P0​(x)=1
P 1 ( x ) = 1 − x P_1(x)=1-x P1​(x)=1−x

P n ( x ) = ( 2 n − 1 − x ) P n − 1 ( x ) − ( n − 1 ) 2 P n − 2 ( x ) ( n > 1 ) P_n(x) = (2n-1-x) P_{n-1}(x) - (n-1)^2 P_{n-2}(x) (n>1) Pn​(x)=(2n−1−x)Pn−1​(x)−(n−1)2Pn−2​(x)(n>1)

(1)请按照上面的定义用递归的方式求n次Lagureer 多项式在x处的值: double laguerre (double x,int n);

(2)给出此递归函数的时间复杂度。

(1)

#include <iostream>
using namespace std;
double laguerre (double x, int n){
 if(n == 0) {
     return 1;
 }else if(n == 1) {
     return 1 - x;
 }else {
     return (2*n - 1 - x) * laguerre(x, n - 1) - (n - 1) * (n - 1) * laguerre(x, n - 2);
 }
}
int main() {
 double x;
 int n ;
 cin >> x >> n;
 double res = laguerre(x, n);
 cout << res << endl;
 return 0;
}

(2)时间复杂度为 O ( 2 n ) O(2^n) O(2n)
分析与上道斐波那契数列一样
数据结构算法每日一练(一)斐波那契数列

这篇关于数据结构算法每日一练(二)Laguerre多项式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!