根据以下公式编程序计算e的近似值,精度要求为:10E-6:
C语言寒假编程题

【4.19】编写程序,在屏幕上绘制如图余弦曲线和直线。
若屏幕的横向为x轴,纵向为y轴,在屏幕上显示0~360度的cos(x)曲线与直线x=f(y)=45*(y-1)+31的迭加图形。
其中cos图形用"*"表示,f(y)用"+"表示,在两个图形的交点处则用f(y)图形的符号。
【4.20】编写程序,输出如图所示高度为n的图形。
【4.21】编写程序,输出如图所示高度为n的图形。
【4.22】输入n值,输出如图所示图形。
【4.23】输入n值,输出如图所示的n×n(n<10)阶螺旋方阵。
1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9图4.19 n=5时的螺旋方阵【4.24】输入n值,输出如图所示回型方阵。
【4.25】输出如图所示的数字金字塔【4.26】输入n值,输出如图所示图形。
【4.27】输入顶行字符和图形的高,输出如图所示图形。
【4.28】输入首字符和高后,输出如图所示回型方阵。
A A A A AA B B B AA B C B AA B B B AA A A A A图 4.24 首字符为'A'、高为5的方阵【4.29】输入中心字符和高后,输出如图所示回型方阵。
X X X X XX Y Y Y XX Y Z Y XX Y Y Y YX X X X X图4.25 中心字符为'Z'、高为5的方阵【4.30】编写程序,输出如图所示上三角形式的乘法九九表。
【4.31】编写程序,输出如图所示下三角乘法九九表。
【4.32】编写程序,输入三角型的三条边长,求其面积。
注意:对于不合理的边长输入要输出数据错误的提示信息。
【4.33】编写程序求出555555的约数中最大的三位数是多少。
【4.34】编写程序计算下列算式的值:直到某一项A<=0.000001时为止。
计算方法试题集3875

第一章数值计算基本常识一.填空题1. 用四舍五入得到的近似数0.628,有_____位有效数字,其绝对误差限是____________。
2. 用四舍五入得到的近似数0.586,有_____位有效数字,其绝对误差限是____________。
3. 用四舍五入得到的近似数0.69,其绝对误差是__________,由此计算出的相对误差限是_ _________。
4. 用四舍五入得到的近似数0.7960,其绝对误差是__________,由此计算出的相对误差限是__________。
5. 设0.484是0.4900的近似值,那么0.484具有____位有效数字。
6. 设x*=0.231是真值x=0.229的近似值,则x*有_____位有效数字。
7. 设x*=0.23是真值x=0.229的近似值,则x*有_____位有效数字。
8. 设x=2.3149541…,取5位有效数字,则所得的近似值x*=_____。
9. 设x=2.3149541…,取4位有效数字,则所得的近似值x*=_____。
10. 若近似数0.1100有4位有效数字,由有效数字计算出的相对误差是____________。
11. 若近似数76.82有4位有效数字,由有效数字计算出的相对误差是____________。
12. 若近似数576.00有5位有效数字,由有效数字计算出的相对误差是____________。
13. 用3.15作为π的近似值有_____位有效数字。
14. 用3.14作为π的近似值有_____位有效数字。
15. 用3.1416作为π的近似值有_____位有效数字。
解答:1. 3、0.5*10-32. 3、0.5*10-33. 0.5*10-2、0.725%4. 0.5*10-4、0.00628%5. 16. 27. 28. 2.31509. 2.31510. 0.05%11. 0.007%12. 0.001%13. 214. 315. 5二.选择题1. 3.141580 是π的近似值,有( )位有效数字。
C语言第四份练习题(循环结构)

一、选择题1. 设有如下程序段,则下面描述正确的是int k=10;while (k=0) k=k-1;A.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次2. 下面程序段的运行结果是a=1; b=2; c=2;while(a<b<c) { t=a; a=b; b=t; c--;}pirntf(“%d, %d, %d”,a,b,c);A.1,2,0 B.2,1,0 C.1,2,1 D.2,1,13. 下面程序段的运行结果是。
int n=0;while(n<=2) n++; printf(“%d”,n);A.2 B.3 C.4 D.有语法错误4. 设有如下程序段,则描述正确的是。
t=0;while (printf(“*”)){t++; if(t<3) break;}A.其中循环控制表达式与0等价B.其中循环控制表达式与‘0’等价C.其中循环控制表达式是不合法的D.以上说法都不对5. 下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对等数时结束循环,请选择填空。
#include<stdio.h>int main(){int a,b,t;scanf("%d%d",&a,&b);while( ){if(a>b) {t=a;a=b;b=t;}printf("%d,%d\n",a,b);scanf("%d%d",&a,&b);}return 0;}A.!a=b B.a!=b C.a==b D.a=b6. 下面程序的功能是从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n,并输出m、n中的较大者,请选择填空。
#include<stdio.h>int main(){int m=0,n=0;char c;while(( )!='\n'){if(c>='a' && c<='z') n++;if(c>='A' && c<='Z') m++;}printf("%d\n",m<n? );return 0;}A.c= =getchar( ) B.getchar( ) C.c=getchar( ) D.scanf(“%c”,c)A.n:m B.m:n C.m:m D.n:n7. 下面程序的功能是将小写字母变成对应大写字母后的第二个字母。
C语言程序设计模拟试题2

C语言程序设计模拟试题2一、单选题(每题3分,共计30分)1、C语言中基本数据类型包括(B)。
A、整型、实型、逻辑型B、整型、实型、字符型C、整型、字符型、逻辑型D、整型、实型、逻辑型、实型2、下列选项中不属于C语言的优点的选项是()。
A、C语言语句简洁、紧凑,使用方便灵活B、C语言程序易于移植C、生成的目标代码质量高,运行效率高D、数据类型检查严格3、若a、b均为int型变量,且a=100,则关于循环语句for(b=100; a!=b; ++a,++b)printf ( “ ------------”) ;的正确说法是()。
A、循环体只执行一次B、死循环C、循环体一次也不执行D、输出-----------4、对C语言来说,下列标识符中不合法的选项是()。
A、AB2CB、ab2cC、ab.2cD、a_b2c5、执行下列程序段后,i的值是()。
s = 0;for( i = 1; i <= 4; i=i+3 ){s += i;}A、1B、4C、5D、76、下列各语句中,能够输出整型变量a、b中最大值的是( )。
A、printf("%d\n",(a>b)?a,b);B、(a>b)? printf("%d",b): printf("%d",a);C、printf("%d",if(a>b)a else b);D、printf("%d\n",(a>b)?a:b);7、设int a = 9,b = 8,c = 7, x = 1; 则执行语句if (a>7) if (b>8) if (c>9)x=2 ;else x = 3;后,x 的值是( )。
A、0B、2C、1D、38、下列语句中定义x为指向int类型变量a的指针,正确的是()。
A、int a, *x=a;B、int a, *x=&a;C、int *x=&a, a;D、int a, x=a;9、以下正确的函数定义形式是()。
数值计算(第二版)第二章

2.1.2 根的隔离方法
例:考察方程
f ( x) x x 1 0
3
利用逐步搜索法确定一个有根区间
解:注意到f (0) < 0, f (+) >0,知f (x)至少有一 个正的实根 设从x = 0出发,取h = 0.5为步长向右进行根的 扫描 x
0 0.5 1.0 1.5
f (x) 的符号 -
有根区间
根的隔离
计算机科学与工程系
8
2.1.1 方程的根
定理1:设函数f (x)在区间[a, b]上连续,如果f (a) f (b) < 0,则方程f (x) = 0在[a, b]内至少 有一实根x* 定理2:设函数f (x)在区间[a, b]上是单调连续 函数,并且f (a) f (b) < 0,则方程f (x) = 0在 [a, b]上有且仅有一实根x*
-
0.0157
0.0078
计算机科学与工程系 21
2.3 迭代法
简单迭代法的原理 迭代法的收敛性 迭代加速法
计算机科学与工程系 22
2.3.1 简单迭代法原理
基本思想
将方程f (x) = 0化为一个等价的方程 x (x ) 从而构成序列
xk 1 ( xk ) k 0, 1, 2,
在区间[1, 1.5]内的实根,要求准确到小数点 后第2位。
解:预先估计一下二分的次数:按误差估计式
1 1 x xk bk 1 ak 1 k 1 (b a) 10 2 2 2 k 6
*
计算机科学与工程系 20
2. 2 二分法
MATLAB 编程介绍

