程序员的 10 个数学概念

成为一名熟练程序员背后的秘密 - 数学及其前 10 个概念。

程序员的 10 个数学概念
推荐:使用NSDT编辑器快速搭建3D应用场景

随着对程序员需求的增加,供应自然会满足每天进入该行业的人。然而,这是一个竞争激烈的行业。为了不断提高自己,技能组合并增加薪水 - 您需要证明自己是一名熟练的程序员。你可以做到这一点的一种方法是学习人们通常不知道的事情。

很多人进入编程行业时都假设你不需要知道它背后的数学。虽然这在某种程度上是正确的,但能够理解编程背后的逻辑数学概念将使您成为更熟练的程序员。

这是怎么回事?通过了解你在做什么和正在发生的事情。就是这样。

因此,让我们直接进入它。程序员的十大数学概念是什么?

布尔代数

布尔代数源于代数。我想这是显而易见的。如果你是一名程序员,或者正在寻求成为一名程序员,你可能已经知道布尔值是什么。如果没有,我会快速定义它。

布尔值是一种数据类型/二进制变量,具有两个可能的值之一,例如 0(假)或 1(真)。布尔数据类型由布尔代数支持,其中变量的值称为真值,真值和假值。使用布尔代数时,可以使用三个运算符:

  • 连接或 AND 操作
  • 分离或手术
  • 否定或不操作

这些可以直观地表示为维恩图,以便您更好地了解输出。布尔代数由 6 个定律组成:

  • 交换定律
  • 结合法
  • 分配律
  • 和法律
  • 或法律
  • 反演定律

数字系统

计算机理解数字,这就是为什么它们需要一个数字系统。数字系统被称为用于表达数字的书写系统。例如,您有以下四种最常见的数字系统类型:

  1. 十进制数系统(以 10 为基数)
  2. 二进制数系统(以 2 为基数)
  3. 八进制数系统(以8为基数)
  4. 十六进制数系统(以 16 为基数)

计算机采用 2 进制数字系统,其中可能的数字是 0 和 1。Base64 还用于以字符串格式对二进制数据进行编码。

浮点

更多关于学习数字的信息,我们有浮点数。浮点是一种变量数据类型,它将实数表示为近似值。浮点数是小数点的位置可以移动或“浮动”而不是处于固定位置的数字。这允许开发人员在范围和精度之间进行权衡。

但为什么是近似值呢?计算机只有有限的空间,即 32 位(单精度)或 64 位(双精度)。64位是Python和JavaScript等编程语言的默认值。浮点数的一个示例是 1.29、87.565 和 9038724.2。它可以是带有小数点的正整数或负整数。

对数

也称为对数是一个数学概念,它使用指数的倒数来回答问题。那么为什么对数对程序员很重要> 因为它简化了复杂的数学计算。例如,1000 = 10^4 也可以写为 4 = log101000。

基数是一个数学对象,需要乘以自身。指数是一个数字,用于标识基数需要乘以自身多少次。因此,对数是一个指数,它指示必须将底数提高到什么幂才能产生给定的数字。

当日志使用基数 2 时,它是二进制对数,如果是基数 10,则它是公共对数。

集合论

集合是值的无序唯一集合,它们不需要彼此有任何关系。它们只能包含唯一项,并且不能包含同一项两次或更多次。

例如,Excel 文件或数据库包含具有一组唯一行的表。这是一种离散数学,因为这些结构可以具有有限数量的元素。集合论的目的是理解价值的集合,以及彼此之间的关系。这通常用于数据分析师、SQL 专家和数据科学家。

您可以使用以下方法执行此操作:

  • 内连接或交集 - 返回包含两个集中都存在的元素的集合
  • 外部连接或联合 - 返回两个集合中的元素
  • 全部联合 – 与外部连接运算符相同,但它将包含所有重复项。
  • 除了或减号 – A 减号 B 是包含集合 A 中不是集合 B 的元素的集合

组合数学

组合数学是计算事物以获得结果的艺术,并通过模式理解有限结构的某些性质。编程就是为了解决问题,而组合数学是我们安排对象来研究这些有限离散结构的方式。

组合公式是排列和组合的组合。

  • 排列是将集合排列成某种顺序或序列的行为
  • 组合是不考虑顺序的集合值的选择。

图论

如您所知,图形是一组值的可视化表示,这些值可以连接起来。当涉及到数据时,这些值由于变量而连接起来 - 在图论中被称为链接。

图论是对有关连接点集的边和顶点之间关系的图的研究。这使我们能够使用顶点在对象之间创建成对关系,顶点也称为由边连接的节点,称为线。图表示为一对 G(V, E),其中 V 表示有限集顶点,E 表示有限集边。

复杂性理论

复杂性理论是研究算法作为输入大小的函数运行所需的时间和内存量。有两种类型的复杂性:

  • 空间复杂度 - 算法需要运行的内存量。
  • 时间复杂度 - 算法需要运行的时间量。

越来越多的人关注时间复杂度,因为我们可以重用算法的内存。当涉及到时间复杂度时,衡量它的最佳方法是考虑算法执行的操作数量。算法是使用 if 语句和循环构建的,因此为了减少花费的时间,您希望使用具有尽可能少的 if 语句和循环的代码。

算法的复杂性理论使用 big-o 表示法来帮助描述和更好地理解算法的限制行为。它用于根据算法如何响应输入大小的变化对算法进行分类。

统计学

啊,统计。如果你想进入人工智能领域,你需要了解统计学。人工智能和机器学习是用于统计的好名字。统计编程用于解决数据繁重的问题,例如 ChatGPT。ChatGPT 的响应完全基于匹配用户提供的提示的概率。

在统计编程方面,您需要学习的不仅仅是平均值、中位数和模式。您需要了解偏差、协方差和贝叶斯定理。作为一名程序员,您将被设定任务并意识到您会问这是一个线性回归问题还是逻辑回归问题。了解两者之间的区别将帮助您确定手头的任务类型。

线性代数

你可能在学校看过线性代数——或者你可能没有。线性代数非常重要,广泛应用于计算机图形学和深度学习。为了掌握线性代数,你需要理解这三个词:

  • 标量 - 单个数值
  • 向量 - 数字列表或一维数组
  • 矩阵 - 网格或二维数组

向量可以表示 3D 空间中的点和方向,而矩阵可以表示发生在这些向量的转换。

包起来

本文为您提供了前 10 个数学概念的快速概述,这些概念将改善您的编程生涯。学习错综复杂的知识不仅会让你的日常任务更顺畅、更容易理解,而且可以向你的雇主展示你的潜力。

3D建模学习工作室 整理翻译,转载请注明出处!

NSDT场景编辑器 | NSDT 数字孪生 | GLTF在线编辑器 | 3D模型在线转换 | UnrealSynth虚幻合成数据生成器 | 3D模型自动纹理化工具
2023 power by nsdt©鄂ICP备2023000829号