IRandomGenerator Interfaccia

Definizione

L'interfaccia RandomGenerator è progettata per fornire un protocollo comune per gli oggetti che generano sequenze pseudorandome casuali o (più in genere) di numeri (o valori booleani).

[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
Derivato
Attributi
Implementazioni

Commenti

L'interfaccia RandomGenerator è progettata per fornire un protocollo comune per gli oggetti che generano sequenze pseudorandome casuali o (più in genere) di numeri (o valori booleani). Tale sequenza può essere ottenuta richiamando ripetutamente un metodo che restituisce un singolo valore scelto pseudorandomamente o richiamando un metodo che restituisce un flusso di valori scelti pseudorandomamente.

Idealmente, dato un intervallo di valori specificato in modo implicito o esplicito, ogni valore verrà scelto in modo indipendente e uniforme da tale intervallo. In pratica, potrebbe essere necessario accontentarsi di un'approssimazione all'indipendenza e all'uniformità.

Nel caso di intvalori , longe boolean , se non esiste alcuna specifica esplicita dell'intervallo, l'intervallo include tutti i valori possibili del tipo. Nel caso di float valori e double , il primo valore viene sempre scelto in modo uniforme dal set di 2<valori sup>w</sup> compresi tra 0,0 (inclusi) e 1,0 (esclusivo), dove w è 23 per float i valori e 52 per i valori, in double modo che i valori adiacenti differiscano per 2<sup>&meno;w</sup> (si noti che questo set è un subset del set di tutti i valori a virgola mobile rappresentabili tra 0,0 (inclusivo) e 1,0 (esclusivo)); quindi, se è stato specificato un intervallo esplicito, il numero scelto viene ridimensionato e convertito in modo da sembrare che sia stato scelto approssimativamente in modo uniforme da tale intervallo esplicito.

Ogni metodo che restituisce un flusso produce un flusso di valori ognuno dei quali viene scelto nello stesso modo di un metodo che restituisce un singolo valore scelto pseudorandomamente. Ad esempio, se r implementa RandomGenerator, la chiamata r.ints(100) al metodo restituisce un flusso di 100 int valori. Questi non sono necessariamente gli stessi valori che sarebbero stati restituiti se invece r.nextInt() fosse stato chiamato 100 volte. Tutto ciò che è garantito è che ogni valore nel flusso viene scelto in modo pseudorandomo simile dallo stesso intervallo.

Ogni oggetto che implementa l'interfaccia RandomGenerator utilizzando un algoritmo pseudorandom si presuppone che contenga una quantità limitata di stato. L'utilizzo di tale oggetto per generare un valore scelto pseudorandomamente ne modifica lo stato calcolando un nuovo stato come funzione dello stato corrente, senza fare riferimento a informazioni diverse dallo stato corrente. Il numero di stati distinti di tale oggetto viene chiamato periodo. Alcune implementazioni dell'interfaccia RandomGenerator possono essere veramente casuali anziché pseudorandome, ad esempio basandosi sul comportamento statistico di un oggetto fisico per derivare i valori scelti. Tali implementazioni non hanno un periodo fisso.

Come regola, gli oggetti che implementano l'interfaccia RandomGenerator non devono essere thread-safe. È consigliabile che le applicazioni multithreading usino ThreadLocalRandom generatori di numeri pseudorandomi o (preferibilmente) che implementano l'interfaccia SplittableGenerator o JumpableGenerator .

Gli oggetti che implementano RandomGenerator non sono in genere sicuri dal punto di vista crittografico. Prendere invece in considerazione l'uso SecureRandom di per ottenere un generatore di numeri pseudorandomi crittograficamente sicuro per l'uso da parte di applicazioni sensibili alla sicurezza. Si noti, tuttavia, che SecureRandom implementa l'interfaccia RandomGenerator , in modo che le istanze di SecureRandom possano essere usate in modo intercambiabile con altri tipi di generatori pseudorandomi nelle applicazioni che non richiedono un generatore sicuro.

Se non diversamente specificato in modo esplicito, l'uso di null per qualsiasi argomento del metodo causerà un'eccezione NullPointerException.

Aggiunta in 17.

per java.util.random.RandomGenerator.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Proprietà

Nome Descrizione
Default

Restituisce un RandomGenerator oggetto che soddisfa il requisito minimo di avere un algoritmo i cui bit di stato sono maggiori o uguali a 64.

Handle

Ottiene il valore JNI dell'oggetto Android sottostante.

(Ereditato da IJavaObject)
IsDeprecated

Restituisce true se l'implementazione di RandomGenerator (algoritmo) è stata contrassegnata per la deprecazione.

JniIdentityHashCode

Restituisce il valore di java.lang.System.identityHashCode() per l'istanza di cui è stato eseguito il wrapping.

(Ereditato da IJavaPeerable)
JniManagedPeerState

Stato del peer gestito.

(Ereditato da IJavaPeerable)
JniPeerMembers

Supporto per l'accesso ai membri e la chiamata.

(Ereditato da IJavaPeerable)
PeerReference

Restituisce un JniObjectReference oggetto dell'istanza dell'oggetto di cui è stato eseguito il wrapping Java.

(Ereditato da IJavaPeerable)

Metodi

Nome Descrizione
Disposed()

Chiamato quando l'istanza è stata eliminata.

(Ereditato da IJavaPeerable)
DisposeUnlessReferenced()

Se non sono presenti riferimenti in sospeso a questa istanza, chiama Dispose(); in caso contrario, non esegue alcuna operazione.

(Ereditato da IJavaPeerable)
Finalized()

Chiamato quando l'istanza è stata finalizzata.

(Ereditato da IJavaPeerable)
NextBoolean()

Restituisce un valore scelto boolean pseudorandomamente.

NextBytes(Byte[])

Riempie in modo uniforme una matrice di byte fornita dall'utente con valori di byte generati in modo uniforme dall'intervallo di valori compresi tra -128 (inclusi) e 127 (inclusi).

NextDouble()

Restituisce un valore pseudorandomo double compreso tra zero (inclusivo) e uno (esclusivo).

NextDouble(Double, Double)

Restituisce un valore scelto double pseudorandomamente tra l'origine specificata (inclusiva) e il limite specificato (esclusivo).

NextDouble(Double)

Restituisce un valore scelto double pseudorandomamente compreso tra zero (inclusivo) e il limite specificato (esclusivo).

NextExponential()

Restituisce un valore non double negativo scelto pseudorandomamente da una distribuzione esponenziale la cui media è 1.

NextFloat()

Restituisce un valore pseudorandomo float compreso tra zero (inclusivo) e uno (esclusivo).

NextFloat(Single, Single)

Restituisce un valore scelto float pseudorandomamente tra l'origine specificata (inclusiva) e il limite specificato (esclusivo).

NextFloat(Single)

Restituisce un valore scelto float pseudorandomamente compreso tra zero (inclusivo) e il limite specificato (esclusivo).

NextGaussian()

Restituisce un double valore pseudorandomly scelto da una distribuzione gaussiana (normale) la cui media è 0 e la cui deviazione standard è 1.

NextGaussian(Double, Double)

Restituisce un double valore pseudorandomio scelto da una distribuzione gaussiana (normale) con una deviazione media e standard specificata dagli argomenti.

NextInt()

Restituisce un valore scelto int pseudorandomamente.

NextInt(Int32, Int32)

Restituisce un valore scelto int pseudorandomamente tra l'origine specificata (inclusiva) e il limite specificato (esclusivo).

NextInt(Int32)

Restituisce un valore scelto int pseudorandomamente compreso tra zero (inclusivo) e il limite specificato (esclusivo).

NextLong()

Restituisce un valore scelto long pseudorandomamente.

NextLong(Int64, Int64)

Restituisce un valore scelto long pseudorandomamente tra l'origine specificata (inclusiva) e il limite specificato (esclusivo).

NextLong(Int64)

Restituisce un valore scelto long pseudorandomamente compreso tra zero (inclusivo) e il limite specificato (esclusivo).

Of(String)

Restituisce un'istanza di RandomGenerator che utilizza l'algoritmo name.

SetJniIdentityHashCode(Int32)

Impostare il valore restituito da JniIdentityHashCode.

(Ereditato da IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

L'interfaccia RandomGenerator è progettata per fornire un protocollo comune per gli oggetti che generano sequenze pseudorandome casuali o (più in genere) di numeri (o valori booleani).

(Ereditato da IJavaPeerable)
SetPeerReference(JniObjectReference)

Impostare il valore restituito da PeerReference.

(Ereditato da IJavaPeerable)
UnregisterFromRuntime()

Annullare la registrazione di questa istanza in modo che il runtime non lo restituisca dalle chiamate future Java.Interop.JniRuntime+JniValueManager.PeekValue .

(Ereditato da IJavaPeerable)

Metodi di estensione

Nome Descrizione
GetJniTypeName(IJavaPeerable)

Ottiene il nome JNI del tipo dell'istanza selfdi .

JavaAs<TResult>(IJavaPeerable)

Provare a digitare selfTResult, verificando che la coercizione sia valida sul lato Java.

JavaCast<TResult>(IJavaObject)

Esegue una conversione del tipo di tipo controllato dal runtime Android.

JavaCast<TResult>(IJavaObject)

L'interfaccia RandomGenerator è progettata per fornire un protocollo comune per gli oggetti che generano sequenze pseudorandome casuali o (più in genere) di numeri (o valori booleani).

TryJavaCast<TResult>(IJavaPeerable, TResult)

Provare a digitare selfTResult, verificando che la coercizione sia valida sul lato Java.

Si applica a