Gerar números randomicos em java

9 respostas
wampactimus

Boa tarde a todos do forum,

será que alguem poderia me dar uma ajuda, por gentiliza…=)

Eu preciso gerar números randomicos na linguagem java e armazena-los em um vetor.

obs: os números a serem gerados tem que ser de 1 à 100, e o vetor deve armazenar esses 100 números
que devem ser inteiros.

como faço isso?

Obrigado pela ajuda.

9 Respostas

drsmachado

Dá uma olhada na classe Math do pacote java.lang e especificamente no método random().

Eric_Yuzo

Pesquise sobre o método Math.random()

Cheguei atrasado. Mas o caminho é esse que o drsmachado citou.

JM4X

wampactimus:
Boa tarde a todos do forum,

será que alguem poderia me dar uma ajuda, por gentiliza…=)

Eu preciso gerar números randomicos na linguagem java e armazena-los em um vetor.

obs: os números a serem gerados tem que ser de 1 à 100, e o vetor deve armazenar esses 100 números
que devem ser inteiros.

como faço isso?

Obrigado pela ajuda.

Olá amigo! veja o código:

int[] vetor = new int[100]; //cria o vetor com 100 posições
        for(int i = 0; i < vetor.length; i++) {
            int rnd = (int) (1 + Math.random() * 100) // gera um valor randomico de 0.0 ate menores q 1.0, multiplica por 100 e soma 1. Convertendo o resultado para int.
            vetor[i] = rnd; // atribui o valor a cada indice do vetor
        }

        for(int i = 0; i < vetor.length; i++) {
            System.out.println(vetor[i]);
        }

Espero que ajude!

[]'s

douglaskd

é mais ou menos isso, agora gera um novo hashset que não permite números repetidos(caso queira) e passei o vetor como parâmetro

e ao invés do for use um while.

enquanto o tamanho do vetor não chegar a 100 continue adicionando no Hashset, e convertendo para vetor.

public class RandomicosRepetidos {  
        
     
       public static void main(String[] args){  
       
    	   int [] vetor = new int[100];
    	   
    	   for(int i=0;i<100;i++){
    		   vetor[i] = (int) (1+ (Math.random()*100));
    	   }
    	   for(int i=0;i<100;i++){
    		   System.out.println(vetor[i]);
    	   }
    	  
     
   }  
}
Naruffy

Uma alternativa do Math.random, é a classe Random do pacote java.util , que eu particularmente prefiro

Random r = new Random();
        int i = r.nextInt(100);

[]s

wampactimus

:smiley: :smiley: :smiley: :smiley: :smiley:

Valeeeeuuuu mesmo gente…fico muito agradecido

é por isso que eu gosto do GUJ… :smiley:

douglaskd

consegui resolver o problema dos números repetidos..se precisar, só que usando ArrayList

import java.util.ArrayList;

    public class Randomicos{  
           
       public static void main(String[] args){  
       
    	   ArrayList<Integer> lista = new ArrayList<Integer>();
    	   
    	   while(lista.size() < 100){
    		   Integer numeroRandomico = (int) (1+ (Math.random()*100));
    		   if(!lista.contains(numeroRandomico)){
    		   lista.add(numeroRandomico);
    		   }
    	   }
    		   System.out.println(lista);
    	   }

   }

tentei fazer com HashSet, mais ele fica ordenando ai é ruim.

andersonrc

Fiz utilizando a interface Map, com o HashMap. O TreeSet é o que mantém as chaves ordenadas. Não sei pq com o Hash, a maioria dos números ficam ordenados, não são todos.

import java.util.HashSet;
import java.util.Set;

public class NumerosAleatorios {

	public static void main(String[] args) {

		Set<Integer> numeros = new HashSet<Integer>();  
		while (numeros.size() < 100) {  
			numeros.add(1 + (int) (Math.random() * 100));        
		} 

		System.out.println("Números" + numeros);

	}

}
pmlm

Mais simples:

ArrayList<Integer> myList = new ArrayList<Integer>();
        for (int i = 1; i <= 100; i++) {
            myList.add(i);
        }
        Collections.shuffle(myList);
Criado 23 de novembro de 2010
Ultima resposta 24 de nov. de 2010
Respostas 9
Participantes 8