您的位置:百味书屋 > 范文大全 > 经典范文 > 正无穷和3.1415926打一成语 正文

正无穷和3.1415926打一成语

2016-11-25 16:48:53 来源网站:百味书屋

篇一:第3章作业参考答案

3.2 写出下面程序的运行结果:

#include <stdio.h>

int main(void)

{

unsigned int x1 = 65535;

int x2 = -3;

float y1 = 123.4567, y2 = 123.4500;

printf("x1=%d,%o,%x,%u\n", x1,x1,x1,x1);

printf("x2=%d,%o,%x,%u\n", x2,x2,x2,x2);

printf("y1=%10f,%10.3f,%.3f,%-10.3f\n", y1,y1,y1,y1);

printf("y2=%f,%e,%g\n", y2,y2,y2);

printf("x1(%%4d)=%4d", x1);

return 0;

}

16位环境(题意默认为16位环境):

x1=-1,177777,ffff,65535

x2=-3,177775,fffd,65533

y1=123.456700,123.457,123.457,123.457

y2=123.450000,1.23450e+02,123.45

x1(%4d)=-1

32位环境:

x1=65535,177777,ffff,65535

x2=-3,37777777775,fffffffd,4294967293

y1=123.456700,123.457,123.457,123.457

y2=123.450000,1.23450e+02,123.45

x1(%4d)=65535

3.3 填入代码如下:

(1) %c

(2) %c

(3) %f

(4) %f

(5) %lu

(6) %hd

(7) %d

(8) %ld

(9) %f

(10) %Lf

3.4 根据变量说明指出下面的语句哪些是正确的,哪些是错误的。

char c='A';

int i1=1;

const int i2=-1;

long i3=3;

unsigned i4=0;

float x1=1;

double x2=3;

long double x3=1000;

printf("%d",(17/15)%i4+c); //ERROR:除数为零 /* (1) */

putchar(c-'A'+'a'+1); /* (2) */

printf("%*c",i2&0xf,'*'); /* (3) */

printf("x2=%f,x3=%lf\n",x2,x3); /* (4) *///ERROR:输出long double类型的浮点数用%Lf printf("%lf\n",getchar()!=EOF?x1*3.14 : x3); /*(5)*///ERROR:表达式值类型为long double,应用%Lf输出

scanf("%u%f",&i4,&x2); /*(6)*///ERROR:x2类型为double,格式字符串中语句应为%lf printf("%x,%lo\n",c<<++i4|1/2,i3+'0'); /* (7) */

putchar(i2=getchar());/* (8) *///ERROR:cannot modify a const object

printf("%ld,%f\n",c+i1*i4,(x2,x1,i2,c)); /*(9)*//ERROR:第一个参数应用%u输出,第二个参数char类型用%f输出结果有误

scanf("%*c%lf",&x2); /*(10)*/

3.5 编写一个程序,从终端输入一个字符,如果该字符时十六进制数字,则输出它对应的整数,否则输出它的字符码。

#include <stdio.h>

int main()

{

char c;

c = getchar();

if( c>='0' && c<='9' )

{

printf("%d\n", c-'0');

}

else if(c>='A' && c<='F')

{

printf("%d\n", c-'A'+10);

}

else if(c>='a' && c<='f')

{

printf("%d\n", c-'a'+10);

}

else

printf("%d\n", c);

return 0;

}

3.6 从终端输入一个短整数,以字符形式输出该短整数的高字节和低字节。

#include<stdio.h>

#define N 0x00FF

int main(void)

{

short c;

char high, low;

scanf("%hd", &c);

high = (unsigned short)c>>8;

low = c&N;

printf("%c,%c\n", high, low);

return 0;

}

3.7 输入无符号短整数k,输出将k的高4位和低4位交换后的结果。

#include<stdio.h>

#define N 0x0FF0

int main(void)

{

unsigned short k;

scanf("%hu", &k);

printf("%hu\n", (k&N) | (k>>12&0x000F) | (k<<12));

return 0;

}

3.8 编写一个程序,输入无符号短整数x, m, n(0<=m<=15, 1<=n<=m+1),取出x从第m位开始向右的n位(m对二进制位从右向左编号为0~15),并使其向左端(第15位)靠齐,输出处理后的结果。

#include <stdio.h>

#include <stdlib.h>

int main()

