浅谈C语言中的数学文化

浅谈C语言中的数学文化

ID:46128576

大小:71.00 KB

页数:9页

时间:2019-11-21

浅谈C语言中的数学文化_第1页
浅谈C语言中的数学文化_第2页
浅谈C语言中的数学文化_第3页
浅谈C语言中的数学文化_第4页
浅谈C语言中的数学文化_第5页
资源描述:

《浅谈C语言中的数学文化》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、浅谈C语言中的数学文化学院英才学院学号6120610306姓名李策2013.12浅谈C语言中的数学文化摘要:数学是知识的工具,亦是其它知识工具的泉源。所有研究顺序和度量的科学均和数学有关。当然,数学文化更是体现在学习、生活中的各个方面。由于阅历与知识储备有限,本文是根据作者学习C语言的经历以及学习数学竞赛时了解的知识,结合几个个人认为蕴含深刻数学思想的经典问题,简单的谈谈对数学以及数学文化的理解。c语言;数学文化;优化I.c语言中的数学文化程序设计是一门非常重要的计算机课程,其重要性不仅仅体现在一般意义上

2、的程序编制,更体现在引导学习者实现问题求解思维方式的转换——培养人们的计算思维能力⑴。从这一点来看,计算机程序设计与数学有着密不可分的关系。C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点,是目前应用最广泛的计算机语言之一。而对于任何一种计算机语言,其本质是将解决实际问题的一种特定的算法用计算机可以识别的语言进行叙述。而算法就是问题的解决流程,在一定意义上说,c语言是一种针对计算机的数学语言,其中蕴含的数学思维就不言而喻了。下面将根据在学习C语言过程中遇到的•些问题來讨论C语言

3、中蕴含的数学文化与数学思想。2.数学文化在C语言中的具体体现2.1约瑟夫问题数学在程序优化中有着重要的作用,其中函数迭代和递归便是数学在程序设计优化中的经典应用。我们以著名的约瑟夫问题为例,讨论递归中蕴含的数学文化。约瑟夫问题可以简单地叙述为:让n个人围成一圈,从某一个人(不妨编号为1)开始从1报数,报到m的人出圈,然后从下一个人开始,再从1报数,报到m者出圈,重复至只剩下最后一个人,求此人的编号叫首先,我们可以通过编译程序,构建链表将上述过程进行模拟。建立一个含n个节点的循环链表表示n个人围成圈,节点的

4、数据域存放n个人的编号指针域存放下一个节点的位置,从第一个节点开始,找到第m个节点,删除该节点,依次继续下去,直到队列仅剩一个节点。算法:1•定义数据;2.建立单项循环链表,节点的数据域记录编号;3•模拟循环报数的过程(通过链表的删除操作实现),由于链表构成的是环,所以当头尾相连时(由一个节点指向下一个节点时,指向其本身)表示报数过程完毕;4.输出该节点数据域中的编号即可。虽然运用链表法(或者数组)可以形象直观的将约瑟夫问题展示岀来,但是也可以想象代码的复杂以及时间复杂度。下面我们用数学方法解决此问题。我

5、们知道,第一个出列的人编号为k=m%n,剩卜'的人组成了一个新的约瑟夫环(以编号为k+1开始):k+l,k+2,…,n-1,n,1,・・・k-l,并且从1开始报数。我们近将编号进改变:1,2,…,n-k-1,n-k,n-k+1,…,n-1,变换后就变成了ml个人报数的子问题,如果我们知道ml个人报数的子问题的解f(n-l),那么我们将其变换冋去就可以找到n个人报数问题的解(因为当n>l时,首先被排除掉的人不会是最后出列的人,因此两种情况最后出圈的人位置相同)。利用表2.1-1,归纳递归关系:n人k+1k+

6、2•••n-1n1•••k-1n-1人12•••n-k-1n-kn-k+1•••n-1递归关系f(n)=[f(n-1)+k]%n(将k替换后f(n)=[f(n-1)+m%n]%n)表2.1・1显然,基线情况f(l)=l,此时我们可以用递归解决约瑟夫问题了。评价解决某一问题的程序,可靠性与运算效率是至关重要的因索。下面我们从运算效率的角度对两种方法进行比较分析。无论是用链表实现还是用数组实现都有一个共同点:要模拟整个游戏过程,时间复杂度高达O(nm),当n,m非常大(例如上百万,上千万)的时候,几乎是没有办

7、法在短时间内出结果的。对于递归法,每次运行都会调用下一级函数,相对而言会损耗更多的时间,但是我们可以将递归形式稍作修改,利用循环结构和所得关系式逐级计算每一个函数值,这时的时间复杂度仅为0(n)。对于代码复杂程度的比较,见附录。[小公倍数通过编程实现:输入两个正整数m和n,输出m和n的最小公倍数D。思路:从m和n中较人的开始递增,枚举法找到第一个数D,满足D是m和n的公倍数即可。用例:100101,大约要循环100x101-101=9999次我们已知辗转相除法是比较高效地求两个止整数m和n的最大公约数的方

8、法,那么对于求这两个数的最小公倍数是否有类似的高效方法。如果我们已知最大公约数与最小公倍数之间的等式关系,那么我们便可以通过最大公约数来间接地求解两个数的最小公倍数。在数论中有这样的关于最大公约数与最小公倍数的简单数学性质:若m和n的最大公约数和最小公倍数分别为d和D,则有mxn=dxDf3]o事实上,m=dxm[,n=dxnp则m】和m互质,所以D=dxniixn!,即mxn=dxDo上述性质说明求解最大公约数与最小公倍数没

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。