ホームページ > バックエンド開発 > Golang > Go の `big.Int` 型を使用して、巨大な数値に対して整数の除算を効率的に実行するにはどうすればよいですか?

Go の `big.Int` 型を使用して、巨大な数値に対して整数の除算を効率的に実行するにはどうすればよいですか?

DDD
リリース: 2024-11-03 05:50:03
オリジナル
597 人が閲覧しました

How can I efficiently perform integer division on massive numbers using Go's `big.Int` type?

Go の big.Int を使用した大量の数値の効率的な除算

非常に大きな数値を扱う場合、標準の整数型では不十分になる可能性があります。 Go の "math/big" パッケージは、任意精度の整数を簡単に処理できる big.Int 型を提供します。

質問:

2 つの大規模な big.Int が与えられたとします。変数について、整数の除算を効率的に実行するにはどうすればよいですか?

答え:

2 つの big.Int 数値を除算するには、big が提供する Div() メソッドを利用します。整数型。このメソッドは、除算演算の商を計算し、その結果を含む新しい big.Int インスタンスを返します。

次に、big.Int 変数の整数除算に Div() を使用する方法を示す例を示します。

<code class="go">package main

import (
    "fmt"
    "math/big"
)

func main() {
    // Initialize two big.Int variables with large factorials
    first := new(big.Int).MulRange(1, 50)
    second := new(big.Int).MulRange(1, 18)

    // Print the values of the two big.Int variables
    fmt.Printf("First: %s\n", first.String())
    fmt.Printf("Second: %s\n", second.String())

    // Perform division using the Div() method
    result := new(big.Int).Div(first, second)

    // Print the result of the division
    fmt.Printf("Division result: %s\n", result.String())
}</code>
ログイン後にコピー

この例では:

  • MulRange() を使用して階乗で big.Int 変数を初期化します。
  • 除算の前後の変数の値を出力します。 .
  • 整数の除算を実行するために Div() メソッドが呼び出され、結果が新しい big.Int 変数に格納されます。

出力:

<code class="text">First: 30414093201713378043612608166064768844377641568960512000000000000
Second: 6402373705728000
Division result: 4750440164794325701367714688167999176704000000000</code>
ログイン後にコピー

これは、Big.Int の Div() メソッドを使用して、Go で巨大な数の整数除算を効率的に実行する方法を示します。

以上がGo の `big.Int` 型を使用して、巨大な数値に対して整数の除算を効率的に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート