计算机函数和数学函数有哪些区别和关系?
计算机中的函数function,和数学中的函数,既有类似也有区别。
一、映射
数学中的函数,就是从输入到输出的映射,比如 y = f(x)。
计算机中的函数,有的时候是映射,比如c语言数学库里的各种函数,cos(x),sin(x)等,或者字符串处理的函数,比如计算字符串长度 strlen(s),拼接字符串 strcat(str1, str2),等等,对应输入,有一个输出。
二、动作
有的时候,计算机中的函数表示一个action的序列,比如画一条直线 draw_line(p1, p2),根据输入执行一系列动作;关闭 shutdown(),没有输入,直接执行动作。
而数学中的函数就没有这样的功能。
实际上,有的编程语言中,对这两种情况做了区分,表示映射的叫做 function,表示动作的,叫做 procedure。
两种函数都有相似的地方,就是好像一个黑箱,送人一个或几个参数,黑箱的另一端出来了某种结果。但是,数学函数只有数学结果,计算机语言的函数可能有数学以外的结果,比如某种操作。因为,这种操作也符合黑箱的模型:输入-输出。
数学上的函数纯粹数学的,它本身就是一个实体。所以,可以对数学函数进行其他加工,比如求导、积分;多函数联立;函数的函数;函数***等等。计算机函数,即使只是数学的函数,它也只有数值计算,不能当做实体然后再加工。
如果一开始,计算机函数用了另一个名字,比如暗盒,那么今天就不会有这样的疑问了,相反可能会问:计算机暗盒与生活中的暗盒有啥区别?
计算机函数和数学函数都是描述数据***之间的关系,本质上二者是一样的。只是数学函数的数据***可以是连续的无限的实数***,而计算机函数的***只能是间断的有限的有理数***。
直接对应数学函数的计算机函数比较容易理解。比如各种运算符号,数学函数等等。带有某种功能的函数则看起来跟数学函数很不一样。比如,shutdown()。之所以这些函数看起来不像是数学函数,只不过是因为您不了解它背后的数学模型而已。以shutdown()为例,它其实是输入条件和输出结果之间的映射关系。这里输入条件可以是一堆参数(自变量)的值,而输出结果也是写到开关的值(0,1)。
所有计算机函数都是若干组个数有限的数,因此可以把这些数写出来,然后,按照算法的要求做查询。这一点对于那些有连续无限个数的数值的数学函数,是很难想象的。举个例子,大多数语言中都有一个取随机函数的函数,原本觉得这个函数挺神奇的,但是,后来发现它不过是用了一个算法来描述一个随机数的***而已。于是我自己写了一个随机数的函数:先随机生成10万个数,然后顺次去取。这个方法被用到了一个自动生成随机密码的系统之中。由于不用每次都算一遍随机数,效率还是蛮高的。
国外的很多学校没有计算机科学和技术专业,取而代之的是计算工程专业,这些专业中不教编程语言,而是教很多数学建模的知识。有这样一道数学建模的习题我至今还记得:证明由直系亲属继承遗产的法律存在线程冲突的破绽。
到此,以上就是小编对于计算机考试数学技巧 的问题就介绍到这了,希望介绍关于计算机考试数学技巧 的1点解答对大家有用。