{

unsigned short x, m, n, temp = 0xFFFF;

printf("Please input x(unsigned short), m(0~15), n(1~m+1)\n");

scanf("%hu %hu %hu", &x, &m, &n);

//x = (x & temp>>15-m & temp<<m+1-n)<<15-m;

x=x<<15-m & temp<<16-n;

printf("%x", x);

return 0;

}

3.9 输入一个华氏温度F,将它转换成摄氏温度C后输出。转换公式为C=5/9(F-32)。要求按如下格式输出结果:假定输入的华氏温度为100,则输出为(保留两位小数):

100(F)=37.78(C)

#include<stdio.h>

int main(void)

{

float c, f;

scanf("%f", &f);

c = 5.0/9*(f-32);

printf("%.0f(F)=%.2f(C)\n", f, c);

return 0;

}

3.10 输入圆柱体的底面半径r和高h,计算并输出圆柱体的表面积和体积。

#include<stdio.h>

#define PI 3.1415926

int main(void)

{

float r, h, s, v;

scanf("%f%f", &r, &h);

s = 2*PI*r*h + 2*PI*r*r;

v = PI*r*r*h;

printf("%.6f(S),%.6f(V)\n", s, v);

return 0;

}

3.11 编程序以十六进制形式输出汉字“编”的区位码、国标码和机内码。

#include<stdio.h>

int main(void)

{

unsigned short c='编', d;

char * r = &c;

d=(*(r+1))&0x00FF | (*r)<<8;

printf("%hx(Q),%hx(G),%hx(J)\n", d-0xA0A0, d-0x8080, d);

return 0;

}

#include<stdio.h>

int main(void)

{

unsigned short d;

char * r = "中";

d=(*r)&0x00FF | (*(r+1))<<8;

} printf("%hx(Q),%hx(G),%hx(J)\n", d-0xA0A0, d-0x8080, d); return 0;

篇二:π无穷无尽的歌谣

?一无穷无尽的歌谣

学海搜奇

金字塔与?

在埃及首都开罗西南的吉萨郊外,在尼罗河西岸一望无垠的沙漠上,耸立着名列世界七大奇观之首的埃及金字塔。那是古代埃及法老王的陵墓,它是一座由四个等边三角形组成的四棱锥体形建筑,它以巨大的体积和奇异的风格闻名于世。现在保存最大最完整的金字塔,是古埃及第四王朝法老胡夫的陵墓。

图1 埃及金字塔

然而,就是这座建造于公元前2600年左右的胡夫金字塔,竟隐藏着一系列神秘的数字。其中,金字塔的高度为146.73 m,它的塔底每边长230.4 m,塔底是正方形。于是,我们用金字塔底的周长除以高度的2倍,结果为3.14,即

4?230.4

2?146.73?3.14

而3.14是一个令人感到神秘的数字??它出现在4500多年前就更让人感到不能简单地用“巧合”来解释。

让我们回忆一下,我们很小的时候,就知道生活中离不开一种叫“圆”的图形,它是既最简单又最美丽的几何图形。稍大些的时候,我们又牢记着这样的公式: c?2? r、s?? r,这里c代表圆周长,r代表圆半径,s代表圆面积。一个传奇的常数?把圆的周2

长、面积和半径紧密联系在一起,我们把这个常数?叫做“圆周率”,它是圆的周长与直径之比。

?是 为什么会用符号?表示“圆周率”呢?那是在1600年,英国的威廉·奥托兰认为,

希腊文“圆周”的第一个字母,可用来代表圆周长;而?是希腊文“直径”的第一个字母,可用来代表直径,根据圆周率的定义,于是他首先使用?/?表示圆周率。但在推算圆周率的过程中,人们常用直径为l的圆,即令?=l,这样?/?就等于?了。1706年,英国的琼斯率先改用?表示“圆周率”,1737年欧拉在他的著作中使用?作为圆周率,后来被数学家广泛接受,并一直沿用至今。

事实上,圆周率?是一个无穷的不循环小数,3.14为它的近似值。这就难怪金字塔为什么会让人们那样迷惑不解了。

如果从古埃及算起人类探求?的历史至少也有了4 000多年。的确,数千年来,不知有多少古今中外一代一代的数学家绞尽脑汁,为此献出了自己的智慧和劳动,探讨各种方法来计算?值。德国数学家康托曾经说过:“历史上一个国家所算得的圆周率的准确程度,可以作为衡量这个国家当时数学发展的一个标志。”为求得圆周率的值,人类走过了漫长而曲折

的道路,它的历史是饶有趣味的,也诞生了很多可歌可泣的动人故事。现在就让我们走进?的世界。

