时间复杂度从O(n2)到O(n)变化的小技巧(计算e的值)

10. June 2016 深度学习 0

有时候呢,我真的很为泰勒感到委屈呢,伟大的泰勒展开式,令X0=0时,变成了麦克劳林展开式,即简便,又实用。(不知为啥,我想到了一个超级企业。模仿也可到无可挑剔的高度)

QQ截图20160610140921

求自然对数e

222

通常我们会使用两次循环,

#include <iostream>
using namespace std;

void ee(int n){
double s=1.0;
int i,j;
for(i=1;i<=n;i++){
int s1=1;
for(j=1;j<=i;j++){
s1=s1*j;
}
s+=1.0/s1;
}
cout<<s<<endl;
}
int main()
{
ee(10);
}

频度为 n*n/2 + n/2

时间复杂度为 O(n2)

——————————————————华丽分割线

#include <iostream>
using namespace std;

void ee(int n){
double s=1;
double s1=s;
int i;
for(i=1;i<=n;i++){
s1=s1/i;
s+=s1;
}
cout<<s<<endl;
}
int main()
{
ee(100);
}

频度为n

时间复杂度为O(n)

感觉数学学好了,写出来的程序就是不一样哈。

的点点滴滴


Leave a Reply

Your email address will not be published. Required fields are marked *