IRandomGenerator Interface

Definição

A RandomGenerator interface foi projetada para fornecer um protocolo comum para objetos que geram sequências de pseudorandom aleatórias ou (mais tipicamente) de números (ou valores boolianos).

[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
Implementações

Comentários

A RandomGenerator interface foi projetada para fornecer um protocolo comum para objetos que geram sequências de pseudorandom aleatórias ou (mais tipicamente) de números (ou valores boolianos). Essa sequência pode ser obtida invocando repetidamente um método que retorna um único valor pseudorandomly escolhido ou invocando um método que retorna um fluxo de valores pseudorandomly escolhidos.

Idealmente, considerando um intervalo de valores especificado implicitamente ou explicitamente, cada valor seria escolhido de forma independente e uniforme desse intervalo. Na prática, pode-se ter que se contentar com alguma aproximação com a independência e a uniformidade.

No caso de int, longe boolean valores, se não houver nenhuma especificação explícita de intervalo, o intervalo inclui todos os valores possíveis do tipo. No caso de float valores e valoresdouble, primeiro um valor é sempre escolhido uniformemente do conjunto de 2<valoressup> w</sup> entre 0,0 (inclusivo) e 1,0 (exclusivo), em que w é 23 para float valores e 52 para double valores, de modo que os valores adjacentes diferem por 2<sup>&menos;w</sup> (observe que esse conjunto é um subconjunto do conjunto de todos os valores de ponto flutuante representáveis entre 0,0 (inclusivo) e 1,0 (exclusivo); em seguida, se um intervalo explícito foi especificado, o número escolhido é computacionalmente dimensionado e traduzido de modo a parecer ter sido escolhido aproximadamente uniformemente desse intervalo explícito.

Cada método que retorna um fluxo produz um fluxo de valores, cada um dos quais é escolhido da mesma maneira que para um método que retorna um único valor pseudorandomly escolhido. Por exemplo, se r implementado RandomGenerator, a chamada r.ints(100) de método retornará um fluxo de 100 int valores. Estes não são necessariamente os mesmos valores que teriam sido retornados se, em vez disso r.nextInt() , tivessem sido chamados 100 vezes; tudo o que é garantido é que cada valor no fluxo é escolhido de maneira pseudorandom semelhante do mesmo intervalo.

Cada objeto que implementa a RandomGenerator interface usando um algoritmo pseudorandom é considerado para conter uma quantidade finita de estado. O uso desse objeto para gerar um valor pseudorandomly escolhido altera seu estado computando um novo estado como uma função do estado atual, sem referência a nenhuma informação diferente do estado atual. O número de estados possíveis distintos de tal objeto é chamado de seu período. (Algumas implementações da RandomGenerator interface podem ser verdadeiramente aleatórias em vez de pseudorandom, por exemplo, dependendo do comportamento estatístico de um objeto físico para derivar valores escolhidos. Essas implementações não têm um período fixo.)

Como regra, os objetos que implementam a RandomGenerator interface não precisam ser thread-safe. É recomendável que aplicativos multithreaded usem ThreadLocalRandom geradores de número pseudorandom ou (preferencialmente) que implementem a interface ou JumpableGenerator a SplittableGenerator interface.

Os objetos que implementam RandomGenerator normalmente não são criptograficamente seguros. Considere, em vez disso, usar SecureRandom para obter um gerador de número pseudorandom criptograficamente seguro para uso por aplicativos sensíveis à segurança. No entanto, observe que isso SecureRandom implementa a RandomGenerator interface para que as instâncias possam SecureRandom ser usadas de forma intercambiável com outros tipos de geradores pseudorandom em aplicativos que não exigem um gerador seguro.

A menos que explicitamente declarado de outra forma, o uso de nulo para qualquer argumento de método causará um NullPointerException.

Adicionado em 17.

Java documentação para java.util.random.RandomGenerator.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usadas de acordo com os termos descritos na Licença de Atribuição Creative Commons 2.5.

Propriedades

Nome Description
Default

Retorna uma RandomGenerator reunião com o requisito mínimo de ter um algoritmo cujos bits de estado são maiores ou iguais a 64.

Handle

Obtém o valor JNI do objeto Android subjacente.

(Herdado de IJavaObject)
IsDeprecated

Retornará true se a implementação de RandomGenerator (algoritmo) tiver sido marcada para substituição.

JniIdentityHashCode

Retorna o valor da java.lang.System.identityHashCode() instância encapsulada.

(Herdado de IJavaPeerable)
JniManagedPeerState

Estado do par gerenciado.

(Herdado de IJavaPeerable)
JniPeerMembers

Acesso ao membro e suporte à invocação.

(Herdado de IJavaPeerable)
PeerReference

Retorna uma JniObjectReference das instâncias de objeto Java encapsuladas.

(Herdado de IJavaPeerable)

Métodos

Nome Description
Disposed()

Chamado quando a instância foi descartada.

(Herdado de IJavaPeerable)
DisposeUnlessReferenced()

Se não houver referências pendentes a essa instância, então chamará Dispose(); caso contrário, não fará nada.

(Herdado de IJavaPeerable)
Finalized()

Chamado quando a instância foi finalizada.

(Herdado de IJavaPeerable)
NextBoolean()

Retorna um valor pseudorandomly escolhido boolean .

NextBytes(Byte[])

Preenche uma matriz de bytes fornecida pelo usuário com valores de bytes gerados pseudorandomicamente escolhidos uniformemente do intervalo de valores entre -128 (inclusivo) e 127 (inclusivo).

NextDouble()

Retorna um valor pseudorandom double entre zero (inclusivo) e um (exclusivo).

NextDouble(Double, Double)

Retorna um valor pseudorandomly escolhido double entre a origem especificada (inclusive) e o limite especificado (exclusivo).

NextDouble(Double)

Retorna um valor pseudorandomly escolhido double entre zero (inclusivo) e o limite especificado (exclusivo).

NextExponential()

Retorna um valor nãonegativo double pseudorandomly escolhido de uma distribuição exponencial cuja média é 1.

NextFloat()

Retorna um valor pseudorandom float entre zero (inclusivo) e um (exclusivo).

NextFloat(Single, Single)

Retorna um valor pseudorandomly escolhido float entre a origem especificada (inclusive) e o limite especificado (exclusivo).

NextFloat(Single)

Retorna um valor pseudorandomly escolhido float entre zero (inclusivo) e o limite especificado (exclusivo).

NextGaussian()

Retorna um double valor pseudorandomly escolhido de uma distribuição gaussiana (normal) cuja média é 0 e cujo desvio padrão é 1.

NextGaussian(Double, Double)

Retorna um double valor pseudorandomly escolhido de uma distribuição gaussiana (normal) com um desvio médio e padrão especificado pelos argumentos.

NextInt()

Retorna um valor pseudorandomly escolhido int .

NextInt(Int32, Int32)

Retorna um valor pseudorandomly escolhido int entre a origem especificada (inclusive) e o limite especificado (exclusivo).

NextInt(Int32)

Retorna um valor pseudorandomly escolhido int entre zero (inclusivo) e o limite especificado (exclusivo).

NextLong()

Retorna um valor pseudorandomly escolhido long .

NextLong(Int64, Int64)

Retorna um valor pseudorandomly escolhido long entre a origem especificada (inclusive) e o limite especificado (exclusivo).

NextLong(Int64)

Retorna um valor pseudorandomly escolhido long entre zero (inclusivo) e o limite especificado (exclusivo).

Of(String)

Retorna uma instância que RandomGenerator utiliza o namealgoritmo.

SetJniIdentityHashCode(Int32)

Defina o valor retornado por JniIdentityHashCode.

(Herdado de IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

A RandomGenerator interface foi projetada para fornecer um protocolo comum para objetos que geram sequências de pseudorandom aleatórias ou (mais tipicamente) de números (ou valores boolianos).

(Herdado de IJavaPeerable)
SetPeerReference(JniObjectReference)

Defina o valor retornado por PeerReference.

(Herdado de IJavaPeerable)
UnregisterFromRuntime()

Cancele o registro dessa instância para que o runtime não a retorne de invocações futuras Java.Interop.JniRuntime+JniValueManager.PeekValue .

(Herdado de IJavaPeerable)

Métodos de Extensão

Nome Description
GetJniTypeName(IJavaPeerable)

Obtém o nome JNI do tipo da instância self.

JavaAs<TResult>(IJavaPeerable)

Tente coagir a digitar selfTResult, verificando se a coerção é válida no lado Java.

JavaCast<TResult>(IJavaObject)

Executa uma conversão de tipo verificada pelo tempo de execução do Android.

JavaCast<TResult>(IJavaObject)

A RandomGenerator interface foi projetada para fornecer um protocolo comum para objetos que geram sequências de pseudorandom aleatórias ou (mais tipicamente) de números (ou valores boolianos).

TryJavaCast<TResult>(IJavaPeerable, TResult)

Tente coagir a digitar selfTResult, verificando se a coerção é válida no lado Java.

Aplica-se a