超级链接

实验时期

通过实验对 π 值进行估算,这是计算 π 的的第一阶段。这种对 π 值的估算基本上都是以观察或实验为根据,是基于对一个圆的周长和直径的实际测量而得出的。在古代世界,实际上长期使用 π =3这个数值。最早见于文字记载的有“兰德草卷”上的?;基督教《圣经》中记载的?,为了测量所罗门修建一个圆形容器,使用的?的数值是3,这一段描述的事大约发生在公元前950年前后。

一、“兰德草卷”上的?

很久以前,人们测定?值常凭直观推测或实物度量而得,圆周率?值也只是近似值。那么?值到底是多少呢? 1858年一位苏格兰古董商兰德偶然发现了古埃及一卷草纸,人们称为“兰德草卷”。“兰德草卷”大约产生于公元前1650年,是现存世界上最古老的数学书,它记载有85个数学问题,其中就有?的值。根据其记载,圆面积的算法为直径减去它的1/9,然后加以平方,按照这个方式计算,则圆周率大约是3.160 49。

有人推测在公元前若干个世纪,就已经使用?=3的圆周率了,在古印度时期,使用的?值常常引用复杂的式子表示,如

4

??11???3(2?1)??2???3.0883

此值也是约略为3。

古代巴比伦人计算出?为31

7。

在我国刘徽之前"圆径一而周三"曾广泛流传。我国第一部《周髀算经》中,就记载有圆"周三径一"这一结论。在我国,木工师傅有两句从古流传下来的口诀:叫做:"周三径一,方五斜七",意思是说,直径为1的圆,周长大约是3,边长为5的正方形,对角线之长约为7。这正反映了早期人们对圆周率 π 和2这两个无理数的粗略估计。东汉时期官方还明文规定圆周率取3为计算面积的标准。后人称之为"古率"。

早期的人们还使用了其它的粗糙方法。如古埃及、古希腊人曾用谷粒摆在圆形上,以数粒数与方形对比的方法取得数值。或用匀重木板锯成圆形和方形以秤量对比取值??由此,得到圆周率的稍好些的值。在印度,公元前六世纪,曾取 π= = 3.162。在我国东、西汉之交,新朝王莽令刘歆制造量的容器――律嘉量斛。刘歆在制造标准容器的过程中就需要用到圆周率的值。为此,他大约也是通过做实验,得到一些关于圆周率的并不划一的近似值。现在根据铭文推算,其计算值分别取为3.1547,3.1992,3.1498,3.2031比径一周三的古率已有所进步。此后,东汉张衡(公元78~139年)有意识地非常认真去寻求?值,通过

球体积计算,甚至专门做了一个金球来考查有关数据,推导出?==3.162 2,称“衡率”。很可惜,他所依据的当时关于球与其外切圆柱体、外切立方体诸体积之比的理论本身有错误,使其结论反不如“歆率”精确。可见在科学研究中,理论依据是何等重要! 人类的这种探索的结果,当主要估计圆田面积时,对生产没有太大影响,但以此来制造器皿或其它计算就不合适了。

几何法时期

凭直观推测或实物度量,来计算 π 值的实验方法所得到的结果是相当粗略的。

二、计算π的第一次科学尝试

真正使圆周率计算建立在科学的基础上,首先应归功于阿基米德。他是科学地研究这一常数的第一个人,是他首先提出了一种能够借助数学过程而不是通过测量的、能够把 π 的值精确到任意精度的方法。由此,开创了圆周率计算的第二阶段。

图 3 圆周长大于内接正四边形而小于外切正四边形,因此22< π < 4 。

公元前240年,古希腊的天才数学家阿基米德在《圆的量度》书中,第一次用上、下界来确定 π 的近似值,他用几何方法证明了圆周长与圆直径之比在310

71至31

7之间,他还提

供了误差的估计。重要的是,这种方法从理论上而言,能够求得圆周率的更准确的值。数学史上认为,这是计算?的第一次科学尝试。到公元150年左右,希腊天文学家托勒密得出 π =3.1416,取得了自阿基米德以来的巨大进步。

三、古代中国的“割圆术”

图4

割圆术,不断地利用勾股定理,来计算正N边形的边长。

