IRandomGenerator Interfaz

Definición

La RandomGenerator interfaz está diseñada para proporcionar un protocolo común para los objetos que generan secuencias pseudoaleatorias aleatorias o (más normalmente) de números (o valores booleanos).

[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
Derivado
Atributos
Implementaciones

Comentarios

La RandomGenerator interfaz está diseñada para proporcionar un protocolo común para los objetos que generan secuencias pseudoaleatorias aleatorias o (más normalmente) de números (o valores booleanos). Dicha secuencia se puede obtener invocando repetidamente un método que devuelve un único valor elegido de forma pseudoaleatoria o invocando un método que devuelve una secuencia de valores pseudoaleatorios elegidos.

Idealmente, dada una gama implícita o explícitamente especificada de valores, cada valor se elegiría de forma independiente y uniforme a partir de ese intervalo. En la práctica, es posible que tenga que establecer una aproximación a la independencia y la uniformidad.

En el caso de intlos valores , longy boolean , si no hay ninguna especificación explícita del intervalo, el intervalo incluye todos los valores posibles del tipo. En el caso de float los valores y double , primero se elige un valor uniformemente del conjunto de 2<valoressup> w</sup> entre 0,0 (inclusivo) y 1,0 (exclusivo), donde w es Float#PRECISION para float valores y Double#PRECISION para double valores, de modo que los valores adyacentes difieren en 2<sup>&menos;w</sup> (observe que este conjunto es un subconjunto del conjunto de todos los valores de punto flotante que se pueden representar entre 0,0 (inclusivo) y 1,0 (exclusivo)); después, si se especificó un intervalo explícito, el número elegido se escalará computacionalmente y se traducirá para que parezca que se ha elegido aproximadamente uniformemente a partir de ese intervalo explícito.

Cada método que devuelve una secuencia genera una secuencia de valores cada uno de los cuales se elige de la misma manera que para un método que devuelve un único valor elegido pseudoaleatorio. Por ejemplo, si r implementa RandomGenerator, la llamada al r.ints(100) método devuelve una secuencia de 100 int valores. Estos no son necesariamente los mismos valores que se habrían devuelto si en su lugar r.nextInt() se hubieran llamado 100 veces; todo lo que se garantiza es que cada valor de la secuencia se elige de una manera pseudoaleatoria similar del mismo intervalo.

Se supone que todos los objetos que implementan la RandomGenerator interfaz mediante un algoritmo pseudoaleatorio contienen una cantidad finita de estado. El uso de este objeto para generar un valor elegido pseudoaleatorio modifica su estado calculando un nuevo estado como una función del estado actual, sin hacer referencia a ninguna información que no sea el estado actual. El número de estados posibles distintos de este objeto se denomina período. (Algunas implementaciones de la RandomGenerator interfaz pueden ser verdaderamente aleatorias en lugar de pseudoaleatorias, por ejemplo, confiar en el comportamiento estadístico de un objeto físico para derivar valores elegidos. Estas implementaciones no tienen un período fijo).

Como regla, los objetos que implementan la RandomGenerator interfaz no deben ser seguros para subprocesos. Se recomienda que las aplicaciones multiproceso usen ThreadLocalRandom o (preferiblemente) generadores de números pseudoaleatorios que implementen la SplittableGenerator interfaz o JumpableGenerator .

Los objetos que implementan RandomGenerator normalmente no son criptográficomente seguros. Considere la posibilidad de usar SecureRandom en su lugar para obtener un generador de números pseudoaleatorios criptográficamente seguro para su uso por parte de las aplicaciones sensibles a la seguridad. Tenga en cuenta, sin embargo, que SecureRandom implementa la RandomGenerator interfaz para que las instancias de SecureRandom se puedan usar indistintamente con otros tipos de generadores pseudoaleatorios en aplicaciones que no requieren un generador seguro.

A menos que se indique explícitamente lo contrario, el uso de NULL para cualquier argumento de método provocará una excepción NullPointerException.

Agregado en 17.

Java documentación para java.util.random.RandomGenerator.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Propiedades

Nombre Description
Default

Devuelve un RandomGenerator requisito mínimo de tener un algoritmo cuyos bits de estado sean mayores o iguales a 64.

Handle

Obtiene el valor JNI del objeto Android subyacente.

(Heredado de IJavaObject)
IsDeprecated

Devuelve true si la implementación de RandomGenerator (algoritmo) se ha marcado para desuso.

JniIdentityHashCode

Devuelve el valor de java.lang.System.identityHashCode() para la instancia ajustada.

(Heredado de IJavaPeerable)
JniManagedPeerState

Estado del mismo nivel administrado.

(Heredado de IJavaPeerable)
JniObjectReferenceControlBlock

La RandomGenerator interfaz está diseñada para proporcionar un protocolo común para los objetos que generan secuencias pseudoaleatorias aleatorias o (más normalmente) de números (o valores booleanos).

(Heredado de IJavaPeerable)
JniPeerMembers

Compatibilidad con la invocación y el acceso de miembros.

(Heredado de IJavaPeerable)
PeerReference

Devuelve un JniObjectReference de la instancia de objeto Java ajustada.

(Heredado de IJavaPeerable)

Métodos

Nombre Description
Disposed()

Se llama cuando se ha eliminado la instancia.

(Heredado de IJavaPeerable)
DisposeUnlessReferenced()

Si no hay referencias pendientes a esta instancia, llama a Dispose(); de lo contrario, no hace nada.

(Heredado de IJavaPeerable)
Finalized()

Se llama cuando se ha finalizado la instancia.

(Heredado de IJavaPeerable)
NextBoolean()

Devuelve un valor elegido boolean pseudoaleatorio.

NextBytes(Byte[])

Rellena una matriz de bytes proporcionada por el usuario con valores de bytes generados seudoaleatoriamente elegidos uniformemente a partir del intervalo de valores entre -128 (inclusivo) y 127 (ambos incluidos).

NextDouble()

Devuelve un valor pseudoaleatorio double entre cero (inclusivo) y uno (exclusivo).

NextDouble(Double, Double)

Devuelve un valor pseudoaleatorio elegido double entre el origen especificado (inclusivo) y el enlazado especificado (exclusivo).

NextDouble(Double)

Devuelve un valor elegido double pseudoaleatorio entre cero (inclusivo) y el límite especificado (exclusivo).

NextExponential()

Devuelve un valor no negativo double elegido de forma pseudoaleatoria a partir de una distribución exponencial cuya media es 1.

NextFloat()

Devuelve un valor pseudoaleatorio float entre cero (inclusivo) y uno (exclusivo).

NextFloat(Single, Single)

Devuelve un valor pseudoaleatorio elegido float entre el origen especificado (inclusivo) y el enlazado especificado (exclusivo).

NextFloat(Single)

Devuelve un valor elegido float pseudoaleatorio entre cero (inclusivo) y el límite especificado (exclusivo).

NextGaussian()

Devuelve un double valor pseudoaleatorio elegido de una distribución gaussiana (normal) cuya media es 0 y cuya desviación estándar es 1.

NextGaussian(Double, Double)

Devuelve un double valor pseudoaleatorio elegido de una distribución gaussiana (normal) con una desviación media y estándar especificada por los argumentos.

NextInt()

Devuelve un valor elegido int pseudoaleatorio.

NextInt(Int32, Int32)

Devuelve un valor pseudoaleatorio elegido int entre el origen especificado (inclusivo) y el enlazado especificado (exclusivo).

NextInt(Int32)

Devuelve un valor elegido int pseudoaleatorio entre cero (inclusivo) y el límite especificado (exclusivo).

NextLong()

Devuelve un valor elegido long pseudoaleatorio.

NextLong(Int64, Int64)

Devuelve un valor pseudoaleatorio elegido long entre el origen especificado (inclusivo) y el enlazado especificado (exclusivo).

NextLong(Int64)

Devuelve un valor elegido long pseudoaleatorio entre cero (inclusivo) y el límite especificado (exclusivo).

Of(String)

Devuelve una instancia de RandomGenerator que utiliza el namealgoritmo .

SetJniIdentityHashCode(Int32)

Establezca el valor devuelto por JniIdentityHashCode.

(Heredado de IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

La RandomGenerator interfaz está diseñada para proporcionar un protocolo común para los objetos que generan secuencias pseudoaleatorias aleatorias o (más normalmente) de números (o valores booleanos).

(Heredado de IJavaPeerable)
SetPeerReference(JniObjectReference)

Establezca el valor devuelto por PeerReference.

(Heredado de IJavaPeerable)
UnregisterFromRuntime()

Anule el registro de esta instancia para que el entorno de ejecución no lo devuelva de invocaciones futuras Java.Interop.JniRuntime+JniValueManager.PeekValue .

(Heredado de IJavaPeerable)

Métodos de extensión

Nombre Description
GetJniTypeName(IJavaPeerable)

Obtiene el nombre JNI del tipo de la instancia self.

JavaAs<TResult>(IJavaPeerable)

Intente coerción self para escribir TResult, comprobando que la coerción es válida en el lado de Java.

JavaCast<TResult>(IJavaObject)

Realiza una conversión de tipos comprobados en tiempo de ejecución de Android.

JavaCast<TResult>(IJavaObject)

La RandomGenerator interfaz está diseñada para proporcionar un protocolo común para los objetos que generan secuencias pseudoaleatorias aleatorias o (más normalmente) de números (o valores booleanos).

TryJavaCast<TResult>(IJavaPeerable, TResult)

Intente coerción self para escribir TResult, comprobando que la coerción es válida en el lado de Java.

Se aplica a