math.powで再帰を使用してJavaでパワーを計算する

ニサーグ・パテル

X ^ n =(X ^ n / 2)^ 2 n> 0で、nが偶数の場合

X ^ n = X *(X ^ n / 2)^ 2 n> 0で、nが奇数の場合

誰かが私にこれらの2つの式のJavaコードを教えてもらえますか?私はそれをやろうとしましたが、私の答えは常に無限大です。

これが私のコードです

コード:

import java.lang.*;
public class power4
{
  double ans;
  public double setpower(double x, double n) {
    if (n == 0)
      return 1;
    else if (n % 2 == 0)
      return Math.pow(setpower(x, n/2),2);
    else
      return x * (Math.pow(setpower(x, n/2),2));
  }
}

ドライバークラス:

 public class powerTester
 {
   public static void main(String[] args) {
     power4 test4 = new power4();

     System.out.print("2^0 -- ");
     System.out.print(test4.setpower(2,0)+"    ");

     System.out.println();
     System.out.print("2^1 -- ");
     System.out.print(test4.setpower(2,1)+"    ");

     System.out.println();
     System.out.print("2^2 -- ");
     System.out.print(test4.setpower(2,2)+"    ");

     System.out.println();
     System.out.print("2^3 -- ");
     System.out.print(test4.setpower(2,3)+"    ");

     System.out.println();
     System.out.print("2^4 -- ");
     System.out.print(test4.setpower(2,4)+"   ");

     System.out.println();
     System.out.print("2^5 -- ");
     System.out.print(test4.setpower(2,5)+"   ");
  }
}

出力:

Welcome to DrJava.  Working directory is C:\Users\Nisarg\Desktop
> run powerTester
2^0 -- 1.0    
2^1 -- Infinity    
2^2 -- Infinity    
2^3 -- Infinity    
2^4 -- Infinity   
2^5 -- Infinity   > 
Dawood ibn Kareem

この式

X^n = X * ( X^ (n / 2))^2

n / 2奇数の整数除算であることに依存しています。言い換えれば、それは必要ではありませんがn ÷ 2、実際には(n - 1) ÷ 2整数でndoubleないことにより、整数除算としてではなく、除算を正確に機能させることができます。

この結果、この再帰はn / 2、浮動小数点の精度の限界達したときのみ終了します。そのときまでに、何度もX度も乗算しますしたがって、結果は非常に大きな数になります。に格納するには大きすぎdoubleます。

これを修正するには、setpowerメソッドの最初の行を次のように変更します。

public double setpower(double x, int n)

整数除算を強制します。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

math.powで再帰を使用してJavaでパワーを計算する

分類Dev

math.pow()を使用してExpressionクラスで計算を行う方法は?

分類Dev

Math.Powを使用した月次ローン計算

分類Dev

math.pow c#なしで電力を計算するにはどうすればよいですか?

分類Dev

JavaでBigDecimalを使用する手動Math.pow

分類Dev

JavaでMath.powを使用して、立方体の表面積と「スキップ」の難しさを判断する

分類Dev

Math.powを使用してこのコードが「HELLO WORLD」を出力するのはなぜですか?

分類Dev

Pythonでmath.factorial(n)を使用して階乗を計算すると、FLOPSがいくつありますか

分類Dev

math.powを使用してPythonで大きな数の平方を見つける

分類Dev

2番目のパラメーターを10進値としてMath.pow操作でNaNを取得します

分類Dev

JavaからSwiftへ-Xcode6でmath.powとmath.expを使用する方法

分類Dev

math.atan2を使用して線分間の角度を計算する(Python)

分類Dev

Math.NETを使用して臨界値Tスコアを計算する

分類Dev

AngularJS:フィルターでMath.powを適切に使用する方法

分類Dev

math.logを使用せずにPythonで対数を計算する方法

分類Dev

Apache commons-math3でPolynomialCurveFitterのR-Squareを計算する

分類Dev

Pythonの指数-math.powとmath.sqrtではなく**演算子を使用するべきですか?

分類Dev

Java:Math.pow()がゼロを返しています

分類Dev

Math.Pow(10、Math.Abs(1))は10に等しいですか?

分類Dev

Java Mathの平方根法を使用して、1から1,000までの平方根を計算します。次に、整数のみを出力します

分類Dev

math.pow java関数を適切に使用する方法は?

分類Dev

C#でSystem.Math.Pow()メソッドを使用して、数値の立方根を検索します。

分類Dev

Javascript Mathライブラリを使用して直角三角形の角度を計算するにはどうすればよいですか?

分類Dev

inputValのMath.pow()

分類Dev

Math.randomを使用してJavaで特定の範囲の乱数を表示する方法

分類Dev

Math.powは、Javaバージョンに応じて異なる結果を生成します

分類Dev

Java、Math.random を使用する場合の中央値と平均の計算

分類Dev

Math.Floorを使用する

分類Dev

Pythonのべき乗-math.powとmath.sqrtではなく**演算子を使用すべきですか?

Related 関連記事

  1. 1

    math.powで再帰を使用してJavaでパワーを計算する

  2. 2

    math.pow()を使用してExpressionクラスで計算を行う方法は?

  3. 3

    Math.Powを使用した月次ローン計算

  4. 4

    math.pow c#なしで電力を計算するにはどうすればよいですか?

  5. 5

    JavaでBigDecimalを使用する手動Math.pow

  6. 6

    JavaでMath.powを使用して、立方体の表面積と「スキップ」の難しさを判断する

  7. 7

    Math.powを使用してこのコードが「HELLO WORLD」を出力するのはなぜですか?

  8. 8

    Pythonでmath.factorial(n)を使用して階乗を計算すると、FLOPSがいくつありますか

  9. 9

    math.powを使用してPythonで大きな数の平方を見つける

  10. 10

    2番目のパラメーターを10進値としてMath.pow操作でNaNを取得します

  11. 11

    JavaからSwiftへ-Xcode6でmath.powとmath.expを使用する方法

  12. 12

    math.atan2を使用して線分間の角度を計算する(Python)

  13. 13

    Math.NETを使用して臨界値Tスコアを計算する

  14. 14

    AngularJS:フィルターでMath.powを適切に使用する方法

  15. 15

    math.logを使用せずにPythonで対数を計算する方法

  16. 16

    Apache commons-math3でPolynomialCurveFitterのR-Squareを計算する

  17. 17

    Pythonの指数-math.powとmath.sqrtではなく**演算子を使用するべきですか?

  18. 18

    Java:Math.pow()がゼロを返しています

  19. 19

    Math.Pow(10、Math.Abs(1))は10に等しいですか?

  20. 20

    Java Mathの平方根法を使用して、1から1,000までの平方根を計算します。次に、整数のみを出力します

  21. 21

    math.pow java関数を適切に使用する方法は?

  22. 22

    C#でSystem.Math.Pow()メソッドを使用して、数値の立方根を検索します。

  23. 23

    Javascript Mathライブラリを使用して直角三角形の角度を計算するにはどうすればよいですか?

  24. 24

    inputValのMath.pow()

  25. 25

    Math.randomを使用してJavaで特定の範囲の乱数を表示する方法

  26. 26

    Math.powは、Javaバージョンに応じて異なる結果を生成します

  27. 27

    Java、Math.random を使用する場合の中央値と平均の計算

  28. 28

    Math.Floorを使用する

  29. 29

    Pythonのべき乗-math.powとmath.sqrtではなく**演算子を使用すべきですか?

ホットタグ

アーカイブ