扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
用c语言程序,求e,用递归函数,最易于实现的计算方法应该是使用e的极限近似计算,以下以n=1000近似计算之:
专注于为中小企业提供网站设计制作、网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业平湖免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了千余家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
n=1000时的近似结果
#includestdio.h
#define n 1000
void calc_e(e)
double *e;
{
if(e[0]*=1.0+1.0/e[1],--e[2]=0)
return;
else calc_e(e);
}
int main(void){
double box[3]={1.0,n,n};
calc_e(box);
printf("%lf\n",box[0]);
return 0;
}
n=10000时的近似结果
这个其实不是什么程序难题,你只要将cosine用泰勒函数转换成离散的就可以做了。数学问题而已。
简单地说可以,一般除了无限递归等特殊的不行,其他的都可以。
一楼的不懂不要乱说。
C语言可以做的很精确,只要计算机的内存硬盘足够,就能足够精确,当然前提是极限存在。
如果需要很长很长的位数最好用数学函数库,因为一般80x87的精度都是80位,超过此限制需要自己用C语言或者汇编语言提高继续提高精度。但对于非专业计算机人士来说很难。
计算机就是做计算的,大部分可计算问题都没有问题,只是时间和空间的问题。
X趋于无穷大是不可能计算的,举一个简单的例子,假设计算机的内存1TB(目前还没有)。
如果存储了一个整数,那么这个最大值是2的8T次方,但是这个和无穷大相差太远。
考虑函数ackman(6,6),这个函数的值根本无法通过目前的计算机(甚至未来的计算机也不能计算出来),就算计算出来,这个数写出来一个地球也放不下,但是比无穷大小很多吧。
但是你说的问题就不一样,如果极限是收敛的,那么随着x的值增大,就可以取得那个极限的近似值。注意计算机C语言一般只能取得足够接近的值。
否则可以考虑使用公式推理软件,看看能不能解方程获得极限,那才可能是精确值。
比如说某个数列的极限为π,那要写一个相当复杂的程序才能打印出π字样。但是π的值又是什么呢?3.14159……,这个精确的值可能又是地球上不够写了。
C语言进行数学问题求解,除了常用的求幂,求对数,三角函数以外,都是需要自己写算法实现的。比如阶乘、极限。
#includestdio.h
const double eps = 1e-6;
int main()
{
double s=0;
double i=1;
while(1.0/(i*i)=eps)
{
s+=1.0/(i*i);
i+=1.0;
}
printf("%lf\n",s);
return 0;
}
如果是用程序近似计算的话,可以这样做
#includestdio.h
#includemath.h
main()
{ long int n,k;
double s1,s2,e=1e-8; //e代表计算精度
n=1;k=1; //k=n×n
s1=(3.0*k+n)/(2*k+3);
do{
s2=s1;
k=k+2*n+1; //(n+1) ^2=n^2+2n+1
n=n+1;
s1=(3.0*k+n)/(2*k+3);
}while(fabs(s1-s2)e) ;
printf("%lf",s1);
}
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流