乱数生成器および、乱数関連の関数目次
Random\Randomizer クラスはじめにRandom\Engine が提供するランダムな値に対する、高レベルインターフェイスを提供します。 クラス概要
final
Random\Randomizer
/* プロパティ */
public
readonly
Random\Engine
$engine;
/* メソッド */
public __construct(Random\Enginenull
$engine = null )public string getBytes(int
$length )public string getBytesFromString(string
$string , int $length )public float getFloat(float
$min , float $max , Random\IntervalBoundary $boundary = Random\IntervalBoundary::ClosedOpen)public int getInt(int
$min , int $max )public float nextFloat()
public int nextInt()
public array pickArrayKeys(array
$array , int $num )public array __serialize()
public array shuffleArray(array
$array )public string shuffleBytes(string
$bytes )public void __unserialize(array
$data )プロパティ
Random\Engine インターフェイスはじめにRandom\Engine は、ランダムな値の低レベルなソースを提供します。 ここから返されたランダムな値は、 高レベルAPIで操作することで消費されます。 Random\Engine インターフェイスを使うと、 ランダムな値を生成するためのアルゴリズムを切り替えることができます。 何故切り替えるのかというと、 それぞれのアルゴリズムは特定のユースケースに応じて、 異なるトレードオフの特性を持つからです。 とても高速に値を生成するものの、 生成するランダムな値の品質は低いアルゴリズムもあれば、 それよりは低速ですが、よりよいランダムな値を生成するアルゴリズムもあります。 さらに、Random\Engine\Secure が提供する、 暗号学的にセキュアな、ランダムな値を生成するものまであります。 PHP は 異なるユースケースに対応した、 複数の Random\Engine を提供します。 とても高速なパフォーマンスを追求したり、 再現可能なシーケンスをアプリケーション側で必須としない限り、 CSPRNG をバックエンドにした Random\Engine\Secure を、 デフォルトとして選択することを推奨します。 インターフェイス概要
Random\Engine
/* メソッド */
public string Random\Engine::generate()
Random\CryptoSafeEngine インターフェイスはじめにRandom\Engine が、暗号学的にセキュアなランダム値を返すことを示す、マーカーインターフェイスです。 インターフェイス概要
Random\CryptoSafeEngine
extends
Random\Engine
/* 継承したメソッド */
public string Random\Engine::generate()
Random\Engine\Secure クラスはじめにオペレーティングシステムの CSPRNG を使い、暗号学的にセキュアな、ランダムな値を生成します。 この Random\Engine が生成するランダムな値は、 暗号化キーのような長期間使うシークレットを含む、すべてのアプリケーションで適切です。 とても高速なパフォーマンスを追求したり、 再現可能なシーケンスをアプリケーション側で必須としない限り、 Random\Engine\Secure エンジンを安全なデフォルトの選択として推奨します。 クラス概要
final
Random\Engine\Secure
implements
Random\CryptoSafeEngine
/* メソッド */
public string generate()
Random\Engine\Mt19937 クラスはじめに» Mt19937 (メルセンヌ・ツイスター) アルゴリズムを実装したクラスです。 クラス概要
final
Random\Engine\Mt19937
implements
Random\Engine
/* メソッド */
public __construct(intnull
$seed = null , int $mode = MT_RAND_MT19937 )public array __debugInfo()
public string generate()
public array __serialize()
public void __unserialize(array
$data )Random\Engine\PcgOneseq128XslRr64 クラスはじめに128 ビットのステートと、XSL-RR 変換を用いて、64 ビットの出力を生成する » Permuted congruential generator (PCG) を実装したクラスです。 クラス概要
final
Random\Engine\PcgOneseq128XslRr64
implements
Random\Engine
/* メソッド */
public __construct(stringintnull
$seed = null )public array __debugInfo()
public string generate()
public void jump(int
$advance )public array __serialize()
public void __unserialize(array
$data )Random\Engine\Xoshiro256StarStar クラスはじめに» xoshiro256** アルゴリズムを実装したクラスです。 クラス概要
final
Random\Engine\Xoshiro256StarStar
implements
Random\Engine
/* メソッド */
public __construct(stringintnull
$seed = null )public array __debugInfo()
public string generate()
public void jump()
public void jumpLong()
public array __serialize()
public void __unserialize(array
$data )Random\RandomError クラスはじめにランダムな値を使ったり生成したりする際に発生する、Error の基底クラスです。 クラス概要
Random\RandomError
extends
Error
/* 継承したプロパティ */
protected
string
$message = "";
private
string
$string = "";
protected
int
$code;
protected
string
$file = "";
protected
int
$line;
private
array
$trace = [];
private
Throwablenull
$previous = null;
/* 継承したメソッド */
public __construct(string
$message = "", int $code = 0, Throwablenull $previous = null )final public string getMessage()
final public Throwablenull getPrevious()
final public int getCode()
final public string getFile()
final public int getLine()
final public array getTrace()
final public string getTraceAsString()
public string __toString()
private void __clone()
Random\BrokenRandomEngineError クラスはじめにたとえば、生成される値がとても強く偏っているなどの理由で、 使っている Random\Engine が壊れていることを示します。 クラス概要
Random\BrokenRandomEngineError
extends
Random\RandomError
/* 継承したプロパティ */
protected
string
$message = "";
private
string
$string = "";
protected
int
$code;
protected
string
$file = "";
protected
int
$line;
private
array
$trace = [];
private
Throwablenull
$previous = null;
/* 継承したメソッド */
public Error::__construct(string
$message = "", int $code = 0, Throwablenull $previous = null )final public string Error::getMessage()
final public Throwablenull Error::getPrevious()
final public int Error::getCode()
final public string Error::getFile()
final public int Error::getLine()
final public array Error::getTrace()
final public string Error::getTraceAsString()
public string Error::__toString()
private void Error::__clone()
Random\RandomException クラスはじめにランダムな値を使ったり生成したりする際に発生する、Exception の基底クラスです。 クラス概要
Random\RandomException
extends
Exception
/* 継承したプロパティ */
protected
string
$message = "";
private
string
$string = "";
protected
int
$code;
protected
string
$file = "";
protected
int
$line;
private
array
$trace = [];
private
Throwablenull
$previous = null;
/* 継承したメソッド */
public __construct(string
$message = "", int $code = 0, Throwablenull $previous = null )final public string getMessage()
final public Throwablenull getPrevious()
final public int getCode()
final public string getFile()
final public int getLine()
final public array getTrace()
final public string getTraceAsString()
public string __toString()
private void __clone()
|