1+1/2+1/3+1/3+……+1/n 的算法程序,快些
3个回答
展开全部
第四项是1/4吧
这个数列叫做调和级数
其和是发散的
有限项求和是数学史上的一个难题
由数学家欧拉于1734年解出近似值
具体推导过程如下:
首先列出幂级数
ln(1+x) = x - x^2/2 + x^3/3 - ...
(具体推导过程参见牛顿的《流数法》)
所以ln(1+1/x) = 1/x - 1/2x^2 + 1/3x^3 - ...
于是
1/x = ln((x+1)/x) + 1/2x^2 - 1/3x^3 + ...
代入x=1,2,...,n,可得出:
1/1 = ln(2) + 1/2 - 1/3 + 1/4 -1/5 + ...
1/2 = ln(3/2) + 1/2*4 - 1/3*8 + 1/4*16 - ...
......
1/n = ln((n+1)/n) + 1/2n^2 - 1/3n^3 + ...
相加可得
1+1/2+1/3+1/4+...1/n = ln(n+1) + 1/2*(1+1/4+1/9+...+1/n^2) - 1/3*(1+1/8+1/27+...+1/n^3) + ......
第二项开始后面的数列是收敛的,定义和为r
则1+1/2+1/3+1/4+...1/n = ln(n+1) +r
欧拉近似地计算了r的值,约为0.5772156649。这个数值也被称作欧拉常数。
如果用C语言编程求解
#include<stdio.h>
int main()
{
int k,i=0;
double S=0;
scanf("%d",&n);
while(i<n)
{ i++;
S+=1.0/i;
}
printf("%d\n",S);
}
注意:本程序由于浮点误差,当n过大时结果可能不准确;但算法是正确的,仅供参考。
这个数列叫做调和级数
其和是发散的
有限项求和是数学史上的一个难题
由数学家欧拉于1734年解出近似值
具体推导过程如下:
首先列出幂级数
ln(1+x) = x - x^2/2 + x^3/3 - ...
(具体推导过程参见牛顿的《流数法》)
所以ln(1+1/x) = 1/x - 1/2x^2 + 1/3x^3 - ...
于是
1/x = ln((x+1)/x) + 1/2x^2 - 1/3x^3 + ...
代入x=1,2,...,n,可得出:
1/1 = ln(2) + 1/2 - 1/3 + 1/4 -1/5 + ...
1/2 = ln(3/2) + 1/2*4 - 1/3*8 + 1/4*16 - ...
......
1/n = ln((n+1)/n) + 1/2n^2 - 1/3n^3 + ...
相加可得
1+1/2+1/3+1/4+...1/n = ln(n+1) + 1/2*(1+1/4+1/9+...+1/n^2) - 1/3*(1+1/8+1/27+...+1/n^3) + ......
第二项开始后面的数列是收敛的,定义和为r
则1+1/2+1/3+1/4+...1/n = ln(n+1) +r
欧拉近似地计算了r的值,约为0.5772156649。这个数值也被称作欧拉常数。
如果用C语言编程求解
#include<stdio.h>
int main()
{
int k,i=0;
double S=0;
scanf("%d",&n);
while(i<n)
{ i++;
S+=1.0/i;
}
printf("%d\n",S);
}
注意:本程序由于浮点误差,当n过大时结果可能不准确;但算法是正确的,仅供参考。
展开全部
java:
public static double sum(int n){
double d=0;
for(int i=1;i<=n;i++){
d+=(double)1/i;
}
return d;
}
public static double sum(int n){
double d=0;
for(int i=1;i<=n;i++){
d+=(double)1/i;
}
return d;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int f(int n)
{
float i;
float sum=0;
for(i=1;i<=n;i++)
sum=sum+1/i;
return sum;
}
{
float i;
float sum=0;
for(i=1;i<=n;i++)
sum=sum+1/i;
return sum;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询