Math 数学与程序设计

Math 数学与程序设计,math,resources,Math,Resources,我读了很多关于编程中的数学的博客和论坛帖子,并为自己得出了一个结论:编程需要基础数学。我不是一个好的数学家。但是,在不深入数学科学的情况下,是否有可能改进我的逻辑和算法思维呢?是否有任何练习或书籍可以帮助我提高这些技能,从而成为一名优秀的架构师 提前谢谢你。你可能对练习感兴趣 这里有一篇有趣的文章,如果你还没有看过的话,它讨论了通过维基百科学习数学: 完成 CLRS的开始有一点关于数论、离散数学、组合数学、概率论、图论和其他真正有用的东西。它只教授适用于算法的内容,而忽略了其他内容。编程的类型很

我读了很多关于编程中的数学的博客和论坛帖子,并为自己得出了一个结论:编程需要基础数学。我不是一个好的数学家。但是,在不深入数学科学的情况下,是否有可能改进我的逻辑和算法思维呢?是否有任何练习或书籍可以帮助我提高这些技能,从而成为一名优秀的架构师


提前谢谢你。

你可能对练习感兴趣

这里有一篇有趣的文章,如果你还没有看过的话,它讨论了通过维基百科学习数学:

完成


CLRS的开始有一点关于数论、离散数学、组合数学、概率论、图论和其他真正有用的东西。它只教授适用于算法的内容,而忽略了其他内容。

编程的类型很多。如果你正在设计无线压缩算法,你可能需要一个工程硕士学位。如果你正在制作一个在线颜色选择器,你会对高中三角游戏很满意。

上面的建议很好-把其中一些放在上下文中,高中数学教育改革是一个很好的选择。它可能会帮助你理解学习数学的一些挫折以及如何克服这些困难


记住——数学教育的大部分是锻炼你的抽象思维和解决问题的能力。这两种技能都需要练习,有时,尽管你可能看不到问题与所谓的“现实生活”之间的直接联系,但通过解决问题,总有一些东西需要学习和练习

在过去四十年中,计算机科学本科课程中对“离散数学”的强调已经发生了变化。过去,此类课程将涵盖抽象代数等材料,并涉及“排序”和“种类”等概念,这对程序的代数规范非常有用。如果这是你认为你会喜欢的数学,那就买一本关于离散数学的旧书,比如这本:5美元

我不相信昂贵得离谱的苏珊娜·艾普斯(Susanna Epps)这本书包含类似的材料,而且我应该知道,因为那本定价过高得可怕的书是我在大一离散数学课(2003年)上必须用到的——即使在那时,我也不敢相信它的价格已经几乎翻了一番

但是,在不深入数学科学的情况下,是否有可能改进我的逻辑和算法思维呢

但是逻辑和解决问题是数学的基础

我怀疑真正的问题在于如何教授数学,以及你(和你以前的老师)认为数学是什么。我建议,为了更好地解释什么是数学,而不是我们通常教的是数学

有没有什么练习或书籍可以帮助我提高这些技能,从而成为一名优秀的架构师

是的,其他人给了你比我更好的建议清单,但基本想法是,你可以学习更好的数学,尤其是最常见的与计算机科学和编程相关的数学

我假设你是一个软件架构师,因为传统建筑,比如工程学,在应用数学中有着坚实的基础。不管怎样,好的软件架构师需要足够自如地进行非正式的问题和算法分析,这确实需要数学基础

我通常会说,如果你能学习相当于计算机科学学位(即微积分、离散数学或线性代数)的典型大学一年级数学要求,那么你将成为一名更好的计算机科学家、更好的程序员或架构师。没有它不是不可能的,但它可以让你在工作中做得更好(更快地正确、高效地评估或解决问题)


祝你好运。

你不需要知道微积分就能编程。计算机编程由非常简单的数学运算组成,包括加法、减法、乘法、十进制舍入,甚至长除法(四年级数学很方便)

计数器非常有用;你需要知道如何从零开始计数。简单。大多数语言都是以零为基础的,这意味着从零开始,而不是从一开始。许多学习者忘记了这一点。增量和预增量(例如,
i++
++i
)在语句中使用变量之后或之前,将变量
i
增加一

逻辑运算符在编程中非常重要。“小于”和“大于”经常用于测试某个值并保持在适当的限制范围内。您需要意识到
i<5
5>i
相同,但它们的计算结果不是
true
就是
false
。这样使用时:
if(i<5).
When
i=4
,则它相当于
if(true).

同样,AND、OR和NOT运算符对于布尔测试也很重要。您可能想知道(i<5&&i>=0)是否(i<5&&i>=0).这意味着i是否小于5且i大于或等于0。不(
)和或(
|
)的行为方式类似

有些语言要求区分整数和小数(或浮点数)。整数数学使用舍入的方式对于每种语言都是不同的。随着运算变得越来越复杂,十进制数在精确度方面有不同的问题

一些高级技术涉及模运算(
%
)。所做的就是取两个数除后的余数。它有助于区分偶数和奇数(例如表中的行)

更多关于