github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/math/big/prime.go (about)

     1  // Copyright 2016 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  package big
     6  
     7  // ProbablyPrimeは、xがおそらく素数であるかどうかを報告します。
     8  // これは、n個の擬似ランダムに選ばれた基底とともにミラー-ラビンテストを適用し、
     9  // ベイリー-PSWテストも行います。
    10  //
    11  // xが素数の場合、ProbablyPrimeはtrueを返します。
    12  // xがランダムに選ばれ、素数でない場合、ProbablyPrimeはおそらくfalseを返します。
    13  // ランダムに選ばれた非素数に対してtrueを返す確率は最大で¼ⁿです。
    14  //
    15  // ProbablyPrimeは、2⁶⁴未満の入力に対しては100%正確です。
    16  // エラー確率の詳細な議論については、Menezesらの「Handbook of Applied Cryptography」、1997年、pp. 145-149、
    17  // およびFIPS 186-4 Appendix Fを参照してください。
    18  //
    19  // ProbablyPrimeは、敵がテストを欺くために作成した可能性のある素数を判断するのに適していません。
    20  //
    21  // Go 1.8以降、ProbablyPrime(0)が許可され、Baillie-PSWテストのみが適用されます。
    22  // Go 1.8以前では、ProbablyPrimeはMiller-Rabinテストのみを適用し、ProbablyPrime(0)はパニックを引き起こしました。
    23  func (x *Int) ProbablyPrime(n int) bool