诚然,编程离不开数学,或者可以说数学是任何科学的基础,但这不意味着在开始学习编程之前必须对数学很在行或者数学分数很高,那我们今天就来讨论下数学与编程的关系。
首先,如果想要能够进行基本的编程,哪些数学知识是必不可缺的呢?
对于基本的编程,你需要知道下面的:
加减乘除 —— 实际上,电脑会帮你作加减乘除运算。你仅需要知道什么时候运用它们。
模运算 —— 模运算是用来计算余数,它的符号通常用%百分号来表示。所以23除以7等于3,余数是2。23 mod 7 = 2。
偶数/奇数模式测试技巧 —— 如果你想知道一个数是奇数还是偶数,用它mod 2来作模运算。如果结果是0,它就是偶数。如果结果是1,就是奇数。23 mod 2等于1,所以23是奇数,24 mod 2等于0,24是偶数。
获取一个数字的百分比 —— 就是用这个数来乘以一个百分数。譬如你要得到279的54%,就是用0。54*279。这就意味着为什么1.0等于100%,0.0等于0%。
知道负数是什么 —— 负数乘以负数等于正数。负数乘以正数等于负数。就这么简单。
知道笛卡尔坐标系统 —— 在编程中,(0,0)代表屏幕左上角,Y坐标的正轴往下。
知道勾股定律 —— 因为它是用来计算笛卡尔坐标中两点之间的距离的。勾股定律a^2 + b^2 = c^2。(x1, y1)和(x2, y2)两点之间的距离等于( (x1 – x2)^2 + (y1 – y2)^2 )。
知道十进制、二进制、十六进制 —— 十进制就是我们通常用的十个数:0-9。通常认为这个十进制系统是人类发明的,因为我们有十个手指。电脑采用二进制数据,只有两个数字:0和1。这是因为我们用电子元件来构建的电脑,让电脑只识别两种状态更便宜些
总的来说,如果知道上面这些,就已经足够了,如果上面的有不太了解的,建议还是找个机会了解下。
——————————————
或许有的人认为,不同的领域需要有不同的数学知识,这肯定是对的,领域知识对于编程骑士很有用,但是其实现在有很多人已经帮我们写好了一些可以帮助调用的库。也就是说,我们并不要去理解其中深奥的知识部分,我们要的就是借助他们,会用他们。
3D游戏和3D绘图 —— 3D东西通常涉及知道三角函数和线性代数(即数学处理矩阵)。当然,有许多3D图形库可以为您实现所有这些数学编程,所以你不需要知道这些具体的数学。
2D物理学和3D物理学 —— 物理学一般和游戏引擎相关,要进行涉及物理学的编程,您需要学习一些物理方程式和公式(特别是力学)。然而,有几个物理引擎和软件库已经实现这些东西,所以你不需要知道游戏(比如愤怒的小鸟)中需要的物理公式。
加密学 —— 比如RSA算法。你需要知道质数的有关知识,以及如何求最大公约数(其实是个非常简单的算法,还有许多编程语言中都有gcd()函数,帮你求解最大公约数)。如果你想编写自己的加密方法(其实,你不应该这样做,因为已经有很多做的很好的,如果没有专业知识,你的方法可能会很容易破解),如果你只是想编写一个程序加密数据,已经有一些软件库实现了加密和解密功能了!
那其实我们涉及到专业领域的时候,并不一定需要掌握其中的数学奥秘,可能只需要学习使用库。
你需要学习的是如何建模数据和设计算法。这基本上意味着如何进行一些真实的计算或一些数据处理,并写出使计算机做的代码。
一个好的程序员需要的主要事情是:
解决问题的能力 —— 采取问题陈述,弄清楚如何将其分解为组件,如何选择适当的算法来完成工作,如何验证正确性等
逻辑思维 —— 这可以让您将解决方案转化为可维护的代码,并帮助您有效地进行调试。它还可以帮助您了解文档并找出新事物(工具,技术,系统等)
总的来说,学习编程并不需要太多的数学知识,但这并不意味着数学对于编程不重要,小伙伴们,加油吧!
你想成为一名优秀的C/C++程序员吗?如果你感兴趣或者有需求的话,笔者强烈推荐一个编程技术学习交流聚集地→私信我即可!小白和大神们正在等着你一起探讨编程,氛围超好!