三国时代的刘徽(约225~295年)是我国历史上最杰出的数学家之一,他在世界数学史上也处于光辉的地位。他首次运用在圆内作正多边形的方法对圆周率进行了科学计算,创立了驰名古今中外的“割圆术”,开创了我国数学史上研究圆周率的新纪元.割圆——就是在圆周上截取等分点,得圆内接正多边形,它的面积小于圆面积,并依次倍增正多边形边数,从而使其面积逐步增加,边数越多,其面积就越接近于圆面积,只要这种分割无限地进行下去,就可以求得圆面积值,这就是“割圆术”。虽然他提出割圆术的时间比阿基米德晚一些,但其方法确有着较阿基米德方法更美妙之处。割圆术仅用内接正多边形就确定出了圆周率的上、下界,比阿基米德用内接同时又用外切正多边形简捷得多。另外,有人认为在割圆术中刘徽提供了一种绝妙的精加工办法,以致于他将割到192边形的几个粗糙的近似值通过简单的加权平均,竟然获得具有4位有效数字的圆周率??3927

1250=3.1416,后人称之为“徽

率”。而这一结果,正如刘徽本人指出的,如果通过割圆计算得出这个结果,需要割到3072边形。这种精加工方法的效果是奇妙的。这一神奇的精加工技术是割圆术中最为精彩的部分,令人遗憾的是,由于人们对它缺乏理解而被长期埋没了。

四、永远的祖冲之

南北朝时期的祖冲之(429~500年),我国南北朝时杰出的数学家、天文学家和机械发明家。他从小聪明好学,爱好自然科学、文学和哲学,经过刻苦的学习钻研,终于成为一位享誉世界的科学家。他卓越的数学成就为全世界所赞扬和推崇。

据《隋书·律历志》记载,祖冲之关于圆周率有两大贡献。

其一是祖冲之采用“割圆术”,画了一个直径一丈的圆,并从正六

边形、正十二边形开始,一直用针尖画出了正24 576(即6×212)

边形,经反复计算,得到3.141 592 6<?<3.141 592 7。这是

世界上最早算出的精确到小数点后六位的圆周率。在西方,这个

成绩是由法国数学家韦达于1593年取得的,它要比祖冲之要晚了

l 100多年。其二是祖冲之还求得“密率” ?=355/113,“约率”

?=22/7,后人曾推算若要单纯地通过计算圆内接多边形边长的话,得图5 祖冲之 到这一结果,需要算到圆内接正12288边形,才能得到这样精确度的值。

祖冲之是否还使用了其它的巧妙办法来简化计算呢?这已经不得而知,因为祖冲之的计算方法原载于他的著作《缀术》,可惜在北宋元丰七年(1084年)刻印各种算经时即已失传。这在中国数学发展史上是一件极令人痛惜的事。祖冲之的研究成就是空前的,他算出的 π 的

8

位可靠数字,不但在当时是最精密的圆周率,而且保持世界记录一千多年。

1913年日本数学家三上义夫建议将祖冲之提出的?=355/113称为“祖率”,以纪念祖冲之在世界数学史上的贡献,此建议被广泛采纳。巴黎"发现宫"科学博物馆的墙壁上著文介绍了祖冲之求得的圆周率,莫斯科大学礼堂前的廊壁上,用彩色大理石镶嵌着的世界著名科学家肖像中就有祖冲之。在月球背面有一座环形山,就被命名为“祖冲之环形山”。

另外,对于祖冲之的关于圆周率的第二点贡献,即他选用两个简单的分数尤其是用密率来近似地表示 π 这一点,通常人们不会太注意。然而,实际上,后者在数学上有更重要的意义。

密率与 π 的近似程度很好,但形式上却很简单,并且很优美,只用到了数字1、3、5。数学史家梁宗巨教授验证出:分母小于16604的一切分数中,没有比密率更接近 π 的分数。在国外,祖冲之死后一千多年,西方人才获得这一结果。

可见,密率的提出是一件很不简单的事情。人们自然要追究他是采用什么办法得到这一结果的呢?他是用什么办法把圆周率从小数表示的近似值化为近似分数的呢?这一问题历来为数学史家所关注。由于文献的失传,祖冲之的求法已不为人知。后人对此进行了各种猜测。

一种推测是:使用加成法。

让我们先看看国外历史上的工作,希望能够提供出一些信息。

1573年,德国人奥托得出这一结果。他是用阿基米德成果22/7与托勒密的结果377/120用类似于加成法"合成"的:(377-22) / (120-7) = 355/113。

