每个 Java 开发人员都应该知道的最佳数学库

Sarwan Soomro 2023年1月30日 2022年4月27日
  1. 在 Java 中使用数学库的范围
  2. Java 中的 Apache Commons 数学库
  3. 从 Windows 命令提示符配置 Java 库
  4. Java 的 JScience 库
每个 Java 开发人员都应该知道的最佳数学库

除了 Java 的数学库之外,你还可以扩展强大的数学库以在 Java 项目中实现高级数学任务。

为了使本教程保持准确,我们将记录两个用于 Java 高级数学项目的知名库的配置。我们还将使用 Apache Commons Math 运行两个程序。

我们将使用 CMD 和 IDE 来实现和运行我们的程序。

在 Java 中使用数学库的范围

毫无疑问,我们的大部分任务都可以有效地关注 Java 的数学库。而且我们大多数人都不想下载 jar 文件并将它们添加为库来执行可以使用 Java 本身完成的操作。

好吧,并不是每个人都是 Java 书呆子。有些是初学者。

其他人则将技术转换为研究问题陈述,这些问题可以像有理数一样简单,也可以像机器学习、深度学习、遗传算法一样复杂,仅举几例。

在这两种情况下,使用库都不是问题。它将使你了解开发人员如何构建这些类来解决我们的问题。

Java 开发人员应该知道的一些可靠的数学库。

库名称 下载链接 开源
Apache Commons [Apache 下载存储库]
JScience http://jscience.org/
Parallel Colt [资源下载]
Colt [下载 ]
Google Guava [可用的]
注意
还有很多其他的库。我们根据它们的在线受欢迎程度将它们包括在内。

Java 中的 Apache Commons 数学库

它是来自著名 Apache 组织的高度评价、值得信赖且经常使用的开源数学库。

查看它的一些最受欢迎的功能:

  1. 统计
  2. 数据生成
  3. 线性代数
  4. 数值分析
  5. 分数
  6. 几何
  7. 复数
  8. 机器学习
  9. 优化

下载链接:

Apache Common 数学库

配置:

从你最喜欢的 IDE 中右键单击你的项目,进入构建路径 >配置构建路径>>添加外部 jar 文件。

Eclipse 演示:

如何在 eclipse 中配置库

从 Windows 命令提示符配置 Java 库

  1. 创建一个文件夹 Demo,将你的库 jar 文件粘贴到该文件夹​​中。
  2. 现在,创建一个像下面这样的简单程序(给你一个演示,它可以是使用任何库的任何东西)。
	import org.apache.commons.math3.fraction.Fraction;
	public class Demo {

		public static void main(String[] args) {
			/*
			 * double[] n = { 1.1, 1.2, 1.3, 1.4, 2.1, 2.2, -2.35, 100.09 };
			 *
			 * for (double d : n) System.out.printf("12 : 445", d, new BigFraction(d,
			 * 0.00000002D, 10000));
			 */

			//In Java, assuming I have a double variable called decimal with the assigned value of 0.333,
			//how would I display this as a "proper", formatted fraction -
			//with the numerator over the denominator separated with a straight line (instead of simply displaying 1/3)?
			Fraction a = new Fraction(1, 10);
			Fraction b = new Fraction(0.99);
			System.out.println("Result:" + " " + a.add(b));
		   // I need to add up a series of fractions, e.g. 1/2 + 1/3 + 1/4 + ..., and return a double. How can I avoid or minimize the round off error?
	//
	//        An alternative if you want to preserve accuracy,
	//        and don't want to rely on the precision settings of BigDecimal, is to use the Apache Fractions library:

			Fraction grf1 = Fraction.getReducedFraction(1, 2);
			grf1 = grf1.add(Fraction.getReducedFraction(1, 2));
			grf1 = grf1.add(Fraction.getReducedFraction(1, 3));
			System.out.println(grf1);
			System.out.println(grf1.doubleValue());
		}
	}
	```

3. 在 Windows 中打开命令提示符
4. 编译它:`javac -cp "commons-math3-3.6.1.jar" Demo.java`。
5. 运行它:`java -cp ".;commons-math3-3.6.1.jar" Demo`。

	输出

	```text
	Result: 109 / 100
	4 / 3
	1.3333333333333333
	```

如果你有任何困惑我们也创建了一个演示 gif

![从 Windows 中的命令行界面 shell 配置和运行你的库程序](</img/Java/configure and run your library program from command line interface shell in windows.gif>)

## Apache Commons 演示数学程序

以下代码块将在定义的范围内创建随机数和字符串你可以使用 Apache Commons 使用字母和数字来创建算法

它使用:`apache import org.apache.commons.lang3.RandomStringUtils;` `commons-lang3-3.12.0` `jar` 文件也附加在 zip 文件夹中)。

<!--adsense-->

代码

```java
/*Basic level random string and random numeric value generator in the given range.abstract
Note this is for the demonstration of how to use a particular library*/
import org.apache.commons.lang3.RandomStringUtils;

public class BestJavaMathLibrary {
	public static void main(String[] args) {

		String rn1 = RandomStringUtils.randomNumeric(50);
		System.out.println(rn1);
		String rs1 = RandomStringUtils.randomAlphabetic(50);

		System.out.println(rs1);
	}

}

输出:

80511636875416144724783964293309510956685562561281
sXSlFJCVOxeaAhVAdEITZfynFdatqdvtAQPJVSrVTHlxZrjPYZ

Java 的 JScience 库

对于一些 Java 高级任务,它是另一个可靠的数学库。该库为有理数、多项式有理数和向量有理数提供了极好的支持。

你还可以通过在 Java 中应用你的自定义算法来构建条目并扩展它们的类,特别是如果你是一名研究生。

  1. 下载链接:[JScience Math Library for Java]。
  2. 配置:你可以按照本教程上一节中描述的步骤进行操作。

演示示例:

假设你要做一些与有理数相关的事情,并且你想为此使用 JScience 类。

代码:

import java.util.Collection;

import org.jscience.mathematics.number.LargeInteger;
import org.jscience.mathematics.number.Rational;

public class JScienceDemo {
public static void main (String[] args) {

	//your code here
}

	}
注意
我们还在本教程的主目录中附加了每个库的所有文件。
Sarwan Soomro avatar Sarwan Soomro avatar

Sarwan Soomro is a freelance software engineer and an expert technical writer who loves writing and coding. He has 5 years of web development and 3 years of professional writing experience, and an MSs in computer science. In addition, he has numerous professional qualifications in the cloud, database, desktop, and online technologies. And has developed multi-technology programming guides for beginners and published many tech articles.

LinkedIn

相关文章 - Java Library