當前位置:首頁 » 編程語言 » java中開方

java中開方

發布時間: 2023-09-02 06:15:45

java中,如何對大數開根號啊!

java中對於大數BigInteger,BigDecimal開根號沒有提供函數,可以參考以下實現方法:

import java.math.BigDecimal;
import java.math.BigInteger;
public class BigSquareRoot {
final static BigInteger HUNDRED = BigInteger.valueOf(100);

public static BigDecimal sqrt(BigDecimal number, int scale, int roundingMode) {
if (number.compareTo(BigDecimal.ZERO) < 0)
throw new ArithmeticException("sqrt with negative");
BigInteger integer = number.toBigInteger();
StringBuffer sb = new StringBuffer();
String strInt = integer.toString();
int lenInt = strInt.length();
if (lenInt % 2 != 0) {
strInt = '0' + strInt;
lenInt++;
}
BigInteger res = BigInteger.ZERO;
BigInteger rem = BigInteger.ZERO;
for (int i = 0; i < lenInt / 2; i++) {
res = res.multiply(BigInteger.TEN);
rem = rem.multiply(HUNDRED);

BigInteger temp = new BigInteger(strInt.substring(i * 2, i * 2 + 2));
rem = rem.add(temp);

BigInteger j = BigInteger.TEN;
while (j.compareTo(BigInteger.ZERO) > 0) {
j = j.subtract(BigInteger.ONE);
if (((res.add(j)).multiply(j)).compareTo(rem) <= 0) {
break;
}
}

res = res.add(j);
rem = rem.subtract(res.multiply(j));
res = res.add(j);
sb.append(j);
}
sb.append('.');
BigDecimal fraction = number.subtract(number.setScale(0, BigDecimal.ROUND_DOWN));
int fracLen = (fraction.scale() + 1) / 2;
fraction = fraction.movePointRight(fracLen * 2);
String strFrac = fraction.toPlainString();
for (int i = 0; i <= scale; i++) {
res = res.multiply(BigInteger.TEN);
rem = rem.multiply(HUNDRED);

if (i < fracLen) {
BigInteger temp = new BigInteger(strFrac.substring(i * 2, i * 2 + 2));
rem = rem.add(temp);
}

BigInteger j = BigInteger.TEN;
while (j.compareTo(BigInteger.ZERO) > 0) {
j = j.subtract(BigInteger.ONE);
if (((res.add(j)).multiply(j)).compareTo(rem) <= 0) {
break;
}
}
res = res.add(j);
rem = rem.subtract(res.multiply(j));
res = res.add(j);
sb.append(j);
}
return new BigDecimal(sb.toString()).setScale(scale, roundingMode);
}

public static BigDecimal sqrt(BigDecimal number, int scale) {
return sqrt(number, scale, BigDecimal.ROUND_HALF_UP);
}

public static BigDecimal sqrt(BigDecimal number) {
int scale = number.scale() * 2;
if (scale < 50)
scale = 50;
return sqrt(number, scale, BigDecimal.ROUND_HALF_UP);
}

public static void main(String args[]) {
BigDecimal num = new BigDecimal("6510354513.6564897413514568413");
long time = System.nanoTime();
BigDecimal root = sqrt(num, 1000);
time = System.nanoTime() - time;
System.out.println(root);
System.out.println(root.pow(2));
System.out.println(time);
}
}
執行結果:
80686.76406162506362881367
6510354513.
46726188

❷ java中如何對一個數開根號

java 中對一個數開根號可以使用系統提供的Math.sqrt() 函數進行操作

例:

Math.sqrt(3);//得到結果就是3

❸ Java中求平方以及立方的函數式什麼

Math.pow(x,2)就是平方。Math.pow(x,3)就是立方。

Math.pow(底數,幾次方),如:double a=2.0,double b=3.0,double c=Math.pow(a,b),就是2的三次方是多少;c最終為8。

(3)java中開方擴展閱讀:

Math.pow()函數返回基數(base)的指數(exponent)次冪,即base的exponent次冪。Java是一種簡單的,跨平台的,面向對象的,分布式的,解釋的,健壯的安全的,結構的中立的,可移植的,性能很優異的多線程的,動態的語言。

Java編程工具如下:

1、Eclipse:一個開放源代碼的、基於Java的可擴展開發平台 。

2、NetBeans:開放源碼的Java集成開發環境,適用於各種客戶機和Web應用。

3、IntelliJ IDEA:在代碼自動提示、代碼分析等方面的具有很好的功能。

4、MyEclipse:由Genuitec公司開發的一款商業化軟體,是應用比較廣泛的Java應用程序集成開發環境 。

5、EditPlus:如果正確配置Java的編譯器「Javac」以及解釋器「Java」後,可直接使用EditPlus編譯執行Java程序 。

❹ 關於java開平方函數

你導入錯了唄,sqrt()在lang的Math包里。lang包是默認的,sqrt()方法可能不止一個,對應你那個參數可能就是math包里那個,當然要聲明

❺ java怎麼實現開3次方

用Math.pow(double a,double b)方法,方法的參數是被開放數和1/3就可以了。

❻ java語言如何求平方根

開平方用math.sqrt(double n);就可以了,n就是要被開方的數。 擴展下,如果要給m開n次方就用 java.lang.StrictMath.pow(m,1.0/n); 因為都是用的double類型的數字,所以會有誤差,比如 m=64;n=3,y=java.lang.StrictMath.pow(m,1.0/n); 這樣如果System.out.println(y);y就是3.9999999999999996 可以用下面的函數吧結果格式化下,格式化成整數 import java.text.DecimalFormat; public class Test82 { public static void main(String[] args) { double y=0; double x=64; int n=3;
y=java.lang.StrictMath.pow(x,1.0/n); DecimalFormat bd=new DecimalFormat("########");//把double四捨五入取整 System.out.println(bd.format(y)); } }

❼ java語言如何求平方根

使用java.lang.Math類的sqrt(double)方法。 方法詳解: public static double sqrt(double a) 返回正確舍入的 double 值的正平方根。

Math是在java.lang這個包中的所以可以直接在程序中用這個Math類直接在程序中這樣就可以了:

double n;

n=Math.sqrt(9);//比如9是要平方的數

示例見下圖:

(7)java中開方擴展閱讀:

平方根計算:

1、功 能: 一個非負實數的平方根

2、函數原型: 在VC6.0中的math.h頭文件的函數原型為double sqrt(double);

3、說明:sqrt系Square Root Calculations(平方根計算),通過這種運算可以考驗CPU的浮點能力。

熱點內容
手機網頁緩存視頻 發布:2025-02-03 23:38:48 瀏覽:826
agnes演算法 發布:2025-02-03 23:38:05 瀏覽:29
私密上傳在哪 發布:2025-02-03 23:33:04 瀏覽:1000
切冰解壓 發布:2025-02-03 23:30:36 瀏覽:764
解壓攪拌聲 發布:2025-02-03 23:11:35 瀏覽:831
伺服器硬碟誤拔了怎麼辦 發布:2025-02-03 23:05:26 瀏覽:868
易手遙控連接密碼是多少 發布:2025-02-03 22:44:26 瀏覽:167
sql安裝程序配置伺服器失敗 發布:2025-02-03 22:44:25 瀏覽:588
可以寫腳本的點擊器 發布:2025-02-03 22:44:22 瀏覽:616
c演算法代碼 發布:2025-02-03 22:42:20 瀏覽:863