`
clamp
  • 浏览: 94006 次
社区版块
存档分类
最新评论

数学和软件

阅读更多
数学和软件

在我个人的软件开发过程中,自认为得益于数学基础训练较多,但具体有何联系,又感觉说不太明白。
正好论坛中有人提及,借此机会整理一下自己的思路,和大家共享。


  用户说:金额大于50万的合同,需要部门经理审批,金额大于100万的合同,需要总经理审批。
  用数学语言表述,可以相当于这样一个函数
处理流程=F(合同金额),根据合同金额的差异进行不同的处理

  一般情况下,合同金额可以视为一个自然数集合(从1到无穷),很明显的,<大于50万>和<大于100万>不是这个自然数集合的完备划分。
  第一:这两个集合有交叉,大于50万的集合显然包括大于100万的集合
  第二:这两个集合不能覆盖整个自然数集合,也就是有漏洞

  所以,需要给出一个互不冲突的完整划分,使其覆盖整个问题集合。
 
  在本例中,[1,500000),[500000,1000000),[1000000,无穷)就是这样的一个互不冲突的完整划分。
 
  由于软件实现的限制,事实上不可能对无穷大的数进行处理,因此需要确定该数的上限,以便于软件实现。
  而且无论是int、long还是其他的数据类型,其范围总是不能和用户所需求的数的范围完全一致。例如是否允许输入负的合同金额?如果不允许,该限制应当由哪部分程序负责?

   所有的数学函数都是必须定义变量所在的范围的
   y=f(x),x∈N,X>=1,
   y=g(x),x为实数,X<>0
   ……


要点一:输入参数必须定义其所在范围,并且确保所有输入参数的可能性都可以被处理(包括正常处理和异常处理)。


分享到:
评论
33 楼 blackanger 2007-06-01  
对我们一般程序员来讲,如果将两者结合起来,是有相当难度的。不但要掌大量高等数学知识,还要能够熟练应用――这么高的门槛,绝非一朝一夕之功,这一下子就挡住了许多人的进入。我对数学虽然感兴趣,也只是门外汉,掌握数学所付出的努力,要比学会几门编程语言要高得多。象我这种为生存而奋斗的人,可能只有想想的份,哪有勇气拿出大段时间再读数学呢。
32 楼 cookoo 2007-06-01  
我觉得软件开发有个三个主要问题:做什么;怎么做;为什么这么做。数学有助于后两个问题,重要性不言而喻。不过数学和第一个问题没什么太大关系。计算机科学不是应用数学,我们每开辟一个学科领域是为了解决某个层面的具体问题,所以不能假设生物学是应用化学,化学是应用物理学,物理学是应用数学,所以数学就能解决一切问题。
31 楼 cookoo 2007-06-01  
hurricane1026 写道
庄表伟 写道
数学<>逻辑学

软件开发,更重要的,是逻辑能力,而非数学能力。

数学不等于逻辑学。但是数学能力中包含逻辑能力,锻炼逻辑能力最好的方法也是学数学。。

逻辑分形式逻辑和非形式逻辑两类,一般说的数学能力锻炼逻辑能力仅指形式逻辑能力。而非形式逻辑能力如辩论,说服,谈判,反驳需要理科之外的学习和训练。很遗憾,国内的基础教育中非形式逻辑训练非常匮乏,幸好还有GRE,GMAT的逻辑考试。
30 楼 blackanger 2007-05-31  
我的理解是:
数学好的人,可以把软件用纯数学的语言来描述,这种方式也许只能数学水平相当的两个人才能交流吧;
数学不好的人,可以用他惯用的描述语言来描述软件,比如UML!



29 楼 firebody 2007-03-24  
现在项目性质的实现 反映到 代码里面,大多其实还是逻辑性质的代码,数学知识还真体现不出来.<br/>
<br/>
然而, 在上一个层次,比如性能调优,做一些基础架构性质的东西. 没有这些一定的数学背景还真是 " 举足不前" 了 .<br/>
<br/>
所以,要做好软件开发, 没有数学光有逻辑能力还是不行的, 我就大概属于这类人,很多时候,还得回去翻看书籍,没有那种 灵光一闪的能力, 在更高层次的设计方面,这个能力足以让你 "相形见绌" 了.
28 楼 Trustno1 2007-03-24  
http://sevenofnine.group.iteye.com/group/post/3578
27 楼 lordhong 2007-03-24  
见过一些大牛...什么物理系,数学系的博士...学起电脑编程那个顺手啊...短短2个星期活学活用的程序比我学了2年编程的都要弓虽N倍...
26 楼 抛出异常的爱 2007-03-23  
如果脑子里只想到了(M*N)都不好意思合人打招呼......

PS:由于不是科班出身
大学只学复变,线代,立体几何之类的东西....
25 楼 抛出异常的爱 2007-03-23  
hurricane1026 写道
抛出异常的爱 写道
数学本来也是逻辑学
不过有很多人卖弄前人的智慧
当作自己很有智慧
其实那叫学识而非智慧

PS:学数学快的人逻辑清楚是共识,
但没学过数学的人逻辑不见得不清楚.

有道理的紧。学数学主要是一种锻炼逻辑的好办法。而且逻辑好的人如果没有特殊原因,都学过数学了。毕竟基础教育还没有那么稀缺。
看过很多面试题都考算法
但是算法这东西有上千种
非要把前人智慧都背下来
才能成为好的程序员么?
能用的上的算法一共有多少种
有多少种是非要写到代码中的?
24 楼 抛出异常的爱 2007-03-23  
数学本来也是逻辑学
不过有很多人卖弄前人的智慧
当作自己很有智慧
其实那叫学识而非智慧

PS:学数学快的人逻辑清楚是共识,
但没学过数学的人逻辑不见得不清楚.
23 楼 NightTree 2007-03-23  
庄表伟 写道
数学<>逻辑学

软件开发,更重要的,是逻辑能力,而非数学能力。


看到老庄这句,心里舒坦多了
22 楼 catail 2007-03-23  
hurricane1026 写道
我的感觉是整个软件就是数学模型的映射。软件就是数学。。。


哲学认识世界、数学描述世界、程序再现世界

偶这么觉得
21 楼 billgui 2007-03-22  
呵呵,不同角度,侧重点也有所不同。

这两天在看Haskell语言,一种函数型语言。脑子里总在想,怎样用它去解决实际问题,怎样把实际问题化为一个个函数。也许这就是数学建模过程吧。
20 楼 庄表伟 2007-03-22  
数学<>逻辑学

软件开发,更重要的,是逻辑能力,而非数学能力。
19 楼 duprf 2007-03-22  
hurricane1026 写道
Liam 写道
又是数学~~写程序我喜欢,学数学我不喜欢~

数学不好,程序不会好到如何。。。。偶像说了。。。
对啊,数学好,证明逻辑思维强,而程序也是靠逻辑能力
18 楼 珂儿 2007-03-22  
N年以前计算机只是数学的一个分支,只是后来才独立出来,计算机稍微深一些的知识都离不开数学,像最近炒得很热的并行处理技术等...
什么时候若能和麻省理工、伯克利、普林斯顿等学校的计算机专业或数学专业的博士做同事就好了...^_^
从同学那里拿了一本数学模型,可每每翻起,N多的公式看得自己头晕眼花,所以大多时候此书只是一摆设。
我想学数学模型,想学数学分析,还想学混沌数学....可是时间从哪里来呢?:(
我一直很佩服那些数学公式从来不用记,用的时候直接推导的牛人...线代、离散、概率基础还可以,高数特别是高数下册,是我心中的痛,物理加高数的综合题,更是痛上加痛....
17 楼 yeshucheng 2007-03-22  
实在没办法读书太少看不明白LZ表达的意思

是否就是传说中的:抽象到具体再到抽象?
16 楼 simohayha 2007-03-22  
计算机的数学模型就是 图灵机.
15 楼 Liam 2007-03-22  
又是数学~~写程序我喜欢,学数学我不喜欢~
14 楼 linyuran 2007-03-22  
dovecat 写道
一直在继续华丽的跑题...
LZ,如果说我想学学数学分析之类的,比如我想知道为什么公式就是这个样子,怎么来的.有什么书可以看哈?

简单
先去买几本数学分析啃啃再说
唉。。。。。
想当初me整个大学就是浪费在数分的海洋中啊
可惜学的不咋地

相关推荐

    数学软件 matlab软件

    数学软件 matlab软件数学软件 matlab软件数学软件 matlab软件数学软件 matlab软件数学软件 matlab软件数学软件 matlab软件数学软件 matlab软件数学软件 matlab软件数学软件 matlab软件数学软件 matlab软件数学软件 ...

    C++\Java\VC软件数学

    描述中的"Good for mathematical software"进一步确认了这一点,暗示了这些文件可能包含了用于构建数学软件的代码示例、算法解析、教程或者习题解答。 标签"软件 数学"提示我们,这个压缩包可能涵盖了数学在软件...

    数学建模安装软件

    数学建模安装软件,一种开发编程简单数学建模软件数学建模安装软件,一种开发编程简单数学建模软件数学建模安装软件,一种开发编程单数学建模软件数学建模安装软件,一种开发数学建模安装软件,一种开发编程简单数学...

    数学作图软件绿色中文版

    数学作图软件的出现,极大地提升了我们分析和理解数学问题的效率。这款名为“数学函数图像作图器”的绿色中文版软件,正是为满足这一需求而设计的。它以其易用性、强大的功能和本土化的界面,深受广大数学爱好者和...

    数学模型软件,很有用的

    随着科技的不断发展和信息化水平的日益提高,数学模型软件在科学研究和工程实践中的作用愈发凸显。这类软件不仅为专业领域人员提供了一个强大的工具箱,而且为非专业人士提供了一种途径,使得他们可以通过简单易懂的...

    数学软件选讲,简明地介绍了目前三大数学软件

    【数学软件选讲】主要涵盖了三个主流的数学软件——Mathematica、Matlab和SAS。本文将重点解析Mathematica的基本使用和编程语言特性。 Mathematica是一款强大的数学计算和图形处理工具,它不仅拥有丰富的数学函数库...

    实用数学软件_6.1

    总的来说,"实用数学软件_6.1"是一款集计算和绘图于一体的数学工具,它通过便捷的计算功能和直观的图形展示,提升了数学教学和研究的效率,是教育工作者不可或缺的辅助工具。通过深入理解和熟练使用这款软件,教师们...

    离散数学(软件工程)

    离散数学是计算机科学与软件工程领域的基础课程,它涵盖了逻辑、集合论、图论、组合数学、数理逻辑等多个重要分支。对于软件工程师来说,理解...深入学习和掌握离散数学,将为软件设计、开发和维护奠定坚实的理论基础。

    好用简明的数学表达式软件

    标题中的“好用简明的数学表达式软件”指的是一个专为解决数学问题设计的应用程序,这类软件通常具有用户友好的界面和强大的计算能力。它能够帮助用户输入、编辑和求解各种数学表达式,无论是基础的算术运算还是复杂...

    软件开发与数学证明(软件工程)

    2. **形式化方法**:在软件开发中引入数学证明,意味着可以采用更加精确的形式化方法来描述和验证软件行为。这种形式化的方法能够帮助开发者更准确地理解需求,并在此基础上设计出符合要求的系统。 3. **验证与确认...

    数学在软件领域知识创新中的作用

    标题中的“数学在软件领域知识创新中的作用”指的是数学在软件开发、设计和优化过程中的核心地位和贡献。数学作为基础科学,对于理解和解决软件工程中的复杂问题具有至关重要的作用,尤其是在推动技术创新方面。 ...

    实用数学软件 5.6

    实用数学软件不仅仅仅是一款简单强大的数学计算软件,它包含了大家从初中到大学几乎所有的数学函数、平面解析几何、重要公式等以及他们的相关图像,而且也是工程测量数理统计等部门的最佳辅助运算工具,十几种统计...

    Maple数学软件教程

    总之,Maple数学软件教程将涵盖软件的基本操作、符号计算、数值计算、可视化、数学建模等多个主题,通过实例讲解和练习,帮助用户从入门到精通,全面掌握这款强大的数学工具。无论你是科研工作者、教师还是学生,都...

    数学几何绘图软件

    数学几何绘图软件以其强大的功能和易用性,在数学教学领域扮演着重要角色。无论是对于教师还是学生而言,它都是一款不可或缺的教学辅助工具。通过运用这款软件,不仅能够提高课堂教学效果,还能激发学生的学习兴趣,...

    数学学习软件 数学欢乐园

    结合幼儿的身心特点和认知发展规律,游戏中的相关数学知识均与儿童的日常生活密切相关。 每个光盘由20个益智游戏组合而成,每个游戏相对应一个教学知识点,形式多样,有拼图、翻牌配对、分饺子、接瓶盖、排排队、比...

    小学数学教学辅助软件

    小学数学教学辅助软件是一款基于Java技术开发的教育应用,旨在帮助小学低年级的学生进行一位数和两位数的加减运算以及混合运算的练习和测试。这个软件的设计充分考虑了儿童的学习特点,通过互动的方式激发孩子们对...

    赵彤常用数学软件选讲课件

    在数学研究和教学过程中,各种数学软件扮演着不可或缺的角色,它们极大地提高了工作效率,简化了复杂的计算过程。 【描述】中的"数学软件选讲课件ppt"暗示这是一个关于介绍和比较不同数学软件的讲座材料,可能涉及...

    2020-2021某大学《数学软件与数学实验》期末课程考试试卷B(含答案).docx

    《数学软件与数学实验》是一门融合了数学理论与计算机实践的课程,旨在培养学生的计算思维和解决实际问题的能力。本课程的期末考试试卷B主要考察了学生对数学软件的运用以及数学实验中的基本概念和技能。以下是试卷...

    MATLAB数学软件全解

    总的来说,MATLAB作为一款强大的数学软件,对于提升数学建模能力,促进学术交流,推动科技创新具有显著价值。在2010年全国大学生数学建模竞赛中,MATLAB无疑为参赛者提供了有力的技术支持,也帮助他们更好地体验到了...

    数学建模基础和有关软件用法

    - **简介**:Mathematica是一款综合性的数学软件,能够进行符号计算、数值计算以及数据可视化等工作。 - **主要特点**:除了强大的数学计算功能外,Mathematica还支持编程和文档编写,便于用户创建完整的解决方案...

Global site tag (gtag.js) - Google Analytics