IRandomGenerator インターフェイス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
RandomGenerator インターフェイスは、ランダムまたは (より一般的には) 数値 (またはブール値) の擬似乱数シーケンスを生成するオブジェクトに共通のプロトコルを提供するように設計されています。
[Android.Runtime.Register("java/util/random/RandomGenerator", "", "Java.Util.RandomGenerators.IRandomGeneratorInvoker", ApiSince=35)]
public interface IRandomGenerator : Android.Runtime.IJavaObject, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("java/util/random/RandomGenerator", "", "Java.Util.RandomGenerators.IRandomGeneratorInvoker", ApiSince=35)>]
type IRandomGenerator = interface
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 派生
- 属性
- 実装
注釈
RandomGenerator インターフェイスは、ランダムまたは (より一般的には) 数値 (またはブール値) の擬似乱数シーケンスを生成するオブジェクトに共通のプロトコルを提供するように設計されています。 このようなシーケンスは、1 つの擬似ランダムに選択された値を返すメソッドを繰り返し呼び出すか、擬似ランダムに選択された値のストリームを返すメソッドを呼び出すことによって取得できます。
暗黙的または明示的に指定された値の範囲を指定すると、各値はその範囲から独立して一様に選択されるのが理想的です。 実際には、ある程度の独立と均一性の近似のために解決しなければならない場合があります。
int、long、およびbooleanの値の場合、範囲の明示的な指定がない場合、範囲には型のすべての使用可能な値が含まれます。
float値とdouble値の場合、 最初に、値は常に 2<up>w</sup> のセットから 0.0 (包括) から 1.0 (排他的) の値から一様に選択されます。この値は、隣接する値が 2<floatupsup で異なdouble値の Double#PRECISION場合は w がFloat#PRECISIONされます>w</sup> (このセットは、0.0 (包括的) から 1.0 (排他的) までの表現可能なすべての浮動小数点値のセットのサブセットであることに注意してください。明示的な範囲が指定された場合、選択した数値は計算的にスケーリングされ、その明示的な範囲からほぼ一様に選択されているように変換されます。
ストリームを返す各メソッドは、1 つの擬似ランダムに選択された値を返すメソッドの場合と同じ方法で選択される値のストリームを生成します。 たとえば、 r が RandomGeneratorを実装する場合、メソッド呼び出し r.ints(100) は 100 int 値のストリームを返します。 これらは必ずしも、 r.nextInt() が 100 回呼び出された場合に返されるのとまったく同じ値であるとは限りません。保証されるのは、ストリーム内の各値が同じ範囲から同様の擬似ランダムな方法で選択されるということです。
擬似乱数アルゴリズムを使用して RandomGenerator インターフェイスを実装するすべてのオブジェクトには、有限の状態が含まれていると見なされます。 このようなオブジェクトを使用して擬似ランダムに選択された値を生成すると、現在の状態以外の情報を参照せずに、現在の状態の関数として新しい状態を計算することで、その状態が変更されます。 このようなオブジェクトの個別の可能な状態の数は、その 期間と呼ばれます。 (たとえば、選択した値を派生させるために物理オブジェクトの統計的動作に依存するなど、 RandomGenerator インターフェイスの実装の中には、擬似乱数ではなく真にランダムなものがあります。このような実装には、一定の期間はありません)。
原則として、 RandomGenerator インターフェイスを実装するオブジェクトはスレッド セーフである必要はありません。 マルチスレッド アプリケーションでは、ThreadLocalRandomまたはSplittableGenerator インターフェイスを実装するJumpableGeneratorまたは (できれば) 擬似乱数ジェネレーターを使用することをお勧めします。
通常、 RandomGenerator を実装するオブジェクトは、暗号化によってセキュリティで保護されません。 代わりに、 SecureRandom を使用して、セキュリティで保護されたアプリケーションで使用する暗号で安全な擬似乱数ジェネレーターを取得することを検討してください。 ただし、 SecureRandom では RandomGenerator インターフェイスが実装されるため、セキュリティで保護されたジェネレーターを必要としないアプリケーションで、 SecureRandom のインスタンスを他の種類の擬似乱数ジェネレーターと同じ意味で使用できます。
明示的に明記されていない限り、メソッド引数に null を使用すると NullPointerException が発生します。
17 で追加されました。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
プロパティ
| 名前 | 説明 |
|---|---|
| Default |
状態ビットが 64 以上のアルゴリズムを使用する最小要件を満たす |
| Handle |
基になる Android オブジェクトの JNI 値を取得します。 (継承元 IJavaObject) |
| IsDeprecated |
RandomGenerator (アルゴリズム) の実装が非推奨としてマークされている場合は true を返します。 |
| JniIdentityHashCode |
ラップされたインスタンスの |
| JniManagedPeerState |
マネージド ピアの状態。 (継承元 IJavaPeerable) |
| JniObjectReferenceControlBlock |
|
| JniPeerMembers |
メンバー アクセスと呼び出しのサポート。 (継承元 IJavaPeerable) |
| PeerReference |
ラップされたJava オブジェクト インスタンスのJniObjectReferenceを返します。 (継承元 IJavaPeerable) |
メソッド
| 名前 | 説明 |
|---|---|
| Disposed() |
インスタンスが破棄されたときに呼び出されます。 (継承元 IJavaPeerable) |
| DisposeUnlessReferenced() |
このインスタンスへの未処理の参照がない場合は、 |
| Finalized() |
インスタンスが終了したときに呼び出されます。 (継承元 IJavaPeerable) |
| NextBoolean() |
擬似ランダムに選択された |
| NextBytes(Byte[]) |
ユーザー指定のバイト配列に、生成されたバイト値を、-128 (包括) から 127 (両端を含む) までの範囲から一様に選択された擬似的に選択されたバイト値で埋めます。 |
| NextDouble() |
0 (包括) から 1 (排他的) までの擬似乱数 |
| NextDouble(Double, Double) |
指定した原点 (包括) と指定されたバインド (排他) の間で、擬似的に選択された |
| NextDouble(Double) |
0 (包括) から指定されたバインド (排他) までの間で、擬似的に選択された |
| NextExponential() |
平均が 1 の指数分布から擬似的に選択された負でない |
| NextFloat() |
0 (包括) から 1 (排他的) までの擬似乱数 |
| NextFloat(Single, Single) |
指定した原点 (包括) と指定されたバインド (排他) の間で、擬似的に選択された |
| NextFloat(Single) |
0 (包括) から指定されたバインド (排他) までの間で、擬似的に選択された |
| NextGaussian() |
平均が 0 で標準偏差が 1 のガウス (正規) 分布から擬似ランダムに選択された |
| NextGaussian(Double, Double) |
引数で指定された平均と標準偏差を持つガウス分布 (正規) 分布から擬似的に選択された |
| NextInt() |
擬似ランダムに選択された |
| NextInt(Int32, Int32) |
指定した原点 (包括) と指定されたバインド (排他) の間で、擬似的に選択された |
| NextInt(Int32) |
0 (包括) から指定されたバインド (排他) までの間で、擬似的に選択された |
| NextLong() |
擬似ランダムに選択された |
| NextLong(Int64, Int64) |
指定した原点 (包括) と指定されたバインド (排他) の間で、擬似的に選択された |
| NextLong(Int64) |
0 (包括) から指定されたバインド (排他) までの間で、擬似的に選択された |
| Of(String) |
|
| SetJniIdentityHashCode(Int32) |
|
| SetJniManagedPeerState(JniManagedPeerStates) |
|
| SetPeerReference(JniObjectReference) |
|
| UnregisterFromRuntime() |
ランタイムが将来の Java.Interop.JniRuntime+JniValueManager.PeekValue 呼び出しから返されないように、このインスタンスの登録を解除します。 (継承元 IJavaPeerable) |
拡張メソッド
| 名前 | 説明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
インスタンス |
| JavaAs<TResult>(IJavaPeerable) |
|
| JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
| JavaCast<TResult>(IJavaObject) |
|
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
|