每个 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。

## 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/12/17 浏览次数:217 分类:Java
-
本篇文章主要介绍如何在 Java 中制造程序延迟。本教程介绍了如何在 Java 中制造程序延时,并列举了一些示例代码来了解它。
如何在 Java 中把 Hashmap 转换为 JSON 对象
发布时间:2023/12/17 浏览次数:187 分类:Java
-
它描述了允许我们将哈希图转换为简单的 JSON 对象的方法。本文介绍了在 Java 中把 Hashmap 转换为 JSON 对象的方法。我们将看到关于创建一个 hashmap,然后将其转换为 JSON 对象的详细例子。
如何在 Java 中按值排序 Map
发布时间:2023/12/17 浏览次数:171 分类:Java
-
本文介绍了如何在 Java 中按值对 Map 进行排序。本教程介绍了如何在 Java 中按值对 Map
进行排序,并列出了一些示例代码来理解它。
如何在 Java 中打印 HashMap
发布时间:2023/12/17 浏览次数:192 分类:Java
-
本帖介绍了如何在 Java 中打印 HashMap。本教程介绍了如何在 Java 中打印 HashMap 元素,还列举了一些示例代码来理解这个主题。
在 Java 中更新 Hashmap 的值
发布时间:2023/12/17 浏览次数:146 分类:Java
-
本文介绍了如何在 Java 中更新 HashMap 中的一个值。本文介绍了如何在 Java 中使用 HashMap 类中包含的两个方法-put() 和 replace() 更新 HashMap 中的值。
Java 中的 hashmap 和 map 之间的区别
发布时间:2023/12/17 浏览次数:79 分类:Java
-
本文介绍了 Java 中的 hashmap 和 map 接口之间的区别。本教程介绍了 Java 中 Map 和 HashMap 之间的主要区别。在 Java 中,Map 是用于以键值对存储数据的接口,
在 Java 中获取用户主目录
发布时间:2023/12/17 浏览次数:218 分类:Java
-
这篇文章向你展示了如何在 Java 中获取用户主目录。本教程介绍了如何在 Java 中获取用户主目录,并列出了一些示例代码以指导你完成该主题。
Java 中 size 和 length 的区别
发布时间:2023/12/17 浏览次数:179 分类:Java
-
这篇文章教你如何知道 Java 中大小和长度之间的区别。本教程介绍了 Java 中大小和长度之间的区别。我们还列出了一些示例代码以帮助你理解该主题。
Java 中的互斥锁
发布时间:2023/12/17 浏览次数:111 分类:Java
-
了解有关 Java 中互斥锁的一切,在计算机科学领域,互斥或互斥被称为并发控制的属性。每台计算机都使用称为线程的最小程序指令序列。有一次,计算机在一个线程上工作。为了更好地理解,