解:设第k天的桃子数为pk,(k=1,···,10)则规律为
k=10;p(k)=1; while k>=2
k=k-1;
pk
1 2
pk 1
1
p(k)=2*(p(k+1)+1); end p(1)
Pk-1 =2(pk +1)
ans = 1534
例:根据e≈1+1+1/2!+1/3!+…+1/n! 求e的近似值,要求精确到小数点后8位。
p=p*i;
%先计算右端乘积后再赋给左端的变量p
fprintf('i=%.0f, p=%.0f\n',i,p) %逐行显示
end
%循环结构结束
问题:
是否可以考虑利用input命令对n进行赋值,随时改变其大小。 如果可以,请修改上述程序并运行。
例:根据麦克劳林公式可以得到e≈1+1+1/2!+1/3!+„+1/n!,
试求e的近似值。
分析: 这个问题可以分解为,从1开始的正整数阶乘的倒数和的 累加运算,累加结果存放在初始值为1的变量中。因此,对上 例进行修改来实现。
clear;clc;
n=10;
%赋值给定正整数
p=1;
%设定存放阶乘的变量p并赋初值1
s=1;
%设定存放累加和的变量s并赋初值1
for i=1:n
%定义循环变量i从1到n,以1为步长,即连续正整数
例. 分别建立命令文件和函数文件,将华氏温度f转换 为摄氏温度c。
程序1:
首先建立命令文件并以文件名function1.m存盘。
clear;
%清除工作空间中的变量
重庆理工大学c语言上机考试复习题 (1)

1、根据公式e=1+1/(1!)+1/(2!)+1/(3!)+……。
求e 的近似值,精度要求为10-6。
2、读入10个数,计算它们的和、积、平方和及和的平方。
3、计算并输出1!,2!,3!,4!,……,35!。
4、输入20个数,统计其中正、负和零的个数。
5、利用公式:)12)(12()2(......756653443*12222+-⨯⨯⨯⨯⨯⨯⨯⨯⨯=n n n π计算π的值(取前100项)。
6、利用公式:)12(1)1(......9171513114+⨯-++-+-=n n π计算π的值(省略的项都<10-5)。
7、编程计算0*1+2*3+4*5+……+100*101+101*102之和。
8、编程计算5/6+6/7+7/8+……+99/100+5!+6!+7!之和。
9、编程计算1!-2!+3!-4!+5!-6!之和。
10、编程计算1/(1+2)+2/(2+3)+3/(3+4)+……100/(100+101)之和。
11、编程计算(0+1)/1+(2+3)/3+(3+4)/4+……(99+100)/100之和。
12、求100 ~ 200中能被3或7整除的自然数。
13、统计77到210中偶数的个数。
14、统计7到91中能被3整除的奇数的个数。
15、7到91中有多少能既能被2又能被3整除的数。
16、显示7到100中所有不能被5整除的数,要求每行显示5个数。
17、找出1000之内的所有完数(完数是指:该数的各因子之和正好等于该数本身,例如:6的因子是1,2,3,而6 = 1+2+3,故6是完数)。
18、求2~1000中的所有亲密数对(亲密数对是指:如果a 的因子和等于b ,b 的因子和等于a ,则(a ,b )就是亲密数对)。
19、100元钱买100只鸡,已知公鸡3元1只,母鸡1元1只,小鸡1元3只,编程输出总的方案数以及每种方案中公鸡、母鸡、小鸡的数量。
20、100匹马驮100担货,大马驮3担,中马驮2担,小马驮0.5担,编程求大、中、小马的数量。
根据以下公式编程序计算e的近似值,精度要求为:10E-6:

1、请编写程序求解下式的值(n、k的值从键盘转入):2、教授最近正在研究一个项目,其间涉及到十进制与十六进制之间的转换,然而,手工将大量的十进制转换成十六进制是十分困难的。
请编写程序,将给定的非负十进制数转化成相应的十六进制数并输出(用A、B、C、D、E、F分别表示十六进制的10、11、12、13、14、15)。
3、输入一个字母打印图示图形,该图形中间一行由输入字母组成,其相邻的上下两行由它前面的字母组成,按此规律,直到字母A出现在第一行和最末行为止。
如下图:ABBCCCDDDDCCCBBA4、试编程从N位数字串中删去M个数使剩下的数字串所表示的数值最小。
5、孪生数是指两个相差为2的素数,如3和5,5和7,11和13。
请编写程序输出15对孪生数。
6、编写程序找出文件中最长和最短的正文行并统计文件中的行数(假定最长行不超过80个字符)。
7、数列总是有一些奇妙的性质。
现有一数列A,它是以递增顺序排列的,并且该数列中所有的数的质因子只有可能是2、3和5。
请编写程序输出这个数列中的前N个数字。
8、试编写程序实现两个大的整数的乘法运算。
参考答案://1、请编写程序求解下式的值(n、k的值从键盘转入):#include <stdio.h>#include <math.h>void main(void){int n,k,x;double sum=0;printf("请输入n和k的值:");scanf("%d%d",&n,&k);for(x=1;x<=n;x++)sum+=pow(x,k);//注意计算次方的函数printf("所求结果为:%f\n",sum);}//2、教授最近正在研究一个项目,其间涉及到十进制与十六进制之间的转换,然而,手工将大量的十进制转换成十六进制是十分困难的。
请编写程序,将给定的非负十进制数转化成相应的十六进制数并输出(用A、B、C、D、E、F分别表示十六进制的10、11、12、13、14、15)。
谭浩强c语言程序设计习题集

目录重要次重要重复或欲删除基础第一章C语言概述1.1 选择题1.2 填空题第二章数据类型、运算符与表达式2.1 选择题2.2 填空题第三章最简单的C程序设计3.1 选择题3.2 填空题第四章逻辑运算和判断选取控制4.1 选择题4.2 填空题4.3 编程题第五章循环控制5.1 选择题5.2 填空题5.3 编程题第六章数组6.1 选择题6.2 填空题6.3 编程题第七章函数7.1 选择题7.2 填空题7.3 编程题第八章编译预处理8.1 选择题8.2 填空题8.3 编程题第九章指针9.1 选择题9.2 填空题9.3 编程题第十章结构体和共用体10.1 选择题10.2 填空题10.3 编程题第十一章位运算11.1 选择题11.2 填空题11.3 编程题第十二章文件12.1 选择题12.2 填空题12.3 编程题第一章C语言概述1.1 选择题*1.1一个C程序的执行是从。
A)本程序的main函数开始,到main函数结束B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序的main函数开始,到本程序文件的最后一个函数结束D)本程序文件的第一个函数开始,到本程序main函数结束参考答案:A参考分析:C语言总是从main函数开始,main函数结束。
但是C语言中存在一个exit(0)函数,它可以使得程序在任何时候、任何位置结束程序的运行。
如果不考虑exit(0)等函数的特殊作用,C则总是在main函数结束。
*1.2以下叙述正确的是。
A)在C程序中,main函数必须位于程序的最前面B)在C程序的每一行只能写一条语句C)C语言本身没有输入输出语句D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误参考答案:C参考分析:C程序对main函数的位置没有任何要求;其书写格式自由,一行可以写多条语句,一条语句(多关键字语句)可以写在多行;C语言忽略注释,把注释看作是一个空格,不会对注释中的内容进行语法检查。
计算机等级考试(二级C)试题

