Math 编程和数学之间的关系是什么?

Math 编程和数学之间的关系是什么?,math,Math,可能重复: 程序员似乎认为他们的工作相当数学化 当您尝试优化性能、找到最有效的算法等时,我理解这一点 但当你看到一个商店的账单应用程序,或者一个充斥着I/O调用的系统软件时,这显然是错误的 那到底是什么呢?计算和相关编程真的是数学吗 这里我特别想到哲学家叔本华的话: 数学是所有心理活动中最基本的一种,这一点可以用数学来证明 事实上,这是唯一一个可以通过 机器。例如,计算机器就是如此 目前在英国普遍使用,且仅用于 方便。但所有的分析都是有限的 基本上基于计算。因此,我们可以测量 “对数学家的深刻

可能重复:

程序员似乎认为他们的工作相当数学化

当您尝试优化性能、找到最有效的算法等时,我理解这一点

但当你看到一个商店的账单应用程序,或者一个充斥着I/O调用的系统软件时,这显然是错误的

那到底是什么呢?计算和相关编程真的是数学吗

这里我特别想到哲学家叔本华的话:

数学是所有心理活动中最基本的一种,这一点可以用数学来证明 事实上,这是唯一一个可以通过 机器。例如,计算机器就是如此 目前在英国普遍使用,且仅用于 方便。但所有的分析都是有限的 基本上基于计算。因此,我们可以测量 “对数学家的深刻理解”,利希滕贝格曾这样评价他 有趣的是,他说:“这些所谓的数学教授 利用他人的聪明才智,获得了 具有深刻的意识,这与 神学家对自身神圣性的深刻感受。”


我把上面的引语摘自。似乎程序员正在做的正是这位老大爷所鄙视的那种机械化的基础脑力活动


那么到底是什么交易呢?编程真的是一种“好”的数学吗?或者仅仅是一种更基本的数学,或者仅仅是为了商业而不是为了一门纯粹的学科?

所有编程都需要逻辑,有些编程需要数学

数学是处理程序的一小部分,逻辑是处理全部

这是相似的,但底线是肯定的。即使是计费应用程序或重IO都是数学运算。从根本上讲,我们谈论的是所有这些事情的数学计算,但更高层次的数学控制着我们在如何协调和管理所有这些操作方面所做的选择


数学不仅仅是运算。它的理论和操作也是如此。

数学不仅仅是计算

实际上,我们在编程时使用数学,因为
编程语言使用类型,但(不幸的是)我们处理
它们通常作为原始数据容器

#lang方案
;(定义Y)
;(λ(p)
(λ(f)(f))(λ(f)(p(λ(x)((f)x))))
(定义Y)
(λ(X)
((λ(f)
(X(λ(arg)((f)arg)))
(λ(f)
(X(λ(arg)((f)arg()()())))
>((Y(λ(n!))(λ(n)(如果(

程序员似乎认为他们的工作相当数学化

真的吗?都是吗?我见过很多程序员讨厌数学,说他们与数学无关


似乎程序员正在做的正是这位老大爷所鄙视的那种机械化的基础脑力活动

看起来你可能把程序员和计算机搞混了。很多编程都涉及到更高层次的数学和计算机。你构建程序的心理过程并不是那么简单

事实上,数学和编程是相似的,因为它们都处理解决问题(通常是适定问题)。有时数学家认为他们的问题更难(或更纯粹,或更优雅,或其他)。但当谈到解决方案时,程序员更关心更好的解决方案

让我给你看一个例子:假设你的问题是证明费马的最后一个定理,现在假设你是安德鲁·怀尔斯,在数学年鉴上发表了100多页长的文章,里面充满了关于半稳定椭圆曲线的漂亮图表、引理、定理和命题。基本上只有少数人能理解的材料,他们需要几个星期才能理解。不提你花了7年时间才找到解决方案。因此,从程序员的角度来看,您的解决方案很糟糕,因为它难以理解、难以调试、难以维护且不可扩展。这就是编程和数学的不同之处。所以我想说,编程就是要解决问题,并尽可能以最好的方式去做


现在如果你想知道编程是否是数学的一部分,那么我认为答案是肯定的,如果你也认为物理是数学的一部分。p> 杜普,这是一种火焰诱饵。但我真的很想听听人们说些什么。这也不是一个骗人的问题。这真的更具哲理。“似乎程序员正在做的正是这位老大爷所鄙视的那种机械化的基础脑力活动。”不。程序员正在将非基础“脑力活动”翻译成机械术语,以便“通过机器完成”这些机器不是从日本进口的:它们必须被制造出来。这些机器被称为程序,程序员是构建它们的人。另一方面,我同意程序员没有使用太多的数学来完成这个构建任务:逻辑和业务知识发挥了更大的作用。这个问题似乎没有具体的正确答案,所以作为社区维基可能会更好。
#lang scheme

;(define Y
;  (λ(p)
;    ( (λ(f)(f f)) (λ(f)(p (λ(x)((f f) x)))) )))

(define Y
  (λ(X)
    ((λ(f)
       (X (λ(arg) ((f f) arg))))
     (λ(f)
       (X (λ(arg) ((f f) arg)))))))

> ((Y (λ (n!)(λ (n)  (if (< n 2) 1 (* n (n! (- n 1))))))) 5)
120
>