跳转至

J. 常用数学函数

J. 常用数学函数

更新日期:2021-01-11


1. 概述

在实际编写程序的时候,用到数学知识的地方并不多。

如下两个领域的编程会较多的使用数学知识,尤其会使用到大学数学中的知识。

  • 科学研究,大数据
    • 高等数学
    • 数学建模
  • 游戏编程
    • 矩阵运算

而编写普通程序时,高中的数学知识就已经足够了,即使没学过矩阵运算,只是使用的话也不会有什么问题。

2. 常用常量和函数

java中的Math包中提供了我们需要的常用的常量和函数,这里只选我们感兴趣的。一起来看一下。

常量只有一个:PI,就是圆周率。

下面是函数。

No. 函数 说明
1 abs 求绝对值
2 sin、cos、tan 正弦、余弦、正切函数
3 asin、acos、atan 反正弦、反余弦、反正切函数
4 max、min 最大值、最小值
5 random 生成随机数
6 pow 乘方运算

Math包中还有其他一些不是那么常用的东西,如果需要用的话再来查也不迟。

非常用主题

  • 自然指数e相关运算
  • 对数运算
  • 切上或者切下数字
  • 求平方根
  • 带有溢出判断的四则运算
  • 弧度与度数的相互转换

3. 高级运算

如果这个Math还满足不了你的话。还可以看一看Apache的commons-math包。

这个包作为Java的Math的补充,提供了大量的数学工具函数,专门解决一些棘手的问题。

都能帮我们做什么呢?这里列一下它大概的主题,让我们有一个整体的印象。当需要的时候可以再来查询。

commons-math

官方文档英文原文

  • Computing means, variances and other summary statistics for a list of numbers
  • Fitting a line to a set of data points using linear regression
  • Fitting a curve to a set of data points
  • Finding a smooth curve that passes through a collection of points (interpolation)
  • Fitting a parametric model to a set of measurements using least-squares methods
  • Solving equations involving real-valued functions (i.e. root-finding)
  • Solving systems of linear equations
  • Solving Ordinary Differential Equations
  • Minimizing multi-dimensional functions
  • Generating random numbers with more restrictions (e.g distribution, range) than what is possible using the JDK
  • Generating random samples and/or datasets that are "like" the data in an input file
  • Performing statistical significance tests
  • Miscellaneous mathematical functions such as factorials, binomial coefficients and "special functions" (e.g. gamma, beta functions)

谷歌机翻之后

  • 计算数字列表的均值,方差和其他汇总统计信息
  • 使用线性回归将一条线拟合到一组数据点
  • 将曲线拟合到一组数据点
  • 找到一条穿过点集合的平滑曲线(插值)
  • 使用最小二乘法将参数模型拟合到一组测量
  • 求解包含实数函数的方程(即求根)
  • 线性方程组的求解
  • 解常微分方程
  • 最小化多维功能
  • 与使用JDK相比,生成具有更多限制(例如分布,范围)的随机数
  • 生成与输入文件中的数据“相似”的随机样本和/或数据集
  • 进行统计显着性检验
  • 杂项数学函数,例如阶乘,二项式系数和“特殊函数”(例如,γ,β函数)