全国高校计算机等级考试(二级C)模拟四试题一、选择题1、对for(表达式1; ;表达式3)可理解为(B)。
A、for(表达式1;0;表达式3)B、for(表达式1;1;表达式3)C、for(表达式1;表达式1;表达式3)D、for(表达式1;表达式3;表达式3)2、在C语言中, 一维数组的定义方式为:类型说明符数组名(A)。
A、[整型常量表达式]B、[表达式]C、[整形变量]D、[整型表达式]3、下面程序的运行结果是(B)。
#include<stdio.h>void main(void){char a[]="morning",t;int i,j=0;for(i=0;i<7;i++) if (a[j]<a[i])j=i;t=a[j];a[j]=a[7];a[7]=a[j];puts(a);}A、mogninrB、moC、morningD、mornin4、下面程序段是输出两个字符串中对应相等的字符。
请选择填空。
char x[]="programming";char y[]="Fortran";int i=0;while(x[i]!='\0'&&y[i]!='\0'if (x[i]==y[i]) printf("%c",( A));else i++;A、x[i++]B、y[++i]C、x[i]D、y[i]5、以下正确的说法是(B)。
A、用户若需调用标准库函数,调用前必须重新定义B、用户可以重新定义标准库函数,若如此,该函数将失去原有含义C、系统根本不允许用户重新定义标准库函数D、用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中6、C语言规定,函数返回值的类型是由(D)。
A、return语句中的表达式类型所决定B、调用该函数时的主调函数类型所决定C、调用函数时系统临时决定D、在定义该函数时所指定的函数类型所决定7、在一个源文件中定义的全局变量的作用域为(D)。
程序设计基础教程C语言教学课件ppt作者杨有安陈维曹惠雅徐欣欣..

第4章4.1分析下面程序的结果:(1)#include<stdio.h>void main(){int i,t,sum=0;for(t=i=1;i<=10;){sum+=t;++i;if(i%3==0)t=-i;else t=i;}printf("sum=%d",sum);}运行结果:sum=19分析:该数列为sum=1+2-3+4+5-6+7+8-9+10(2)#include<stdio.h>void main(){int i;for(i=1;i<=5;i++){switch(i%2){case0:i++;printf("#");break;case1:i+=2;printf("*");default:printf("\n");}}printf("i=%d",i);}运行结果:*#i=6(3)#include<stdio.h>void main(){int y=10;do{y--;}while(--y);printf("%d\n",y--);}运行结果:分析:循环体共执行5次(4)#include<stdio.h>void main(){int m,n;printf("Enter m,n;");scanf("%d%d",&m,&n);while(m!=n){while(m>n)m-=n;while(n>m)n-=m;}printf("m=%d\n",m);}运行结果:m=14.2求自然数1~100的累加和,分别用三种循环控制语句实现。
方法1(for循环)#include<stdio.h>void main(void){int i,sum=0;for(i=0;i<=100;i++)sum+=i;printf("%d",sum);}方法2(while循环)#include<stdio.h>void main(void){int a=1,sum=0;while(a<=100){sum+=a;a++;}printf("%d",sum);}方法3(do-while循环)#include<stdio.h>void main(void){int i,sum=0;i=1;do{sum=sum+i;i++;}while(i<=100);printf("%d",sum);}4.3计算1-3+5-7+…-99+101的值。
C++语言程序设计试题及答案(3)

C++程序设计试题及答案(三)一、单项选择题1.设有数组定义:char array[]=”China”;则数组array所占的空间为:A) 4个字节 B) 5个字节 C) 6个字节 D) 7个字节2.下列选项中,与实现运行时多态性无关的是______。
A) 重载函数 B) 虚函数 C) 指针 D) 引用3.若a是int类型变量,则计算表达式a=1000%999的值是:A) 0 B) 1 C) 2 D) 34.下面程序段中,for循环的执行次数是:int i=10;for(i=1;i<10;i++)cout << “*”;A)9 B)10 C)8 D)75.有以下程序void main(){int a[3][3],*p,i;p=&a[0][0];for(i=0;i<9;i++)p[i]=i;for(i=0;i<3;i++)cout << a[1][i];}程序运行后的输出结果是:A)012 B)123 C)234 D)3456.以下叙述中错误的是:A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出B)数组名代表的是数组所占存储区的首地址,其值不可改变C)程?蛑葱兄校??樵?氐南卤暝浇缡保?低掣??ldquo;下标越界”的出错信息D)可以通过赋初值的方式确定数组元素的个数7.有以下程序void main(){int a[]={1,2,3,4,5,6,7,8,9,0},*p;for(p=a;p<a+10;p++)cout << *p << “,”;}程序运行后的输出结果是:A)1,2,3,4,5,6,7,8,9,0, B)2,3,4,5,6,7,8,9,10,1,C)0,1,2,3,4,5,6,7,8,9, D)1,1,1,1,1,1,1,1,1,1,8.有如下函数模板定义:template <class T>T func(T x, T y){return x*x + y*y;}在下列对func()的调用中,错误的是A) func(3,5); B) func(3.0,5.5)C) func(3,5.5) D) func((double)3,5.5) 9.有如下类声明:class A{int x;public:A(int n){x=n;}};class B:public A{int y;public:B(int a,int b);};下列函数中哪一个是正确的构造函数A) B::B(int a, int b):x(a),y(b){}B) B::B(int a, int b):A(a),y(b){}B) B::B(int a, int b):x(a),B(b){}D) B::B(int a, int b):A(a),B(b){}10.类的析构函数的作用是A) 对象的初始化 B) 删除对象时的清理任务C) 与一般成员函数一样 D) 类的初始化二、填空题1.若要访问指针变量p所指向的数据,应使用表达式__(1)__。
输入精度e,使用格雷戈里公式求π的近似值,精确到最后一项的绝对值小于e