1585年,荷兰人安托尼兹用阿基米德的方法先求得:333/106 < π < 377/120,用两者作为 π 的母近似值,分子、分母各取平均,通过加成法获得结果:3 ((15+17)/(106+120) = 355/113。

两个虽都得出了祖冲之密率,但使用方法都为偶合,无理由可言。

在日本,十七世纪关孝和重要著作《括要算法》卷四中求圆周率时创立零约术,其实质就是用加成法来求近似分数的方法。他以3、4作为母近似值,连续加成六次得到祖冲之约率,加成一百十二次得到密率。其学生对这种按部就班的笨办法作了改进,提出从相邻的不足、过剩近似值就近加成的办法,(实际上就是我们前面已经提到的加成法)这样从3、4出发,六次加成到约率,第七次出现25/8,就近与其紧邻的22/7加成,得47/15,依次类推,只要加成23次就得到密率。

钱宗琮先生在《中国算学史》(1931年)中提出祖冲之采用了我们前面提到的由何承天首创的"调日法"或称加权加成法。他设想了祖冲之求密率的过程:以徽率157/50,约率22/7为母近似值,并计算加成权数x=9,于是 (157 + 22×9) / (50+7×9) = 355/113,一举得到密率。钱先生说:"冲之在承天后,用其术以造密率,亦意中事耳。"

另一种推测是:使用连分数法。

由于求二自然数的最大公约数的更相减损术远在《九章算术》成书时代已流行,所以借助这一工具求近似分数应该是比较自然的。于是有人提出祖冲之可能是在求得盈 二数之后,再使用这个工具,将3.14159265表示成连分数,得到其渐近分数:3,22/7,333/106,355/113,102573/32650?

最后,取精确度很高但分子分母都较小的355/113作为圆周率的近似值。至于上面圆周率渐近分数的具体求法,这里略掉了。你不妨利用我们前面介绍的方法自己求求看。英国李约瑟博士持这一观点。他在《中国科学技术史》卷三第19章几何编中论祖冲之的密率说:"密率的分数是一个连分数渐近数,因此是一个非凡的成就。"

我国再回过头来看一下国外所取得的成果。

1150年,印度数学家婆什迦罗第二计算出 π= 3927/1250 = 3.1416。1424年,中亚细

篇三:计算方法试题集及答案(新)

1.x 为精确值

*

x的近似值;

y*?fx*为一元函数y1?f?x?的近似值;

??

y*?f?x*,y*?为二元函数y2?f?x,y?的近似值,请写出下面的公式:e*?:

*er?

x*?x

x*f'?x*?fx*??r?x*?

??y1*??f'?x*????x*? ??y1*??

r

??y2??

*

?f?x*,y*??x

???x*??

?f?x*,y*??y

???y*?

?r?y2*??

?f?x*,y*?e?x*??f?x*,y*?e?y*?

??? *

?x?yy2y2*

2、 计算方法实际计算时,对数据只能取有限位表示,这时所产生的误差叫 舍入误差 。

3、 分别用2.718281,2.718282作数e的近似值,则其有效数字分别有

6 位和 7?1.73(三位有效数字)1

1.73? ?10-2。

4、 设x1?1.216,x2?3.654均具有3位有效数字,则x1x2的相对误差限为 5、 设x1?1.216,x2?3.654均具有3位有效数字,则x1?x2的误差限为。 6、 已知近似值

xA?2.4560是由真值xT经四舍五入得到,则相对误差限为?y0

7、 递推公式??

,如果取

???yn=10yn-1-1,n=1,2,

y0??1.41作计算,则计算到y10时,误差为

1

?108 ;这个计算公式数值稳定不稳定2

8、 精确值??3.14159265?,则近似值?1*?3.141和?2*?3.1415分别有 3 位和 4位有效数字。

9、 若x?e?2.71828?x,则x有位有效数字,其绝对误差限为 。 10、 设x*的相对误差为2%,求(x*)的相对误差0.02n

*

11、近似值x?0.231关于真值x?0.229有( 2 )位有效数字;

n

*

*

-5

12、计算方法主要研究(截断 )误差和(舍入)误差;

1

13、为了使计算 y?10?

346?? 的乘除法次数尽量地少,应将该表达式改23

x?1?x?1??x?1?

1

x?1,为了减少舍入误差,应将表达式2001?改写为

写为

y?10?(3?(4?6t)t)t,t?

2

?。

14、改变函数f(x)?

x?1?x (x??1)的形式,使计
正无穷和3.1415926打一成语》出自:百味书屋
链接地址:http://www.850500.com/news/31545.html
转载请保留,谢谢!

查看更多相关内容>>正无穷和3.1415926打一成语
相关文章
推荐范文