每個 Java 開發人員都應該知道的最佳數學庫

Sarwan Soomro 2024年2月15日
  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 https://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.webp>)

## 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
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