输入精度e,使用格雷戈里公式求π的近似值,精确到最后一项的绝对值小于e.要求定义
格雷戈里公式(Gregory's formula)是一个求π的近似值的数学公式,可以迭代计算,使用它来求π可以保证输入精度,用以下公式定义:
pi / 4 = 1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + 1/13 - ...
其中,精度e是输入的一个实数,它规定了要求精确到最后一项的绝
对值小于e为止。
因此求π的近似值的过程可以从累加的公式开始,当分母n的值比输入的精度e更大时,停止迭代。
由于这个公式的无限和有限性,所以它的精确程度也随着它的分母的
值的增长而增加,因此,根据输入的精度e,用它来求π的近似值也就
更简单了:
令n=1,pi/4=1-1/3
令n=3,pi/4=1-1/3+1/5
令n=5,pi/4=1-1/3+1/5-1/7
……
令n=2n+1,pi/4=1-1/3+1/5-1/7+1/9-1/11+…+(-1)n+1/2n+1
要求pi/4的精确值:令(-1)^n+1/2n+1的绝对值小于精度e,即|(-
1)^n+1/2n+1|<e,从而求出对应分母n的值,即n=2m+1,由于pi/4=1-1/3+1/5-1/7+…+(-1)^m+1/2m+1,把该无限累加和带入前面的等式,则可得出pi值。
例如,当输入精度为e=0.1时,最后一项满足条件,则表明n=131,即m=130,此时pi/4=1-1/3+1/5-1/7+…+(-1)130+1/261,即pi=4·(1-1/3+1/5-1/7+…+(-1)130+1/261)≈3.1415926。
C语言期中试题

《C语言程序设计》期中考试卷一、选择题1.下面程序段的运行结果是。
for(x=3; x<6; x++) printf((x%2)? (“**%d”): (“##%d\n”), x);A.**3##4**5 B.##3**4##5C.##3**4##5D.**3##4**52.下面程序的运行结果是。
#include<stdio.h>int main(){int i;for(i=1; i<=5; i++)switch(i%5){case 0: printf("*");break;case 1: printf("#");break;default: printf("\n");case 2: printf("&");} return 0;}A.#&&&*B.#&& &* C.#&&&*D.#&*3.下面程序的功能是求算式xyz+yzz=532中的x,y,z的值(其中xyz和yzz分别表示一个三位数),请选择填空。
#include <stdio.h>int main( ){ int x,y,z,I,result=532;for(x=1;x<10;x++)for(y=1;y<10;y++)for( ; z<10; z++){ i=100*x+10*y+z+100*y+10*z+z;if ( )printf(“x=%d,y=%d,z=%d\n”,x,y,z);}return 0;}A1.z=x B1.z=1 C1.z=0 D1.z=y A2.i/result==1 B2.i=result C2.i!=result D2.i==result4.以下正确的描述是。
A.continue语句的作用是结束整个循环的执行B.只能在循环体内和switch语句体内使用break语句C.在循坏体内使用break语句或continue语句的作用相同D.从多层循环嵌套中退出,只能使用goto语句5.在下面的程序中,。
用有理方法求e的近似值

用有理方法实现无理数e的近似计算摘要e是自然对数的底数,是一个无限不循环小数,其值是2.71828 无理数e的出现,对于数学学科而言,除了自然指数函数、自然对数函数、双曲函数的相关应用之外,与e有关的研究与结果极为丰富,如欧拉公式的复数形式i e +1=0,被人们称为人类最宝贵财富之一,这一公式巧妙地把纳皮尔常数、虚数单位、圆周率、以及0与1联系在一起.对于e而言,除了在数学学科的发展中的重要意义外,其它自然科学的发展也会处处可见与无理数e有关的痕迹,如物体的冷却、细胞的分裂、细菌的繁殖、放射性元素的衰变等,它也是在今天的银行业中对银行家最有帮助的一个数,此外在考古学的碳-14定年法、古画的铅-210或镭-226鉴定法中也有所涉及.所以精确计算出e的近似值就是一件非常重要和有意义的事情了.关键词:超越数; 无理数; 近似值TO REALIZE THE APPROXIMATE CALCULATION OFIRRATIONAL NUMBER E USING THE RATIONALMETHODABSTRACTE is the base number of natural logarithm,it is infinite and not repeating decimal, Its value is2.71828 ,the emergence of the irrational number e, for the mathematical subject, except the related application of natural exponential function, natural logarithm function, hyperbolic function , the study and results of e is extremely abundant , such as the form of the complex number of Euler Formula i e +1=0. Known as one of the most precious human wealth, this formula take the Napierian logarithm, the imaginary unit, the PI, 0 and 1 are linked subtly. For e, except the important meaning in the development of the mathematical subject ,outside the development of other natural science can everywhere find the trace of irrational number e, such as object cooling, cells dividing,bacterial breeding, the decay of radioactive elements and so on.It is a number that is most helpful for bankers in bank now , in addition it is also involved in Carbon dating-14, Ancient paintings of Pb-210or Ra-226methods produced. So, accurate calculate the approximation of e is very important and meaningful.Key words:transcendental number; irrational number; approximate value目录1.前言 (1)2.e的相关理论 (3)2.1e的定义及证明 (3)2.2以e为底的对数叫做自然对数的原因 (4)2.3e在数学分析方面的应用 (5)3.e是无理数及超越数的证明 (8)3.1证明e是无理数 (8)3.2证明e是超越数 (8)4.e的近似计算 (11)4.1利用数列11nn⎛⎫+⎪⎝⎭极限求e的近似值 (11)4.2利用x e幂级数展开求e的近似值 (13)4.3通过匹配试验计算e的近似值 (15)5.结论 (18)参考文献 (19)致谢 (20)1.前 言e ,作为数学常数,是自然对数函数的底数.有时称它为欧拉数(Euler number ),以瑞士数学家欧拉命名,也有个较鲜见的名字纳皮尔常数,以纪念苏格兰数学家约翰•纳皮尔引进对数.它就像圆周率π和虚数单位i,e 是数学中最重要的常数之一.它的数值约是(小数点后100位):e ≈ 2.71828 18284 59045 23536 02874 71352 66249 77572 47093 69995 95749 66967 62772 40766 30353 54759 45713 82178 52516 64274 第一次提到常数e ,是约翰•纳皮尔于1618年出版的对数著作附录中的一张表.但它没有记录这常数,只有由它为底计算出的一张自然对数列表,通常认为是由威廉•奥特雷德(William Oughtred)制作.第一次把e 看为常数的是雅各•伯努利(Jacob Bernoulli).已知的第一次用到常数e ,是莱布尼茨于1690年和1691年给惠更斯的通信,以b 表示.1727年欧拉开始用e 来表示这常数;而e 第一次在出版物用到,是1736年欧拉的《力学》(Mechanica).虽然以后也有研究者用字母c 表示,但e 较常用,终于成为标准.用e 表示的确实原因不明,但可能因为e 是“指数”(exponential)一字的首字母.另一看法则称a,b,c 和d 有其他经常用途,而e 是第一个可用字母.不过,欧拉选这个字母的原因,不太可能是因为这是他自己名字Euler 的首字母,因为他是个很谦虚的人,总是恰当地肯定他人的工作.林德曼在魏尔斯特拉斯定理(Lindemann-Weierstrass)中提到了e 是无理数和超越数,由夏尔•埃尔米特(Charles Hermite)于1873年证明.e 是第一个获证为超越数,而不是像刘维尔数故意构造的.1lim 1xx e x →±∞⎛⎫=+ ⎪⎝⎭实际上e 就是欧拉通过这个极限而发现的,它是个无限不循环小数,其值等于2.71828…….以e 为底的对数叫做自然对数,用符号“ln ”表示.以e 为底的对数(自然对数)和指数,从数学角度揭示了自然界的许多客观规律,比如指数函数“x e ”对x 的微分和积分都仍然是函数本身.后人把这个规律叫做“自然律”,其中e 是自然律的精髓.因此,上述求极限e 的公式被英国科学期刊《物理世界》2004年10月号公布为读者选出的科学界历来“最伟大的公式”之一,并且名列第二.e 在数学中和自然指数函数、自然对数函数、双曲函数的相关应用有着密切的联系,此外e 在医学中也有所涉及,很多增长或衰减过程都可以用指数函数模拟.指数函数还有一个比较重要的方面在于它是唯一的函数与其导数相等,而且e 是无理数和超越数,由于e 具有很多特有的性质,所以研究e 的近似值,无论对于数学的学习还是其它学科的研究和应用,意义都是非常大的.通过对e 的一些性质的了解就更能激发我们进一步探索它的渊源、演变过程及对数学和各个学科的影响,更希望对以后更深入的学习数学分析和高等数学有所帮助.2. e 的相关理论2.1 e 的定义及证明e 是自然对数的底数,是一个无限不循环小数,其值是2.71828 ,它是这样定义的:当n →∞时,11nn ⎛⎫+ ⎪⎝⎭的极限记做e ,即1lim 1nn e n →∞⎛⎫+= ⎪⎝⎭.下面先给出e 做为数列极限的一种证明,后面在求e 的近似值的时候将具体给出1lim 1nn e n →∞⎛⎫+= ⎪⎝⎭的证明过程.证明1lim 1xx e x →∞⎛⎫+= ⎪⎝⎭证明:所求证的极限等价于同时成立以下两个极限:1lim 1xx e x →+∞⎛⎫+= ⎪⎝⎭()21-1lim 1xx e x →-∞⎛⎫+= ⎪⎝⎭()22-先利用数列极限1lim 1nn e n →∞⎛⎫+= ⎪⎝⎭证明(1)式成立.为此,作定义[)1,+∞上的两个阶梯函数如下:()11,1,1,21nf x n x n n n ⎛⎫=+≤≤+= ⎪+⎝⎭()111,1,1,2n g x n x n n n +⎛⎫=+≤≤+= ⎪⎝⎭易见f 增且有上界,g 减且有下界.()lim x f x →+∞与()lim x g x →+∞皆存在.于是,由归结原则(取{}{}n x n =)得到()1lim 11nx f x e n →+∞⎛⎫=+= ⎪+⎝⎭()11lim 1n x g x e n +→+∞⎛⎫=+= ⎪⎝⎭另一方面,当1n x n ≤<+时有 1111111n x n+<+≤++ 以及 11111111nxn n x n +⎛⎫⎛⎫⎛⎫+<+<+ ⎪ ⎪ ⎪+⎝⎭⎝⎭⎝⎭,即有 ()()11xfx g x x ⎛⎫<+< ⎪⎝⎭,[)1,x ∈+∞.从而根据迫敛性定理(1)式得证. 现证(2)为此作代换x y =-,则1111111yyxx y y -⎛⎫⎛⎫⎛⎫+=-=+ ⎪⎪ ⎪-⎝⎭⎝⎭⎝⎭,且当x →-∞时y →+∞,从而有1111l i m 1l i m 1111y xx y e x y y -→-∞→+∞⎛⎫⎛⎫⎛⎫+=+⋅+= ⎪ ⎪ ⎪--⎝⎭⎝⎭⎝⎭以后还常用到e 的另一种极限形式:()1l i m 1aa a e →+= 事实上,令1a x=,则0x a →∞⇔→,所以 ()11l i m 1l i m 1xa x a e a x →∞→⎛⎫=+=+ ⎪⎝⎭2.2以e 为底的对数叫做自然对数的原因对数函数()log 01a x a a >≠且的导数1log a y e x'=,对于a e =便有1y x '=,即ln y x =有()ln y x ''==1x ,而且只有ln x 的导数才等于1x,其他代数函数如:2y x =等的导数是不可能等于1x 的.这就是说代数函数n y x =不能得到微分为1x dx -的形式,积分是微分的逆运算.所以ln dxx C x=+⎰,就是说一个分式的分子是分母的微分.此分式的积分就是分母以e 为底的对数,只要形状呈()()()()f x dx df x f x f x '=⎰⎰,则()()()ln f x dxf x C f x '=+⎰,这反映了自然界的现象有种种函数关系.而要确立变量之间的函数关系往往需要确立函数的导数或微分的关系式.即微分方程,通过解这种方程,得出所要求的函数关系若方程中存在()()f x dxf x '⎰的项.那么积分后便会出现以e 为底的对数,而且,反映自然界规律的函数关系.总是以指数形式或对数形式出现的,所以必定是以e 为底的对数最能说明以e 为底的指数或对数和自然数界的关系是自然界的复利律(凡函数的导数和函数本身成正比的性质均叫做复利律).我们知道,()x x e e '=即x e 的导数等于其本身.而且一个函数其导数等于其本身的只有x e 所以, 若发现一个函数y , 其导数(变化率)与函数本身成正比.我们便可断定所研究的函数是以e 为底的指数函数或对数函数即dyay dx=±则ax y ce =或ax y ce -=( 其中ac 为常数).若函数的数量是增加的则为正,减少的则为负.由此可知,若写成对数形式,则是以e 为底的对数,除一些经验式外,一般不可能有其它正数为底的指数或对数出现.所以,人们将以e 为底的对数称作自然对数.e 作为数学符号使用最早是欧拉人们为纪念他,才确定用“e ”作为自然对数的底数.2.3 e 在数学分析方面的应用由于数e 不仅是数列11n n ⎧⎫⎪⎪⎛⎫+⎨⎬ ⎪⎝⎭⎪⎪⎩⎭也是函数()11xf x x ⎛⎫=+ ⎪⎝⎭当x →∞时的极限,而数学分析的研究对象是函数,确切地说是用极限的方法来研究函数,数学分析中几乎所有的概念都离不开极限,因此数e 这一重要的函数值,在数学分析方面有诸多应用. 1、应用e 求极限利用1lim 1nn e n →∞⎛⎫+= ⎪⎝⎭这一重要的极限求出一些函数极限.例:求 2225lim 5x x x x →∞⎛⎫+ ⎪-⎝⎭解: 原式=()2105510221010lim 11log 55x a x f x x x x -→∞⎡⎤⎛⎫⎛⎫⎢⎥+⋅+= ⎪ ⎪⎢⎥--⎝⎭⎝⎭⎢⎥⎣⎦10e = ()010a x <≠> 2、应用e 求导数对数函数()()log 010a f x x a x =<≠> 关于x 的导数就是数e 的典型运用. ()()()00limlim x x f x x f x yf x x x∆→∆→+∆-∆'==∆∆()0log log lima a x x x xx∆→+∆-=∆0log 1lim a x x x x∆→∆⎛⎫+ ⎪⎝⎭=∆01limlog 1xxa x x x x ∆∆→∆⎛⎫=+ ⎪⎝⎭ 01log lim 1x xa x x x x ∆∆→∆⎛⎫=+ ⎪⎝⎭1ln x a=3、应用e 计算积分由于()1ln x x '=于是有积分基本公式1ln dx x c x=+⎰.利用这一公式可计算一些积分. 例:计算24dxx x-⎰解: ()()22242222111dx dx x x dx x x x x x x -+==---⎰⎰⎰ 221dx dxx x =+-⎰⎰ 2112121dx dx dxx x x=++-+⎰⎰⎰11121xin C x x+=-++-4 、应用e 判别级数的敛散性这主要是对于含有!n 的数项级数, 可运用司特林公式(()12!201nn n n n e e θπθ⎛⎫=<< ⎪⎝⎭)将!n 表为含有e 的关系式,然后再用柯西或达朗贝尔判别法来判定级数的敛散性.例:判别正项级数12!n n n n n∞=∑的敛散性解:使用柯西判别法2!lim lim n n n n n n n n a n→∞→∞=2!lim nn n n→∞=2212122lim 22lim 221n n n n n n n n e n en e eeθθππ→∞→∞=⋅=⋅⋅=< ∴正项级数12!n n n n n∞=∑收敛5、应用e 求二阶常系数齐次线性微分方程的通解主要是根据指数函数的导数仍然是指数函数这一特性,将二阶常系数齐次线性微分方程转化为特征方程,进而求出此微分方程的通解. 例:求微分方程:250y y y '''++=的通解 解:它的特征方程为:2250r r ++=有一对共轭复根:112r i =-+ ,212r i =--.方程250y y y '''++=的通解 是:()12cos 2sin 2xy eC x C x -=+3. e 是无理数及超越数的证明3.1证明e 是无理数证明:假设e 是有理数,设为q p ,(,p q 为互素自然数) , 任取n p >,则由01!k e k ∞==∑两边同乘以!n 可得()()()11!!!1431,112n e n n n n n n n =++-⋅++++++++ ()*上式左端为正整数,故右端也应为正整数,但右端前1n + 项之和为正整数,而余项之和1n R + 却满足()()()()()11110112123n R n n n n n n +<=+++++++++ ()()()()222211111122111121121112n n n n n n n n n n ⎡⎤++<+++=⋅=<=≤⎢⎥+++++++⎢⎥⎣⎦-+ 即1n R +不是整数,从而()* 式右端不是整数,产生矛盾,所以e 是无理数.3.2证明e 是超越数微积分的出现,使人们对使用以e 为底的指数函数x e 及其反函数ln x 的好处有了更为清醒的认识.如下列运算中不可避免地要出现以e 为底的自然对数:()()1ln ,log ln xxa a aa x x a''==而以e 为底的指数、对数函数在形式上却简单得多: ()ln x '= 1x , 从而ln dx x c x=+⎰, xe 更为特殊,它有任意阶导数且形式不变, 即()()n x x e e = 它是唯一具有这一特性的函数,并有()()n kx n x e k e =, 这一性质在求解微分方程中得到充分的应用.此外,利用以e 为底的指数函数还可定义出一类新的函数--双曲函数: ,22x x x xe e e e shx chx ---+==等.它们与三角函数有许多类似之处,所以猜测e 可能是一个超越数(超越数是不能满足任何整系数代数方程的实数).1873 年, 厄尔米特证明了e 的超越性,具体证明过程如下: 证明:假使e 是代数数, 即存在不全为零的整数01,,,m a a a 使20120m m a a e a e a e +++=()31-第一步,设()f x 是任意n 次多项式,因()()10n f x +=由分部积分公式, 得()()()()()00b bxxnf x e dx ef x f x f x --⎡⎤'=-+++⎣⎦⎰记 ()()()()n F x f x f x f x '=+++ 则 ()()()00bbbx e F F b ef x e dx -=+⎰()32-在()32- 式中依次令0,1,2,,,b m =得 ()()000,e F F =()()()11101xe F F ef x edx -=+⎰()()()222002x e F F e f x e dx -=+⎰()()()00mm m x e F F m e f x e dx -=+⎰ 将以上各式依次乘以01,,,m a a a 并相加.得()()()()()201201001mm m F a a e a e a ea F a F a F m +++=++++()01mii x i i a e f x e dx -=∑⎰0=()33-第二步,由()1 式可知,对任意一个多项式()f x ,()3式均成立.因此只要能找到一个多项式()f x ,使()3 式不成立即可. 令()()()()()11121p p pp f x x x x x m p -=---- 其中p 是大于m 和0a 的素数, 这个多项式的p 阶或更高阶导数具有整系数.且由于()()11!p n n n n p c p --+=⋅所以()f x 的p 阶或更高阶导数必能被p 整除,因()f x 及其前1p -阶导数在1,2x m = 处均为零,则()()()1,2,F F F m 都是p 的整数倍,但当0x =时, ()f x 只有()()()()20000p f f f-'==== 且()()()101!pmp fm -⎡⎤=-⎣⎦, 此时 ()()()()()()()110000p p mp p F f f f -+-=+++ 于是()0F 不能被p 整除.又因p 是大于m 与0a的素数,所以0a 不能被p 整除, 从而()()()0101m a F a F a F m +++ 不能被p 整除,故不等于零.再考察()3中另一部分()01mii x i i a e f x e dx -=∑⎰在区间[]0,m 上,有()()()()11001!1!mp p mp p ii x xm m f x e dx f x e dx p p +-+---<<--⎰⎰而且, 若令01m a a a a =+++ 则 ()()()()()11111!1!p m mp p mii x m m mi i m ma e f x e dx ae ae mp p -++--=<⋅=--∑⎰,因()1lim 01!mp p p m p +-→∞=- 所以当p 充分大时,()01m i ix i i a e f x e dx -=∑⎰可任意小, 可见()3 式右端之和不能等于零,这就产生了矛盾.所以e 不是代数数,故e 是超越数.4. e 的近似计算4.1利用数列11nn ⎛⎫+ ⎪⎝⎭极限求e 的近似值利用熟知的几何平均与算术平均关系不等式, 即对()01,2,i x i n ∀>= 有1212n nn x x x x x x n++≥ ()1成立, 其中等号当且仅当: 12n x x x === 时成立. 1)单调性因()1对任意自然数n 成立,对1n +也成立. 令()111,1,2,,1i n x i n x n+=+== 则由()1有 11111111111n n n n n n n +⎛⎫++ ⎪⎛⎫⎝⎭+⋅<=+⎪++⎝⎭()2 111111n n n n +⎛⎫⎛⎫∴+<+ ⎪ ⎪+⎝⎭⎝⎭故数列11nn ⎧⎫⎪⎪⎛⎫+⎨⎬ ⎪⎝⎭⎪⎪⎩⎭单调递增.2)有界性令()11111,2,,1ni n n n x i n x k k -+⎛⎫=+==+ ⎪⎝⎭,其中k 为大于1的正整数.代入()1有1111111111nnnn n n n n n k k k k n --+⎛⎫⎛⎫+++ ⎪ ⎪⎛⎫⎛⎫⎝⎭⎝⎭++< ⎪⎪+⎝⎭⎝⎭整理得()111111nn n k n n k k k -⎛⎫⎛⎫-+>+-+= ⎪⎪⎝⎭⎝⎭即 111nk kn k k k ⎛⎫-⎛⎫+< ⎪ ⎪⎝⎭⎝⎭ ()3由()2,()3有 1111nk nn n k ⎛⎫⎛⎫+<+ ⎪ ⎪⎝⎭⎝⎭()4故数列11nn ⎧⎫⎪⎪⎛⎫+⎨⎬ ⎪⎝⎭⎪⎪⎩⎭有上界.根据数列极限的单调有界准则知11nn ⎧⎫⎪⎪⎛⎫+⎨⎬ ⎪⎝⎭⎪⎪⎩⎭必定收敛.我们用常用对数的工具,能求出e 的近似值,并由误差估计可知,这种近似值可以达到相当高的精确度.为此,我们先证()4式右端随k 的增大而单调减少.对正整数(),1n k k >,改写 ()4为1111nk kkn k k k k k ⎛⎫+⎛⎫⎛⎫<+< ⎪ ⎪ ⎪-⎝⎭⎝⎭⎝⎭ ()4'由()2知,()4'左端随k 增大而单调增加.现证右端单调减少.事实上,令 ()11,1,2,,i x i n k =-= 11k x += ,由()1有 111111111k k k k k k k k +⎛⎫-+ ⎪⎛⎫⎝⎭-⋅<=⎪++⎝⎭11111111k kk k k k k ++⎛⎫⎛⎫⎛⎫=⎪ ⎪ ⎪ ⎪ ⎪ ⎪⎝⎭⎝⎭⎝⎭∴-<-++即 111kkk k k -⎛⎫⎛⎫-= ⎪ ⎪⎝⎭⎝⎭为单调增加序列,从而1kk k ⎛⎫⎪-⎝⎭为单调减少序列.将()4'两端相减得121111101111k k k k k k k k k k k k k k k k k k k k k ---⎡⎤++++⎛⎫⎛⎫⎛⎫⎛⎫⎛⎫⎛⎫⎛⎫<-=-+++⎢⎥ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪----⎝⎭⎝⎭⎝⎭⎝⎭⎝⎭⎝⎭⎝⎭⎢⎥⎣⎦()()()12111111k kk k k k k k k k k k k --+-⎛⎫⎛⎫<⋅= ⎪⎪---⎝⎭⎝⎭1kk k ⎛⎫ ⎪-⎝⎭ 为单调减少序列,故当2k ≥时,都有224121nk k ⎛⎫⎛⎫≤= ⎪ ⎪--⎝⎭⎝⎭又1lim 0k k →+∞= , 1lim 01k k k k k k k →+∞⎡⎤+⎛⎫⎛⎫∴-=⎢⎥ ⎪ ⎪-⎝⎭⎝⎭⎢⎥⎣⎦因此()4'两端当k →∞时都趋于e ,如果将()4'左端作为e 的不足近似值,右端作为过剩近似值,随着k 的增大,其相对误差将越来越小.从而这些近似值的精确度将越来越高.令1,1kkk k k k A B k k +⎛⎫⎛⎫== ⎪ ⎪-⎝⎭⎝⎭,利用常用对数的工具,取不同的k 值,就得到e 的具有不同精确度的近似值,如果取此两者的算术平均值()12k k k C A B =+作为e 的近似值,则其精确度将会更高我们选取某些特定k 值,制成下表ke 的不足近似值e 的过剩近似值两者的算数平均值1kk k A k +⎛⎫= ⎪⎝⎭ 相对误差 1kk k B k ⎛⎫= ⎪-⎝⎭相对误差 ()12k k k C A B =+ 相对误差2 2.25 21710-⨯ 4 24710-⨯ 3.125 21510-⨯3 2.370370 21310-⨯ 3.375 22410-⨯ 2.872685 2610-⨯ 10 2.593742 2510-⨯ 2.867972 2910-⨯ 2.730857 3510-⨯ 1002.7048143510-⨯ 2.731999 3510-⨯ 2.718407 5510-⨯ 1000 2.716924 4510-⨯ 2.719642 4510-⨯ 2.718283 7410-⨯ 10000 2.7181465510-⨯2.7184185510-⨯2.7182829810-⨯由此可见, 在证明数列11nn ⎧⎫⎪⎪⎛⎫+⎨⎬ ⎪⎝⎭⎪⎪⎩⎭的极限存在之后, 利用常用对数作为工具,就能顺利求出e 的近似值.因此本文介绍的方法是行之有效的, 也是比较容易掌握的,4.2利用x e 幂级数展开求e 的近似值上面我们提到利用数列11nn ⎛⎫+ ⎪⎝⎭的极限求e 的近似值,由于在n 取值较小时收敛速度较慢,通过改进,从等式1lim 1nx e n →∞⎛⎫=+ ⎪⎝⎭出发, 11nn x n ⎛⎫=+ ⎪⎝⎭展开1111211111112!!n k x n k n n n -⎛⎫⎛⎫⎛⎫⎛⎫=++-++---++ ⎪ ⎪⎪ ⎪⎝⎭⎝⎭⎝⎭⎝⎭11111!n n n n -⎛⎫⎛⎫-- ⎪ ⎪⎝⎭⎝⎭ ,在此等式中固定自然数k ()k n ≤,弃去1k +项以后各项, 可得 111121211112!!k e n k n n n -⎛⎫⎛⎫⎛⎫⎛⎫≥+-++--- ⎪ ⎪⎪ ⎪⎝⎭⎝⎭⎝⎭⎝⎭ ,当n →∞时,有11122!3!!n e y k ≥+++++=对任何自然数k 成立, 即n y e ≤,又根据n x 的表达式,得11122!3!!n n x y n <+++++=由夹逼准则, 有 01lim !n n n y e n ∞→∞===∑事实上, 这正是xe 的幂级数展开式 0!nxn x e n ∞==∑中令1x =时所得结果. 当0x =时有)()()()()()200002!!n nn f f f x f f x x x R x n '''=+++++()麦克劳林公式(其中()n R x 是拉格朗日余项,泰勒公式还有佩亚诺型余项()(())n n o x R a x =-,柯西余项()(1)(1)(())()/!n n f n a x x x R a a n θ+=++--等)当1x =时有 ()()11111,012!3!!1!e e n n θθ=++++++<<+ 故 ()()()311!1!n e R n n θ=<++, 故 ()()111311,012!3!!1!e n n θ≈++++++<<+ 当2n =时,便有 2 2.5e = ,()2310.53!R <=, 3e ≈ 同理 当5n =时 5 2.758333333e =,()25311106!720R -<=<, 2.762433333e ≈ 当7n =时 7e =2.75992063,()47311108!40320R -<=<, 2.759994634e ≈ 从而略去()1n R 而求得e 的近似值 2.71828183e ≈这种计算e 的近似值的方法在知道了111112!3!!e n =+++++ 和误差估计公式的情况下收敛速度较快,误差较小.4.3通过匹配试验计算e 的近似值通过一个著名试验——匹配试验, 来构造无理数e 的估计公式. 在高等数学中, e 常通过下列两式近似得到:1、由1lim 1n n e n →∞⎛⎫=+ ⎪⎝⎭,得到 11nn e e n ⎛⎫=+≈ ⎪⎝⎭ ()n 充分大 ()12、由01!n e n ∞==∑,得到 01!nn i e e i ==≈∑()2 ()2式的近似误差为()31!n e e n -≤+因而近似效果很好.下面通过“匹配试验”构造e 的估计公式的基本思想是: 在“匹配试验”中寻找概念与e 或e 的近似值相关的随机事件, 利用“频率稳定于概率”的结论, 得到e 的频率估计公式.e 的估计公式概率论中著名的“匹配试验”是: 某人写了n 封不同的信, 又写了n 个不同地址的信封, 然后将n 封信随机地放入n 个信封内. 在此试验中我们关心 {}n A =没有一封信装对地址 显然 ()()()001=!knn n P A p n k =-∑,故 ()10p n e -≈ ()3 不妨令 ()10n r e p n -=- ,即()10n e p n r -=+ 其中()31!n r n ≤+ ,因而()3式近似程度很高.若将匹配试验独立地重复N 次, 若n A 发生()k N 次, 由贝努里大数定律()()0k N pNp n −−−→ ()N →∞ , 即 ()()0k N p n N ≈ ,所以 ()1k N e N-≈.从而得到e 的估计公式()()ˆNeN k N = ()4 匹配试验的模拟与e 的估计在实际试验时, 考虑n A 不如考虑n A 方便. {} n A =至少有一封信与地址一致, 显然 ()11n p A e -≈-利用扑克进行匹配试验并对e 进行了估计.方法是:取扑克中两种花色共26张牌, 每次随机取两张,若成对则认为是一个匹配.试验时,先将牌充分洗匀,若出现对子时停止试验.洗匀后再进行下一轮试验,否则摸完26张牌.共进行了2500次试验,有对子出现的有1578次.则()922k N =由()4 ,()()ˆ 2.711496746eN N k N == 而 2.718281828e ≈ ,故 ()3ˆ 6.810eN e --<⨯ 在给定置信概率1α-时, e 的近似区间估计为e 的()()()()()()111\1\221,1N N k N k N k N k N U k N U k N N N N N αα----⎡⎤⎛⎫⎛⎫⎛⎫⎛⎫⎢⎥ ⎪ ⎪+--- ⎪ ⎪⎢⎥ ⎪ ⎪⎝⎭⎝⎭⎝⎭⎝⎭⎣⎦ 证:由于()()()()()0110,1k N p n Nk N k N N N N N -⎛⎫- ⎪⎪⎝⎭−−−−−−→ ()N →∞对置信概率1α-,()0p n 的置信上、下限分别为 上限:()()01\2N k N p n U N α-=+ ()()1k N k N N ⎛⎫- ⎪⎝⎭ ;下限:()()01\2N k N p n U N α-=- ()()1k N k N N ⎛⎫- ⎪⎝⎭. 由于()10p n e -≈,故e 的近似置信上、下限分别为:()01\u e p n ≈ ,()01\L e p n ≈ 利用上述性质可以得到e 的 95%的区间估计为 []2.579226,2.858067若要使()ˆeN 估计e 的精度达到410- (()195%α-=,N 需94.87710⨯次, 显然手工试验是十分困难的. 随着计算机的出现和发展, 可以把真正的匹配试验利用统计模拟试验方法来代替, 即把匹配试验在计算机上实现.5.结论通过对e的近似值的研究,我们知道了e在生产生活中的重要性,它和数学研究以及其他自然科学都有着密切的联系.通过几种求e的近似值的方法的比较,可以看出利用x e幂级数展开求e的近似值是传统的方法,按部就班,便于理解;利用数列11nn⎛⎫+⎪⎝⎭极限求e的近似值在n取到10k,k的值较大时精确度较高,操作简便;匹配试验的模拟与e的估计是试验的方法虽然理论性强,但是操作复杂,有了计算机的辅助作用也不失为一种求e的近似值的好的方法.以上几种方法都能达到 2.71828183e≈ 的效果.通过本文更是证明了数学是一门基础科学,它是描述大自然与社会规律的语言,是科学与技术的基础,也是推动科学技术发展的重要力量,它是人类生产生活必不可少的工具,它使我们的生活变得更快捷,更准确.[1] 华东师范大学数学系,《数学分析》,上册,高等教育出版社,1997年:134页-139页[2]M·克莱因.古今数学思想[M].上海:上海科学技术出版社,1979.[3]华东师范大学数学系编.数学分析[M].北京:高等教育出版社,1981.[4]闵鹤嗣,严士健.初等数论[M].北京:人民教育出版社,1982.[5]张楚廷. 数学文化[M]. 北京:高等教育出版社,2000.[6]刘玉琏.教学分析.北京:高等教育出版社,1994[7]吕世虎等.从高等数学看中学数学[M].北京: 科学出版社, 1995年:47页-57页.[8]宋秉信.湘潭教育学院.怀化师专学报,1998年;第17 卷:第2 期.[9]孙本旺译. 数学分析[M]. 湖南: 湖南人民出版社, 1981年:318页- 322页.[10]格.马.菲赫金哥尔茨.吴亲仁.陆秀丽译.数学分析原理( 第一卷, 第一分册) [ M] . 北京: 人民教育出版社, 1979年:96页- 102页.[11]张新仁,徐化忠山.东电大学报,2002 年第3 期.致 谢本文是在刘文莉老师精心指导下完成的.刘老师以其严谨求实的治学态度、认真踏实的工作作风对我产生了深刻的影响.通过此次毕业论文写作,我也学到了许多数学教学理论方面的知识,对于现在数学在生活中的应用也有了较深入的了解.其次,我要感谢父母对我的供养与支持,使我得以完成学业.诚挚的感谢鞍山师范学院教过我的所有老师,四年来精心的教导与栽培.感谢四年来与我朝夕相伴、同甘共苦的同学们.在老师和同学的细心帮助下,使得我的论文得以顺利完成.谢谢!。
第4章-13.求误差小于输入值的e的近似值(20分)

22
print("{:.6f}".format(result))
23
break
24 cnt += 1
25
输 出 样 例 1: 在这里给出相应的输出。例如: 2.716667
输 入 样 例 2: 在这里给出一组输入。例如: 0.000000001
输 出 样 例 2:
在这里给出相应的输出。例如:
2.718282
1 # 求误差小于输入值的e的近似值
2 # Author: cnRick
3 # Time : 2020-3-29
博客园 用户登录 代码改变世界 密码登录 短信登录 忘记登录用户名 忘记密码 记住我 登录 第三方登录/注册 没有账户, 立即注册
第 4章 -13.求误差小于输入值的 e的近似值( 20分)
自然常数e可以用级数1+1/1!+1/2!+⋯+1/n!来近似计算。ei代表前i项求和。输入误差范围error,当 ei+1-ei<error,则表示e的近似值满足误差范围。 输入格式: 在一行输入误差范围。 输出格式: 在一行输出e的近似值(保留6位小数)。 输 入 样 例 1: 在这里给出一组输入。例如: 0.01
14
result = result + 1.0/factor(x)
15 return result
16
17 error = float(input()) # 输入误差
18 cnt = 0
19 while True:
20 if (getE(cnt+1) - getE(cnt)) < error:
21
result = getE(cnt+1)
matlab中e科学计数法

例如:4.258e+01表示42.58 一般的计算的科学计数法: 一、整数计数法: (1)7.823E5=782300,这种表示方式就是:E代表10,E后面的数代表的是指数位,例如这里的5代表指数是10的5次方 (2)1234567 = 1.234567E+6,这种表示方式是:1.表示的是1.234567乘以后面的数,也就是后面的E+6表示的是10的6次方 二、小数计数法 (1)1.23456e+002 ,这个数的表示方式就是,e+002 表示10 的2次方,这里的数就是123.456。 (2)202 +0.00000E+00,这样的数就是表示为202加上后面有个精确到小数点后五位的数 三、C语言中使用科学技术法来的方法,使用pow函数,来进行求x的y次方的计算 首先加上头文件 :#include <math.h> 表示4的3次方的时候,可以使用代码表示为:
int
e计数法c语言

e计数法c语言计算机科学中的 e 计数法,也称为科学计数法,是一种用来表示极大或极小的数值的方案。
e 计数法使用基数为 10 的科学计数法表示法,即使用一个数乘以 10 的某次方。
e 计数法的使用可以使得很小或很大的数值易于阅读和理解,同时可以在计算机科学中应用广泛。
在 C 语言中,e 计数法是使用小写字母“e” 或“E” 来表示指数的。
例如,1.23e6 表示 1.23 乘以 10 的六次方,即 1,230,000。
同样地,0.001e-3 表示 0.001 乘以 10 的负三次方,即 0.000001。
e 计数法在 C 语言中的使用非常方便。
在使用 e 计数法时,需要确保被指数化的数值是浮点型。
因此,在声明和定义变量时,需要使用 float 或 double 类型。
例如,可以使用以下代码来声明和定义一个 double 类型的变量:double x = 1.23e6;在使用数值时,可以直接使用 e 计数法进行运算。
例如,可以使用以下代码实现对两个 e 计数法数值的加法:double a = 1.23e6;double b = 4.56e7;double c = a + b;在使用 e 计数法时,需要注意一些小的细节。
例如,e 计数法中的指数不能包含任何空格或其他符号。
此外,注意浮点数值在计算机中的精度问题。
由于计算机内部的浮点数值是使用二进制存储的,而不是十进制,因此可能会出现一些精度上的差异。
因此,使用 e 计数法时,也需要对精度进行一些调整和注意。
总的来说,e 计数法是一种非常方便和实用的表示大数或小数的方案。
在计算机科学中广泛应用的 e 计数法在 C 语言中也得到了很好的实现和支持。
希望在今后的使用中,读者们能够更加深入地理解e 计数法的原理和使用方法,更好地利用这一方案进行程序设计和计算机科学研究。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、请编写程序求解下式的值(n、k的值从键盘转入):2、张教授最近正在研究一个项目,其间涉及到十进制与十六进制之间的转换,然而,手工将大量的十进制转换成十六进制是十分困难的。
请编写程序,将给定的非负十进制数转化成相应的十六进制数并输出(用A、B、C、D、E、F分别表示十六进制的10、11、12、13、14、15)。
3、输入一个字母打印图示图形,该图形中间一行由输入字母组成,其相邻的上下两行由它前面的字母组成,按此规律,直到字母A出现在第一行和最末行为止。
如下图:ABBCCCDDDDCCCBBA4、试编程从N位数字串中删去M个数使剩下的数字串所表示的数值最小。
5、孪生数是指两个相差为2的素数,如3和5,5和7,11和13。
请编写程序输出15对孪生数。
6、编写程序找出文件中最长和最短的正文行并统计文件中的行数(假定最长行不超过80个字符)。
7、数列总是有一些奇妙的性质。
现有一数列A,它是以递增顺序排列的,并且该数列中所有的数的质因子只有可能是2、3和5。
请编写程序输出这个数列中的前N个数字。
8、试编写程序实现两个大的整数的乘法运算。
参考答案://1、请编写程序求解下式的值(n、k的值从键盘转入):#include <stdio.h>#include <math.h>void main(void){int n,k,x;double sum=0;printf("请输入n和k的值:");scanf("%d%d",&n,&k);for(x=1;x<=n;x++)sum+=pow(x,k);//注意计算次方的函数printf("所求结果为:%f\n",sum);}//2、张教授最近正在研究一个项目,其间涉及到十进制与十六进制之间的转换,然而,手工将大量的十进制转换成十六进制是十分困难的。
请编写程序,将给定的非负十进制数转化成相应的十六进制数并输出(用A、B、C、D、E、F分别表示十六进制的10、11、12、13、14、15)。
#include <stdio.h>void main(void){int data10,beichushu,yushu,shang;char data16[10],p=0;//数组data16用于存放十六进制各位上的数do{printf("请输入一个非负十进制数:");scanf("%d",&data10);}while(data10<0);beichushu=data10;//将初始值作为被除数//以下循环用于完成转换do{shang=beichushu/16;//求商yushu=beichushu%16;//求余数if(yushu<10)//小于10则转换得到对应数字字符data16[p++]=yushu+'0';else//大于等于10则转换得到对应字母data16[p++]=yushu-10+'A';beichushu=shang;//将商作为下次的被除数继续除}while(shang!=0);printf("十进制数%d所对应的十六进制数为:",data10);for(p--;p>=0;p--)printf("%c",data16[p]);printf("\n");}//3、输入一个字母打印图示图形,该图形中间一行由输入字母组成,其相邻的上下两行由它前面的字母组成,按此规律,直到字母A出现在第一行和最末行为止。
如下图:#include <stdio.h>void main(void){char ch,row,col;do{printf("请输入中间行所对应的字母(大写):");scanf("%c",&ch);}while((ch<'A')||(ch>'Z'));//输出图形的上半部分for(row=1;row<=ch-'A'+1;row++)//控制行数{for(col=1;col<=ch-'A'-row+1;col++)//输出相应个数空格以控制位置printf(" ");for(col=1;col<=row;col++)//输出相应个数字母printf("%c",row+'A'-1);printf("\n");//换行}//输出图形的下半部分for(row=1;row<=ch-'A';row++)//控制行数{for(col=1;col<=row;col++)//输出相应个数空格以控制位置printf(" ");for(col=1;col<=ch-'A'-row+1;col++)//输出相应个数字母printf("%c",ch-row);printf("\n");//换行}}//4、试编程从N位数字串中删去M个数使剩下的数字串所表示的数值最小。
#include "stdio.h"#include "string.h"#define N 80void main(){char str[N+1];int i,j,n,m,yn;//yn用于判断数字串有是否有逆序对,1-有,0-无printf("请输入原始数字串:");scanf("%s",str);printf("原始数字串为:%s\n",str);n=strlen(str);do{printf("请输入要删除的数的位数(0-%d):",n);scanf("%d",&m);}while((m<0)||(m>n));yn=1;while((m>0)&&(yn))//有逆序对时删除较大者{yn=0;for(i=0;(str[i+1]!='\0')&&(yn==0);i++)if(str[i]>str[i+1])//有逆序对{for(j=i;str[j+1]!='\0';j++)str[j]=str[j+1];str[j]='\0';m--;yn=1;}};if(m>0)str[strlen(str)-m]='\0';printf("%s\n",str);}//5、孪生数是指两个相差为2的素数,如3和5,5和7,11和13。
请编写程序输出15对孪生数。
//注意:1既不是素数,也不是合数,2是最小的素数,也是唯一的偶素数#include <stdio.h>//判断x是否为素数,若是则返回1,否则返回0int judge(int x){int i,yn;yn=1;//为1表示是素数for(i=2;(i<x)&&(yn==1);i++)if(x%i==0)yn=0;return yn;}void main(void){unsigned i=2,count=1,d1,d2;while(count<=15){d1=i;d2=d1+2;i++;if(judge(d1)&&judge(d2))printf("No.%2d:%10d%10d\n",count++,d1,d2);}}//6、编写程序找出文件中最长和最短的正文行并统计文件中的行数(假定最长行不超过80个字符)。
#include <stdio.h>#include <stdlib.h>#include <string.h>#define N 80void main(void){unsigned count=1,maxno,minno;char max[N+1],min[N+1],cur[N+1],fname[N+1];FILE *fp;printf("请输入文件名:");//输入文件名scanf("%s",fname);fp=fopen(fname,"r");if(fp==NULL)printf("文件无法打开!\n");else{while(!feof(fp))//文件没结束时反复读取并判断{fgets(cur,N,fp);//读取一行if(count==1)//若为第一行则当其为目前的最长及最短行{maxno=1;minno=1;strcpy(max,cur);strcpy(min,cur);}else//若不是第一行{if(strlen(max)<strlen(cur))//新的最长行{maxno=count;strcpy(max,cur);}if(strlen(min)>strlen(cur))//新的最短行{minno=count;strcpy(min,cur);}}count++;//行号增1};fclose(fp);printf("文件共有%d行\n",count-1);printf("最长行为第%d行,其内容为:%s\n",maxno,max);printf("最短行为第%d行,其内容为:%s\n",minno,min);}}//7、数列总是有一些奇妙的性质。
现有一数列A,它是以递增顺序排列的,并且该数列中所有的数的质因子只有可能是2、3和5。
请编写程序输出这个数列中的前N个数字。
#include <stdio.h>//此题的关键是如何分解出一个数x所有的质因子//下面函数用于判断x的质因子是否仅为2、3或5,是则返回1,否则返回0int judge(int x){int i=2,yn;yn=1;while((x>=i)&&(yn)){if(x%i==0)//如果能整除{if(!((i==2)||(i==3)||(i==5)))//质因子不是2、3或5yn=0;while((x%i==0)&&(yn))x/=i;}i++;};return yn;}void main(void){int n,i,count=0;do{printf("请输入要求的数列元素的个数(>=1):");scanf("%d",&n);}while(n<1);for(i=2;count<n;i++)if(judge(i))printf("No.%5d: %10d\n",++count,i);printf("\n");}//8、试编写程序实现两个大的整数的乘法运算。