JavaRush /Java Blog /Random-JA /Javaで累乗する方法

Javaで累乗する方法

Random-JA グループに公開済み
こんにちは世界!グーグルで何かを検索したり、フォーラムで助けを求めたりすることは、経験豊富なプログラマーであってもよくあることです。ただし、開発には非常に基本的で単純なトピックがあるため、グリーン初心者でも知っておく必要があります。そして、これがそれらのトピックの1つです。今日は、Java で累乗がどのように実行されるかについて説明します。 Java でべき乗を行う方法 - 1少しの間、あなたに、ある程度の数字を見つけるというタスクが与えられたと想像してみましょう。非常に簡単に思えますが、解決策を実装するにはどうすればよいでしょうか? 最も一般的な方法といくつかの代替方法を見てみましょう。そして、解決策に「飛び込む」前に、まず数値の累乗とは何かを思い出してみましょう。 Java でべき乗を行う方法 - 2累乗とは、1 つの数値を数回乗算する操作です。乗算される数を底といい、乗算される回数を指数といいます。さて、この基数の自己乗算の結果は累乗と呼ばれます。たとえば、8 の場合、2x2x2=8 なので、2 の 3 乗になります。数値の 2 乗は、因数を 2 倍にすることを示し、一般にこのべき乗は 2 乗と呼ばれます。つまり、4 の 2 乗 = 4x4 = 16 です。それで、記憶をリフレッシュしたので、Java で pow を使用する方法 (累乗のメソッド) に直接進みます。
  1. 数学パウ

    この問題を解決する最も簡単な方法は、Math クラスを使用することです。ほとんどの場合、これが使用される解決策です。

    Java で累乗する方法 - 3

    Math クラスには、三角法、幾何学、および数学のその他の側面に関連するメソッドが含まれています。この中でメソッドは静的として実装されているため、クラス オブジェクトを作成せずに Math クラスの名前を通じてメソッドをすぐに呼び出すことができます。

    べき乗はどのようになりますか:

    public static int pow(int value, int powValue) {
       return (int) Math.pow(value, powValue);
    }

    Math クラスのこのメソッドは double 型の値を返すため、型キャスト (int) を使用する必要がありました (引数も double ですが、そこでは暗黙的な型キャストが使用されます)。

    そして今 - ボーナス:追加のオプションです。

  2. 数値の二乗の値

    おそらく、最も単純なことから始めましょう。

    二乗のメソッドは次のように記述されます。

    public static int pow(int value){
       return value*value;
    }

    メインで呼び出します:

    public static void main(String[] args) {
       System.out.println(Solution.pow(7));
    }

    それだけです。複雑なことや不必要なことは何もありません。

  3. 数値のべき乗

    しかし、必要なのは二乗数だけではありません。ほとんどの場合、私たちの作業ではある程度の数値が必要になるため、以下は少し複雑なバージョンですが、カスタム Java pow 値を使用しています。

    public static void main(String[] args) {
       System.out.println(Solution.pow(7, 4));
    }
    
    public static int pow(int value, int powValue) {
       int result = 1;
       for (int i = 1; i <= powValue; i++) {
           result = result * value;
       }
       return result;
    }

    アルゴリズムは非常に単純です。開始点の結果を設定し、powValue のループが実行される回数 (powValue の回数) だけその値を乗算します。

  4. 再帰

    次の方法は、もう少しエキゾチックですが、それほどクールではありません。

    Java で累乗する方法 - 4

    再帰は、メソッドがそれ自体を呼び出すことを可能にする機能です。Java ではこのような仕組みが存在するため、このようなメソッドは再帰的と呼ばれます。

    すべてではないにしても、アルゴリズムの問​​題の多くは再帰的に解決できます。これも例外ではないので、再帰的に数値を特定の累乗する方法を見てみましょう。

    public static int pow(int value, int powValue) {
       if (powValue == 1) {
           return value;
       } else {
           return value * pow(value, powValue - 1);
       }
    }

    ご覧のとおり、次の 2 つのケースがあります。

    1. 再帰を終了するための条件、つまり次数の値が 1 に達すると、元に戻され始めます。
    2. 同じメソッドの呼び出し結果で値を乗算するメカニズム自体ですが、powValue - 1 になります。

    さて、今度は、より遅延的なメソッド、つまり「すぐに使える」メソッドを見てみましょう。

  5. ビッグ整数

    BigInteger クラスの主な目的は、任意のサイズの整数を格納することですが、同時に、これらの巨大な (またはそれほど大きくない) 数値を処理できるさまざまな算術メソッドも備えています。

    Java で累乗する方法 - 5

    BigInteger について詳しくは、この記事をご覧ください。

    それでは、Java で BigInteger を使用すると、べき乗はどのように見えるでしょうか?

    public static int pow(int value, int powValue) {
       BigInteger a = new BigInteger(String.valueOf(value));
      return a.pow(powValue).intValue();
    }

    非常にシンプルで問題はありませんね。

それでは、今日はここまでです!これで、べき乗のさまざまな方法について理解できました。同意します、これは難しいトピックではありません:)
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION