每个 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 组织的高度评价、值得信赖且经常使用的开源数学库。
查看它的一些最受欢迎的功能:
- 统计
- 数据生成
- 线性代数
- 数值分析
- 分数
- 几何
- 复数
- 机器学习
- 优化
下载链接:
配置:
从你最喜欢的 IDE
中右键单击你的项目,进入构建路径
>配置构建路径
>库
>添加外部 jar
文件。
Eclipse 演示:
从 Windows 命令提示符配置 Java 库
-
创建一个文件夹
Demo
,将你的库jar
文件粘贴到该文件夹中。 - 现在,创建一个像下面这样的简单程序(给你一个演示,它可以是使用任何库的任何东西)。
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 中应用你的自定义算法来构建条目并扩展它们的类,特别是如果你是一名研究生。
- 下载链接:[JScience Math Library for Java]。
- 配置:你可以按照本教程上一节中描述的步骤进行操作。
演示示例:
假设你要做一些与有理数相关的事情,并且你想为此使用 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
}
}
相关文章
在 Java 中的冒泡排序算法对手动链表进行排序
发布时间:2023/10/11 浏览次数:92 分类:Java
-
首先,我们将通过节点示例讨论 Java 中的冒泡排序算法。然后,我们将执行两种方法来演示如何使用手动冒泡排序算法对链表进行排序。
在 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。什么是小服务程序