¿Cómo aleatorizar el número de aviones enemigos en una guerra de aviones Android usando Java? Por ejemplo, ¡solo pueden aparecer 5 aviones enemigos en una pantalla como máximo!
Puedes utilizar la clase java.util.Random para generar un generador de números aleatorios. Tiene dos formas de constructores, a saber, Random() y Random(long seed). Random () usa la hora actual, es decir, System.currentTimeMillis () como semilla del generador, y Random (long seed) usa la semilla especificada como semilla del generador.
Después de generar el objeto generador de números aleatorios (Random), se pueden obtener diferentes tipos de números aleatorios llamando a diferentes métodos: nextInt(), nextLong(), nextFloat(), nextDouble(), etc.
1>Generar números aleatorios
Aleatorio aleatorio = new Random();
Aleatorio aleatorio = new Random(100);//Especifique el número de semilla 100
Llama aleatoriamente a diferentes métodos para obtener números aleatorios.
Si dos objetos Random usan la misma semilla (por ejemplo, 100) y llaman a la misma función en el mismo orden, sus valores de retorno serán exactamente los mismos.
Por ejemplo, la salida de los dos objetos aleatorios en el siguiente código es exactamente la misma
import java.util.*;
class TestRandom {
public static void main(String[ ] args) {
Aleatorio random1 = new Random(100);
System.out.println(random1.nextInt());
System.out .println(random1.nextFloat());
System.out.println(random1.nextBoolean());
Aleatorio aleatorio2 = nuevo Aleatorio(100 );
System.out.println(random2.nextInt());
System.out.println(random2.nextFloat());
Sistema .out.println(random2 .nextBoolean());
}
}
2>Número aleatorio dentro del rango especificado
El número aleatorio se controla dentro de un cierto Dentro del rango, use el operador de módulo %
import java.util.*;
class TestRandom {
public static void main(String[] args) {
Aleatorio aleatorio = new Random();
for(int i = 0; i < 10;i++) {
System.out.println( Math.abs(random.nextInt())%10);
}
}
}
Los números aleatorios obtenidos son positivos o negativos, use Math.abs para hacer que el rango de datos no sea negativo.
3>Obtenga números aleatorios únicos dentro del rango especificado
import java.util.*;
p>clase TestRandom {
public static void main(String[
] args) {
int[] intRet = new int[6];
int intRd = 0; //Almacenamiento de números aleatorios
int count = 0; ; //Registra el número de números aleatorios generados
int flag = 0; //Si se ha generado la bandera
while(count<6){
Aleatorio rdm = new Random(System.currentTimeMillis());
intRd = Math.abs(rdm.nextInt())%32+1;
for(int i= 0 ;i if(intRet[i]==intRd){ bandera = 1; descanso; }else{ bandera = 0; } } if(bandera==0){< / p> intRet[count] = intRd; count++; } } for(int t= 0 ;t<6;t++){ System.out.println(t+"->"+intRet[t]); } } } Introducción a la clase de números aleatorios de Java Random La clase java.util.Random en la biblioteca de clases de utilidades de Java proporciona métodos para generar varios tipos de números aleatorios. números. Puede generar números aleatorios de tipos como int, long, float, double y Goussian. Esta es también la mayor diferencia entre este y el método Random() en java.lang.Math, que solo genera números aleatorios de tipo doble. Los métodos de la clase Random son muy simples. Tiene sólo dos métodos de construcción y seis métodos ordinarios. Método de construcción: (1)public Random() (2)public Random(semilla larga) Java genera aleatoriamente El número debe tener una semilla de valor base. En el primer método, el valor base es el predeterminado y la hora del sistema se utiliza como semilla. Métodos ordinarios: (1) setSeed vacío sincronizado público (semilla larga) Este método consiste en establecer el valor base de la semilla. (2)public int nextInt() Este método genera un número entero aleatorio. (3)public long nextLong() Este método genera un número aleatorio largo. (4)public float nextFloat() Este método genera un número aleatorio de tipo Float. (5)public double nextDouble() Este método genera un número aleatorio de tipo Doble. (6)doble público sincronizado nextGoussian() Este método genera un número aleatorio goussiano de tipo doble. Ejemplo 2 RandomApp.java. //importar java.lang.*; importar java.util.Random; clase pública RandomApp{ pública estática void main(String args[]){ Random ran1=new Random(); Random ran2=new Random(12345); //Crear Hay dos objetos de clase Aleatorio. System.out.println("El primer conjunto de números aleatorios:"); System.out.println(" Entero:"+ran1.nextInt()); System.out.println(" Long:"+ran1.nextLong()); System.out.println(" Float:"+ran1.nextFloat()); System.out.println(" Doble:"+ran1.nextDouble()); System.out.println(" Gaussiano:"+ran1.nextGaussian()); //Generar varios tipos de números aleatorios System.out.print("El segundo conjunto de números aleatorios:"); for(int i = 0;i<5;i++){ System.out.println(ran2.nextInt()+" "); if(i==2) System.out . println(); //Generar diferentes números aleatorios del mismo tipo. System.out.println(); } } } Aleatorio aleatorio=nuevo Random(); random.nextInt(); También puedes tener nextFloat, etc., hay varios tipos básicos disponibles Math.random también puede be Por ejemplo, si quieres un número aleatorio entre 0-10 Puedes escribirlo así (int)(Math.random() *10); JAVA genera números aleatorios en un rango específico》 《JAVA genera números aleatorios en un rango específico》 Mecanismo de generación: Generar Min - Números entre Max Principio de implementación: Math.round(Math.random()*(Max-Min)+Min) long Temp ; //No se puede configurar en int, se debe configurar en long //Generar números aleatorios de 1000 a 9999 Temp=Math.round(Math.random ()*8999 +1000);