迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Java >

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

作者:迹忆客 最近更新:2023/10/10 浏览次数:

除了 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
}

	}

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Java 中将列表转换为 map

发布时间:2023/10/11 浏览次数:149 分类:Java

本教程介绍如何在 Java 中将列表转换为 mapList 允许维护有序的对象集合。Map 对象将键映射到值。在 Java 中,有几种方法可以将对象的 List 转换为 Map。在本文中,我们将学习其中的一些。

在 Java 中按字母顺序对列表进行排序

发布时间:2023/10/11 浏览次数:80 分类:Java

本文介绍如何在 Java 中按字母顺序对列表进行排序。本教程介绍如何在 Java 中按字母顺序对元素列表进行排序。List 是一种线性数据类型,用于在 Java 中存储类似类型的元素。

Java 中的未经检查的强制转换

发布时间:2023/10/11 浏览次数:50 分类:Java

这篇文章解释了 Java 中的 unchecked cast 警告。Java 是一种强制类型安全的编程语言,这意味着我们应该始终指定我们将要存储或使用的数据类型,并且不能在其中存储不兼容的类型。

如何在 Java 中检查变量的类型

发布时间:2023/10/11 浏览次数:154 分类:Java

本文介绍了 Java 中检查变量类型的方法。在Java中,了解变量或对象的类型对于编写高效且灵活的代码至关重要。

在 Java 中使用后缀 F

发布时间:2023/10/11 浏览次数:136 分类:Java

本教程演示了在 Java 中使用带有数值的 f 后缀。Java 中的十进制值默认是 double 值。当我们只需要浮点值时,我们必须告诉编译器它是一个浮点值。

Java 中的 transient 关键字

发布时间:2023/10/11 浏览次数:166 分类:Java

本文介绍了 Java 中什么是 transient 关键字。本文介绍了 transient 关键字是什么以及如何在 Java 应用程序中使用它。Transient 是 Java 中的一个关键字,用于将变量标记为不可序列化。

Java 中的 Servlet

发布时间:2023/10/11 浏览次数:88 分类:Java

本文介绍了 Java 中的 servlet 技术。本文介绍了 servlet 是什么以及如何在 Java 中创建 servlet。什么是小服务程序

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便