IRandomGenerator Interfaz
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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 |
| 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 |
| JniManagedPeerState |
Estado del mismo nivel administrado. (Heredado de IJavaPeerable) |
| JniObjectReferenceControlBlock |
La |
| 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 |
| Finalized() |
Se llama cuando se ha finalizado la instancia. (Heredado de IJavaPeerable) |
| NextBoolean() |
Devuelve un valor elegido |
| 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 |
| NextDouble(Double, Double) |
Devuelve un valor pseudoaleatorio elegido |
| NextDouble(Double) |
Devuelve un valor elegido |
| NextExponential() |
Devuelve un valor no negativo |
| NextFloat() |
Devuelve un valor pseudoaleatorio |
| NextFloat(Single, Single) |
Devuelve un valor pseudoaleatorio elegido |
| NextFloat(Single) |
Devuelve un valor elegido |
| NextGaussian() |
Devuelve un |
| NextGaussian(Double, Double) |
Devuelve un |
| NextInt() |
Devuelve un valor elegido |
| NextInt(Int32, Int32) |
Devuelve un valor pseudoaleatorio elegido |
| NextInt(Int32) |
Devuelve un valor elegido |
| NextLong() |
Devuelve un valor elegido |
| NextLong(Int64, Int64) |
Devuelve un valor pseudoaleatorio elegido |
| NextLong(Int64) |
Devuelve un valor elegido |
| Of(String) |
Devuelve una instancia de |
| SetJniIdentityHashCode(Int32) |
Establezca el valor devuelto por |
| SetJniManagedPeerState(JniManagedPeerStates) |
La |
| SetPeerReference(JniObjectReference) |
Establezca el valor devuelto por |
| 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 |
| JavaAs<TResult>(IJavaPeerable) |
Intente coerción |
| JavaCast<TResult>(IJavaObject) |
Realiza una conversión de tipos comprobados en tiempo de ejecución de Android. |
| JavaCast<TResult>(IJavaObject) |
La |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Intente coerción |