IRandomGenerator Interfaccia
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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 |
| 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 |
| 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 |
| Finalized() |
Chiamato quando l'istanza è stata finalizzata. (Ereditato da IJavaPeerable) |
| NextBoolean() |
Restituisce un valore scelto |
| 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 |
| NextDouble(Double, Double) |
Restituisce un valore scelto |
| NextDouble(Double) |
Restituisce un valore scelto |
| NextExponential() |
Restituisce un valore non |
| NextFloat() |
Restituisce un valore pseudorandomo |
| NextFloat(Single, Single) |
Restituisce un valore scelto |
| NextFloat(Single) |
Restituisce un valore scelto |
| NextGaussian() |
Restituisce un |
| NextGaussian(Double, Double) |
Restituisce un |
| NextInt() |
Restituisce un valore scelto |
| NextInt(Int32, Int32) |
Restituisce un valore scelto |
| NextInt(Int32) |
Restituisce un valore scelto |
| NextLong() |
Restituisce un valore scelto |
| NextLong(Int64, Int64) |
Restituisce un valore scelto |
| NextLong(Int64) |
Restituisce un valore scelto |
| Of(String) |
Restituisce un'istanza di |
| SetJniIdentityHashCode(Int32) |
Impostare il valore restituito da |
| SetJniManagedPeerState(JniManagedPeerStates) |
L'interfaccia |
| SetPeerReference(JniObjectReference) |
Impostare il valore restituito da |
| 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 |
| JavaAs<TResult>(IJavaPeerable) |
Provare a digitare |
| JavaCast<TResult>(IJavaObject) |
Esegue una conversione del tipo di tipo controllato dal runtime Android. |
| JavaCast<TResult>(IJavaObject) |
L'interfaccia |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Provare a digitare |