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

作者: 朱潘 | 来源:发表于2018-11-05 23:20 被阅读42次

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

    我是程序员

    小婷是测试工程师

    小强是设计师

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

    主体+是+职位

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

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

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

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

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

    class User{}

    class Duty{}

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

    class User{

        Duty duty;

        // getter setter

    }

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

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

    相关文章

      网友评论

        本文标题:关于逻辑、数学和编程的深层次思考

        本文链接:https://www.haomeiwen.com/subject/zjzexqtx.html