APP下载

数学方法在计算机算法中的应用

2015-03-26廖克顺

河南科技 2015年18期
关键词:数学方法正整数式子

廖克顺

(南宁职业技术学院,广西 南宁 5300088)

在设计计算机算法过程中,不管在解题思路上,还是编写程序,都离不开数学方法的应用,数学方法在计算机算法中得到了广泛应用。

1 数学方法的特点

数学方法具有3个基本特点:一是高度的抽象性和概括性,数学方法的抽象性表现为仅保留事物间数量的关系和空间形式;二是精确性,即逻辑的严密性及结论的确定性;三是应用的普遍性和可靠性,不受任何具体内容限制。

2 数学方法在计算机算法中的应用

2.1 计算机递推思想对数学方法的整合

计算机算法中如何实现n个数递乘变量求和?如果进行单项的计算,明显过于麻烦。因为数据呈现出递乘的规律,即Tn与Tn-1之间是:Tn=n×Tn-1。从第2个数据开始,后面每一个数据都可以用前一个数据与n相乘得到。在计算机程序中,可以设置简单的语句,就可以实现对这种递推关系数据的处理。计算机算法利用了递推、数列概念,正是对数学方法的有机整合[1]。

2.2 计算机归纳思想对数学方法的整合

用数学归纳法证明对于任意正整数n,1+2+3+……+n=n(n+1)/2成立。证明思路是:检验式子对n取初值时成立,假设对于正整数n=k式子也成立,进一步证明对于n=k+1时也成立。显然,式子对于n=1时是成立的,假定对于n=k时式子成立,即1+2+3+……+k=k(k+1)/2,在这个假设前提下,证明式子对于n=k+1也成立,即有1+2+3+……+k+(k+1)=(k+1)(k+2)/2。只要式子对于n=k+1成立,就证明了式子对于所有的正整数都成立[2]。这一证明过程可以通过如下程序段来实现://自然数列前项求和公式

public static long s(int n)

{

If (n≡≡1)

return 1;

Else

returns(n-1)+n

}

由此看出,函数s是在调用自身的副本实现求和的计算,这就是数学方法中的递归思想。通过以上例子,我们可以看出,计算机算法中,广泛地运用了数学方法。

2.3 计算机循环思想对数学方法的整合

计算机擅长机械重复地处理数据,表现出循环思想,如果不对数据进行循环处理,计算机就没有什么现实作用。数学方法中的数列求和、辗转相除法,判定素数、二分法、秦九韶算法等,在计算机程序中得到应用。例如:使用辗转相除法求两个正整数m、n的最大公约数和最小公倍数。

代码如下:include<stdio.h>

int main(intargc,int*argv[])

{

int num1,num2,temp;

printf("please input 2 number:");

scanf("%d,%d",&num1,&num2);

if(num1<num2)//the result is num1>num2

{

temp=num1;

num1=num2;

num2=temp;

}

a=num1;

b=num2;

while(b)

{

temp=a%b;

a=b;

b=temp;

}

printf("thezuidagongyuehsu:%d,thezuixiaogongbeishu:%d ",a,num1*num2/a);

system("pause");

return0;

}

2.4 数学方法对计算机编程的优化。

计算机编程通过编译不同的计算机语言而达到不同的实际操作的目的。以C语言为例,C语言在进行编程的过程中遇到最多的问题就是重复编译,在编写程序时C语言比较重视代码逻辑运行的过程,所以C语言在程序语言方面受到自身语言的局限性比较大。因而,在实际的编写程序过程中要充分发挥数学算法对计算机编程的优化作用。在编写程序时融入数学算法的思想,在C语言进行编写程序时,通过不断地简化编写语言的流程,使计算机编程得到优化。

进行程序设计时,计算机专家必须要使用众多数学方法。只有以科学的数学方法做基础,才能寻找出数据的共性,设计出的计算机程序在运行上节省时间、占用较少空间。下面我们分析一个定积分计算案例。计算定积分:In=1/e∫01xnexdx i=0,1,2,L,7

解:递推公式:In=1-nIn-1先计算I0,再计算I1,I2,…,I7

假设计算出的近似值为I0*,误差为E(I0*)=δ

则I1的近似值I1*的误差为E(I1*)=δ

则I2的近似值I2*的误差为E(I2*)=2!δ

则I3的近似值I3*的误差为E(I3*)=3!δ… …

则I7的近似值I7*的误差为E(I7*)=7!δ=5040δ误差放大5 000倍!递推公式计算:In-1=(1-In)/n先计算I7,I0的误差只有I7的误差的五千分之一!

通过上面两种计算,我们看到,数据计算顺序不同,计算出的结果却相差遥远。就是因为转变一下计算的次序,就解决了类似数据计算稳定的难题,制造出一套更好的计算方法。

计算结果的稳定性,就是对原始数据的微小变动,没有令数据失真,可以提高算法稳定性,完善计算机算法的程序设计,这就是数学方法对计算机算法优化。

2.5 数学方法对计算机算法的比较分析。

设计出的每一个算法,都需要进行算法分析。坚持一定的计算理念,讨论计算机算法时间、空间的复杂度,分析计算机算法具体应用在哪类问题,或者根据某类问题选择对应的计算机算法。

试验分析就是将两个计算机算法进行综合比较。数学方法可以细致地对算法进行分析,利用严密逻辑推理判断算法的优劣。但是在实施实际项目时,通常情况下,是不能进行有效论证和科学数据推断。专家们在设计计算机算法程序中,为了展示计算机算法某个性能的指标,就会配置一个能近似性表达性能的方法。怎样实现在处理同类数据时,运行时间缩短、复杂度简化是计算机算法性能的重要分析依据。

3 结语

数学方法在计算机算法中的应用,无疑带给计算机算法思想、设计、分析等多个环节的帮助和优化,同时也增强了计算机算法的严密性、可靠性。现在计算机技术不断朝着智能方向发展,但是我们仍应该坚持计算机算法与数学算法整合的思路,谋求计算机技术的进步。

[1]崔守梅,郝玲.计算机算法中的数学方法研究[J].淄博师专学报,2006(2):11-14.

[2]张邻.浅谈计算机算法中的数学方法研究[J].网络技术安全与应用,2014(12):45-47.

猜你喜欢

数学方法正整数式子
关于包含Euler函数φ(n)的一个方程的正整数解
用一样的数字
活用根表示系数巧求多参数式子的取值范围
数学方法在化学平衡学习中的重要应用
被k(2≤k≤16)整除的正整数的特征
周期数列中的常见结论及应用*
基于多种数学方法的城市宜居性评价体系
基于多种数学方法的城市宜居性评价体系
研究式子的常用工具
方程xy=yx+1的全部正整数解