关于逻辑、数学和编程的深层次思考

众所周知,编程离不开数学和逻辑。诚然,很多程序员数学能力并不强,也没有系统的逻辑能力。但是,他们在无意识中,日常工作中,有意无意的就在使用逻辑和数学,并将它们运用于代码中。先看看下面几个例子:

我是程序员

小婷是测试工程师

小强是设计师

上面的三句话在日常生活中我们说的非常多,可能这种句子形式过于简单,所以没人去思考过他们。这三个句子都是主谓宾的形式,可以抽象为:

主体+是+职位

这就是命题,在数学中,一般把判断某一件事情的陈述句叫做命题。从上面三个命题我们可以提取共同的部分,构造成函数:

F:{我,小婷,小强} -> {程序员,测试工程师,设计师}

为了便于记号,我们用小写字母表示职员,用大写字母表示职位,上面的公式可以记作下面的形式:

F: {a, b, c} -> {A, B, C} (a, b, c ∈ 职员, A, B, C ∈ 职务)

通过上面的例子,我们从逻辑(命题)过渡到了函数。那么,在编程阶段,我们通常是怎么做的呢?我们会定义一个函数,通过调用这个函数来达到某个目的得出结果。首先,我们需要定义对象,即命题中的主语和宾语:职员、职务。参考如下:

class User{}

class Duty{}

为了表示关系,我们通常将职务定义为人员的属性:

class User{

    Duty duty;

    // getter setter

}

从上面这个例子,我们可以很容易思考出来逻辑、数学、编程三者之间的关联。逻辑用于描述事物,表达事物之间的关联关系;数学将逻辑抽象为函数,并对逻辑进行规范化公式化的定义;而编程则是将逻辑和函数用一种规范书写出来,通过输入、执行、输出来表述逻辑与函数。

如果你是程序员,那么逻辑和数学对你而言是非常重要的。要成为一个优秀的程序员,这两门学科的知识,你可能需要学习很多。

#### 欢迎关注我的公众号“java工会”,一起交流技术

    原文作者:朱潘
    原文地址: https://www.jianshu.com/p/102477741099
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