Questions tagged «math»

编程问题受到问题的基础数学的影响最大或定义得最好。

4
算法入门(CLRS)书的必备数学技能
我已经对基本算法有所了解。现在,我计划研究更多高级算法,并决定继续学习“算法简介”。 我不确定,在读这本书之前我是否需要提高数学技能?(我几乎忘记了我在高中和大学学习的数学)如果这本书需要强大的数学知识,请提出一些有益的学科。 我想学习算法的实现,设计和分析。


11
编程语言如何有效地评估基础数学?
随着我越来越多地参与编程背后的理论,我发现自己对看似简单的事物着迷并感到困惑。 问:这是如何运作的? 答:因为有! 我讨厌这种认识!我喜欢知识,最重要的是我喜欢学习,这使我想到了我的问题(尽管这是一个广泛的问题)。 题: 如何用编程语言评估基本数学运算符? 当前的方法如何改进? 例 var = 5 * 5; 我的解释: $num1 = 5; $num2 = 5; $num3 = 0; while ($num2 > 0) { $num3 = $num3 + $num1; $num2 = $num2 - 1; } echo $num3; 这似乎效率很低。对于较高的因子,此方法非常慢,而内置方法的标准是瞬时的。如何在不迭代加法的情况下模拟乘法? var = 5 / 5; 怎么做到的?我想不出一种从字面上将其5分成5个相等部分的方法。 var = …
22 math  evaluation 

7
大型的基于Fortran的数字处理代码库如何现代化?
一个学术界的朋友向我征求意见(我是C#业务应用程序开发人员)。 他拥有一个遗留代码库,他在Fortran中编写了医学成像领域的代码。它使用向量进行大量的数字运算。他使用一个集群(30个核心),现在已转向拥有500个GPU的单个工作站。 但是,代码库的下一步是什么: 其他人可以在下一个10年周期内对其进行维护 更快地调整软件 可以在不同的基础架构上运行而无需重新编译 经过我的研究(这是一个非常有趣的领域),一些选择是: 使用Python和CUDA来自Nvidia的 用功能语言重写。例如,F#或Haskell 基于云并使用诸如Hadoop和Java之类的工具 学习C 您对此有何经验?我的朋友应该如何看待现代化的代码库? 更新:感谢@Mark和所有回答的人。我的朋友问这个问题的原因是,这是在项目生命周期中进行评估的最佳时机。在Fortran中提高研究助手的速度是需要时间的(我喜欢C#,尤其是工具,无法想象回到旧的语言!!) 我喜欢将纯数字格式保留在Fortran中的建议,但将其包装在较新的版本中。也许那样的Python似乎在学术界占有一席之地,这是一种相当容易掌握的通用编程语言。 请参阅Medical Imaging和为CUDA编写Fortran包装器的人,我可以将我的Fortran 90包装器合法发布到Nvidias的CUFFT库(来自CUDA SDK)吗?。
21 math  legacy  fortran 


4
为什么所有的函数式编程教程都这么数学?
我一直在尝试学习函数式编程,而我发现的大多数教程都将数学作为更复杂的结构(在某些情况下甚至是简单的结构)的示例。为什么是这样?我想可以使用更简单的方法。这使得它很难学习。 背景信息:我已经编写软件已有12年了。我了解一些概念,例如闭包,作为一等公民的功能和泛型。在某些高级水平上,我可能对高阶函数有疑问,但是我想相信我已经掌握了基本知识。Monads在咬我,这时我还没有超越(我敢肯定,最终,因为我坚持不懈)。

6
编程语言中一等/二等/三等值的数学基础是什么?
添加 刚发现两个相关问题 /math//q/1759680/1281 /programming//a/2582804/156458 在编程语言中,来自Michael Scott的Programming Language Pragmatics 通常,如果编程语言中的值可以作为参数传递,从子例程返回或分配给变量,则称其具有 第一类状态。在大多数编程语言中,简单类型(例如整数和字符)是第一类的值。相比之下,“第二类”值可以作为参数传递,但不能从子例程返回或分配给变量,并且“第三类”值甚至不能作为参数传递。 标签是大多数编程语言中的三等值,但在Algol中是二等值。子例程显示最多的变化。它们是所有函数式编程语言和大多数脚本语言中的一流值。它们也是C#中的第一类值,并且在某些限制下,在其他几种命令性语言中(包括Fortran,Modula-2和-3,Ada 95,C和C ++),也是第一类值。11在大多数其他命令式语言中,它们是二等值,在Ada 83中是三等值。 编程语言中一等/二等/三等值的数学基础是什么? 该术语使我想起了一阶/二阶逻辑,但是它们有关系吗? 在我看来,它们之间的区别在于可以使用哪种特定情况下的值 作为参数传递, 从子例程返回,或者 分配给变量。 为什么特定案例很重要,而其他案例没有提到? 谢谢。

4
用代码记录数学逻辑
有时,尽管不是经常,但我必须在代码中包含数学逻辑。所使用的概念大多非常简单,但是生成的代码却不是-许多目的不明确的变量,以及某些意图不那么明显的操作。我的意思并不是说代码不可读或不可维护的,只是它的waaaay难度比实际的数学题理解。我尝试评论最难理解的部分,但存在与仅对其进行编码相同的问题- 文本不具有数学的表达能力。 我正在寻找一种更有效且易于理解的方式来解释某些复杂代码(最好是代码本身)背后的逻辑。我考虑过TeX-编写文档并将其与代码分开生成。但是然后我必须学习TeX,并且文档本身也不会包含在代码中。我想到的另一件事是对写在纸/白板上的数学符号,方程式和图表进行拍照,并将其包含在javadoc中。 有没有更简单明了的方法? PS给变量赋予描述性名称(timeOfFirstEvent而不是t1)实际上会使代码更冗长,甚至更难阅读。

17
编程需要了解哪些良好的数学公式?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 您学到了哪些通用数学公式,这些公式可以帮助您编写更好的算法并成为更好的程序员? 示例:我了解了ecludian距离公式:sqrt((x1-x2)^2+(y1-y2)^2)通过比较两个因素,它帮助我了解了如何找到相似的物体。

1
Math.min为什么要使用一个元素数组
根据MDN, Math.min仅接受数字,并且如果参数之一不是数字,则将返回NaN。的确,如果我们传递一个包含多个数字的数组,则会得到NaN如下所示:Math.min([1,2])但是,如果我们使用一个仅包含一个数字的数组,Math.min则会返回该数组中的数字,如本例所示:Math.min([5])。有谁知道为什么我们会看到这种未记录的行为?
17 javascript  math 

4
为什么mod(%)是许多编程语言中的基本数学运算符?
有某种历史原因或其他原因,为什么模数运算符是一小套标准运算符的一部分,而这似乎是许多语言的一部分呢?(+, -, *, /和%,对于Java和C,以及**在Ruby和Python中的)。 将mod包含为“基本的”似乎很奇怪(不要敲它,我经常使用它,但是我也使用幂运算,绝对值,下限/上限或其他-它们似乎同样有用且必要)。这是某个规范中做出的一个旧决定,即遵循Java,C,Ruby和Python还是它们都衍生自某种语言?据我所知,大多数Lisp方言仅包括+, -, /和*。 刚开始,我想知道mod是否在二进制级别上特别容易实现(关于决定什么是“基本”运算符,什么不应该?)甚至会有所作为),但似乎并非如此。它只是比我想的更常用于编程中吗?

