JAVA中的BigInteger與BigDecimal類功能強大
BigInteger類是java為了處理大數字二專門制作的類,可以處理很大的數字(理論上無限大),並且可以實現大數字的類似於int所有數學運算。對算法題來說,再也不怕出現超出int範圍的運算了!
同時,處理大浮點數的類是BigDecimal。
BigInteger主要能實現以下功能:
大整數的直接讀取
大整數加減乘除,求余
求冪,絕對值,求相反數
判斷是否相等,求兩數的最大值,最小值
求公約數(厲害!)
求某數轉成二進數後的位數
判斷某個數是否為素數(可能判錯)
獲取某個數的下一個可能的素數
使用時要引入包為:import java.math.BigInteger
Ⅰ 基本函數:
1.valueOf(parament); 將參數轉換為制定的類型
比如 int a = 3;
BigInteger b = BigInteger.valueOf(a);
則b=3;
String s= "12345";
BigInteger c = BigInteger.valueOf(s);
則c = 12345;
2.add(); 大整數相加
BigInteger a=new BigInteger(“23”);
BigInteger b=new BigInteger(“34”);
a.add(b);
3.subtract(); 相減
4.multiply(); 相乘
5.divide(); 相除取整
6.remainder(); 取余
7.pow(); a.pow(b)=a^b
8.gcd(); 最大公約數
9.abs(); 絕對值
10.negate(); 取反數
11.mod(); a.mod(b)=a%b=a.remainder(b);
12.max(); min();
13.public int comareTo();
14.boolean equals(); 是否相等
15.shiftLeft():左移,this << n ,this*2^n;
shiftRight():右移,this >> n,this/2^n;
16.bitLength:返回該數的最小二進制補碼表示的位的個數,即 *不包括* 符號位 (ceil(log2(this <0 ? -this : this + 1)))。對正數來說,這等價於普通二進制表示的位的個數。
17.bitCount:返回該數的二進制補碼表示中不包擴符號位在內的位的個數。該方法在 BigIntegers 之上實現位向量風格的集合時很有用。
18.isProbablePrime:如果該 BigInteger 可能是素數,則返回 true ;如果它很明確是一個合數,則返回 false 。 參數 certainty 是對調用者願意忍受的不確定性的度量:如果該數是素數的概率超過了 1 - 1/2**certainty方法,則該方法返回 true 。執行時間正比於參數確定性的值。
19.nextProbablePrime():獲取下一個可能的素數是多少
20.BigInteger構造函數:
一般用到以下兩種:
BigInteger(String val);
將指定字符串轉換為十進制表示形式;
BigInteger(String val,int radix);
將指定基數的 BigInteger 的字符串表示形式轉換為 BigInteger
JAVA中的BigInteger與BigDecimal類功能強大