IRandomGenerator Interface
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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 |
| 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 |
| 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á |
| Finalized() |
Chamado quando a instância foi finalizada. (Herdado de IJavaPeerable) |
| NextBoolean() |
Retorna um valor pseudorandomly escolhido |
| 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 |
| NextDouble(Double, Double) |
Retorna um valor pseudorandomly escolhido |
| NextDouble(Double) |
Retorna um valor pseudorandomly escolhido |
| NextExponential() |
Retorna um valor nãonegativo |
| NextFloat() |
Retorna um valor pseudorandom |
| NextFloat(Single, Single) |
Retorna um valor pseudorandomly escolhido |
| NextFloat(Single) |
Retorna um valor pseudorandomly escolhido |
| NextGaussian() |
Retorna um |
| NextGaussian(Double, Double) |
Retorna um |
| NextInt() |
Retorna um valor pseudorandomly escolhido |
| NextInt(Int32, Int32) |
Retorna um valor pseudorandomly escolhido |
| NextInt(Int32) |
Retorna um valor pseudorandomly escolhido |
| NextLong() |
Retorna um valor pseudorandomly escolhido |
| NextLong(Int64, Int64) |
Retorna um valor pseudorandomly escolhido |
| NextLong(Int64) |
Retorna um valor pseudorandomly escolhido |
| Of(String) |
Retorna uma instância que |
| SetJniIdentityHashCode(Int32) |
Defina o valor retornado por |
| SetJniManagedPeerState(JniManagedPeerStates) |
A |
| SetPeerReference(JniObjectReference) |
Defina o valor retornado por |
| 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 |
| JavaAs<TResult>(IJavaPeerable) |
Tente coagir a digitar |
| JavaCast<TResult>(IJavaObject) |
Executa uma conversão de tipo verificada pelo tempo de execução do Android. |
| JavaCast<TResult>(IJavaObject) |
A |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Tente coagir a digitar |