1
使用百分号(%)表示模数/余数是使用哪种编程语言生成的?
使用百分号(%)表示模数/余数是使用哪种编程语言生成的? 上一篇文章1解释了选择%符号的原因,因为它包含一个斜线,对于与除法相关的运算很巧妙。它还提到了C使用符号的影响。但是,我不确定它起源于C。B编程语言是C的前身,我发现B的用户指南(PDF,第12页)指出: 运算符%表示模。如果两个操作数均为正,则结果正确。否则未定义。 该用户指南的日期为1972年,大约是C出现的时间。从理论上讲,这仍然可能起源于C,但是后来又移植到B。在表示使用%符号之前,我还无法找到其他语言的规范。 我认为对这个问题不是重复的:有人问为什么取模运算是基本的,我问的是该符号何时特别是表示取模。

7
如何提高C#,Java和类似语言中面向数学的代码的可读性?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 作为C程序员和C#程序员,我不喜欢C#的一件事就是数学函数的详细程度。例如,每次您必须使用正弦,余弦或幂函数时,都必须在Math静态类之前。当方程本身非常简单时,这将导致代码很长。如果您需要强制转换数据类型,则问题将变得更加严重。因此,我认为可读性受到影响。例如: double x = -Math.Cos(X) * Math.Sin(Z) + Math.Sin(X) * Math.Sin(Y) * Math.Cos(Z); 相对于简单 double x = -cos(X) * sin(Z) + sin(X) * sin(Y) * cos(Z); 在其他语言(如Java)中也是如此。 我不确定这个问题是否真的有解决方案,但是我想知道C#或Java程序员是否使用任何技巧来提高Math代码的可读性。但是我意识到C#/ Java / etc。不是像MATLAB之类的面向数学的语言,所以这很有意义。但是有时候,人们仍然需要编写数学代码,如果可以使其更具可读性,那就太好了。
16 java  c#  math  readability 

4
用一种无法处理的语言处理大量数字?
我正在尝试思考如果语言构造无法处理大于某个特定值的数字时,我将如何对极大的数字进行计算(无穷大-整数不浮点数)。 我确定我不是第一个也不是最后一个问这个问题的人,但是我使用的搜索字词并未给我提供处理这些情况的算法。相反,大多数建议都会提供语言更改或变量更改,或谈论似乎与我的搜索无关的事情。所以我需要一些指导。 我会勾勒出这样的算法: 确定该语言的整数变量的最大长度。 如果数字大于变量最大长度的一半,则将其拆分为数组。(给一点游戏室) 数组顺序[0] =最右边的数字[n-max] =最左边的数字 例如 编号:29392023 Array [0]:23,Array [1]:20,array [2]:39,array [3]:29 由于我将变量的长度的一半确定为标记的起点,因此我可以计算出它们的十分之一,十分之一,百分之一等。通过中途标记进行放置,这样,如果可变的最大长度为0到9999999999之间的10位数字,那么我知道减半到五位数给我一些游戏空间。 因此,如果我加或乘,我可以使用一个变量检查​​器函数,该函数可以看到array [0]的第六个数字(从右)与array [1]的第一个数字(从右)在同一位置。 除法和减法都有自己的问题,我还没有考虑过。 我想知道支持比程序更大数量的最佳实现。

2
试图了解2N lnN与Quicksort的比较
我正在对Sedgewick的Algorithms一书中的quicksort进行分析。他为quicksort中的比较数创建了以下递归关系,同时对N个不同项目的数组进行了排序。 我很难理解这一点...我知道任何元素成为枢轴都需要1 / N的概率,并且如果k成为枢轴,那么左子数组将具有k-1个元素,而右子数组数组将包含Nk个元素。 1.分区成本如何变为N + 1?做分区需要N + 1比较吗? 2.Sedgewick说,对于k的每个值,如果将它们相加,则划分元素为k的概率+两个子数组的成本,您将得到上述方程式。 有人可以解释一下,以便那些数学知识(我)较少的人可以理解吗? 具体来说,您如何获得方程式中的第二项? 这个词到底代表什么?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.