Random

8 respostas
programaçãojava
V

Como imprimir 7 números de 5 a 30 utilizando o Random, depois mostrá-lo para o usuário ?

8 Respostas

4

Montei uns métodos aqui e comentei o que cada coisa relevante faz, como pode perceber, ele gera 10 números e os números variam de 0 a 50, basta agora você alterar de acordo com sua necessidade, se tiver dúvidas entre em contato via Skype (descrito no meu perfil).

public ClasseTeste(){ //método construtor
    int[] numeros = gerarNumeros(); // chama o metodo gerarNumero()
    Arrays.sort(numeros); // ordena os numeros
    jLabel1.setText(Arrays.toString(numeros)); // imprime em um Label
}

private int[] gerarNumeros() { // metodo que gera os 10 numeros
    Random random = new Random(); 
    int[] sorteio = new int[10]; // define10 numeros
    for (int i = 0; i < sorteio.length; i++) {
        boolean novoNumero = false; 
        int numero = -1;
        while (!novoNumero) { // gera um numero até encontrar um diferente
            numero = random.nextInt(50); // verifica do 0 ao 50
            novoNumero = verificarExistencia(numero, sorteio); // chama o metodo verifica existencia
        }
        sorteio[i] = numero;
    }
    return sorteio;

}

private boolean verificarExistencia(int numero, int[] lista) { // metodo para verificar se o numero ja existe na lista
    for (int i = 0; i < lista.length; i++) {
        if (numero == lista[i]) {
            return false;
        }
    }
    return true;
}
V

Rapaz vou te envia o código que eu estou tentando fazer, ele tem que imprimir 7 distancia aleatória para cada cidade, e meio complicado não estou conseguindo fazer, tem que imprimir as 7 distancias e depois mostrar para o usuário qual o caminho mais rápido é quantos irá gastar até chegar a cidade desejada, e a distancia minima entre as cidades e 5 e a máxima 30.

package Trabalho.Inf.B;

import javax.swing.JOptionPane;

import java.util.ArrayList;

import java.util.Random;
public class Principal {

public static void main(String[] args){

String City, nCidade, nHabitantes, prefeito, vizinhos;

int x = 0, cont =1;

int y = 9;

ArrayList  cd = new ArrayList <>();

Random random = new Random ();

int j = random.nextInt(30);

while (x<5){

j=random.nextInt();

}
String nomes = "";
        String cidadeBuscada = "NAO FOI ENCONTRADA";

        do {
        City = JOptionPane.showInputDialog(null,"|ESCOLHA A OPÇÃO DESEJADA|" 
		+ "\n1) CADASTRAR CIDADE"
		+ "\n2) MOSTRA CIDADES CADASTRADAS"  
		+ "\n3) PESQUISAR CIDADE"
		+ "\n4) MELHOR ROTA"
		+ "\n5) DIGITE ESC PARA SAIR","|ROTA FELIZ|", JOptionPane.PLAIN_MESSAGE);

        do {
            if(City.toUpperCase().equals("1")){
                Estado entidade = new Estado();
                nCidade = JOptionPane.showInputDialog(null,"NOME DA CIDADE: ","CADASTRO", JOptionPane.PLAIN_MESSAGE);
                entidade.setnCidade(nCidade);
                nHabitantes = JOptionPane.showInputDialog(null,"QUANTIDADE DE HABITANTES: ","CADASTRO", JOptionPane.PLAIN_MESSAGE);
                entidade.setnHabitantes(Integer.parseInt(nHabitantes));
                prefeito = JOptionPane.showInputDialog(null,"NOME DO PREFEITO: ","CADASTRO", JOptionPane.PLAIN_MESSAGE);
                entidade.setPrefeito(prefeito);
                vizinhos = JOptionPane.showInputDialog(null,"VIZINHOS: ","CADASTRO", JOptionPane.PLAIN_MESSAGE);
                entidade.setVizinhos(vizinhos);
                cd.add(entidade);
                x = Integer.parseInt(JOptionPane.showInputDialog(null,"DIGITE QUALQUER TECLA PARA SAIR DO PROGRAMA OU \n0 PARA CONTINUAR CADASTRANDO"));
            cont++;
            }        
        }while ((x==0)&&(cont<=2));


        if(City.toUpperCase().equals("2")){

            for(Estado nome : cd){
	nomes += nome+"\n";
            }
            
                JOptionPane.showMessageDialog(null, nomes, "TODAS AS CIDADES", JOptionPane.INFORMATION_MESSAGE);
        }



        if(City.toUpperCase().equals("3")){
    String busca = JOptionPane.showInputDialog(null,"DIGITE A CIDADE DESEJADA: ","PESQUISAR CIDADE", JOptionPane.PLAIN_MESSAGE);
            for (int i = 0; i < cd.size(); i++) {
            if(cd.get(i).getnCidade().equals(busca)) {
            cidadeBuscada = (
            cd.get(i).getnCidade()+ "\n" +
            cd.get(i).getnHabitantes()+ "\n" +
            cd.get(i).getPrefeito()+ "\n" +
            cd.get(i).getVizinhos()+ "\n");
            }

        JOptionPane.showMessageDialog(null, cidadeBuscada, "CIDADE PESQUISADA", JOptionPane.INFORMATION_MESSAGE);
            }
        }

    if(City.toUpperCase().equals("4")){
        String rota = JOptionPane.showInputDialog(null,"DIGITE A CIDADE EM QUE ESTÁ: ","MELHOR ROTA", JOptionPane.PLAIN_MESSAGE);
            for (int i = 0; i < cd.size(); i++) {

            }


    }

        }while (y==9);

}

}

G

Bom Dia, primeiramente gostaria de saber se você usa java 8. Se esse for o caso você pode fazer simplesmente isso:
int[] array = new Random().ints(7, 5, 3).toArray();

Você tera que importar “java.util.Random;”

Espero ter ajudado, caso tenha interesse :
https://docs.oracle.com/javase/8/docs/api/java/util/Random.html

V

teria como dar um exemplo com o meu codigo ?

import javax.swing.JOptionPane;

import java.util.ArrayList;

import java.util.Random;
public class Principal {

public static void main(String[] args){

String City, nCidade, nHabitantes, prefeito, vizinhos;

int x = 0, cont =1;

int y = 9;

ArrayList cd = new ArrayList <>();

Random random = new Random ();

int j = random.nextInt(30);

while (x<5){

j=random.nextInt();

}
String nomes = "";
    String cidadeBuscada = "NAO FOI ENCONTRADA";

    do {
    City = JOptionPane.showInputDialog(null,"|ESCOLHA A OPÇÃO DESEJADA|" 
	+ "\n1) CADASTRAR CIDADE"
	+ "\n2) MOSTRA CIDADES CADASTRADAS"  
	+ "\n3) PESQUISAR CIDADE"
	+ "\n4) MELHOR ROTA"
	+ "\n5) DIGITE ESC PARA SAIR","|ROTA FELIZ|", JOptionPane.PLAIN_MESSAGE);

    do {
        if(City.toUpperCase().equals("1")){
            Estado entidade = new Estado();
            nCidade = JOptionPane.showInputDialog(null,"NOME DA CIDADE: ","CADASTRO", JOptionPane.PLAIN_MESSAGE);
            entidade.setnCidade(nCidade);
            nHabitantes = JOptionPane.showInputDialog(null,"QUANTIDADE DE HABITANTES: ","CADASTRO", JOptionPane.PLAIN_MESSAGE);
            entidade.setnHabitantes(Integer.parseInt(nHabitantes));
            prefeito = JOptionPane.showInputDialog(null,"NOME DO PREFEITO: ","CADASTRO", JOptionPane.PLAIN_MESSAGE);
            entidade.setPrefeito(prefeito);
            vizinhos = JOptionPane.showInputDialog(null,"VIZINHOS: ","CADASTRO", JOptionPane.PLAIN_MESSAGE);
            entidade.setVizinhos(vizinhos);
            cd.add(entidade);
            x = Integer.parseInt(JOptionPane.showInputDialog(null,"DIGITE QUALQUER TECLA PARA SAIR DO PROGRAMA OU \n0 PARA CONTINUAR CADASTRANDO"));
        cont++;
        }        
    }while ((x==0)&&(cont<=2));


    if(City.toUpperCase().equals("2")){

        for(Estado nome : cd){
nomes += nome+"\n";
        }
        
            JOptionPane.showMessageDialog(null, nomes, "TODAS AS CIDADES", JOptionPane.INFORMATION_MESSAGE);
    }



    if(City.toUpperCase().equals("3")){
String busca = JOptionPane.showInputDialog(null,"DIGITE A CIDADE DESEJADA: ","PESQUISAR CIDADE", JOptionPane.PLAIN_MESSAGE);
        for (int i = 0; i < cd.size(); i++) {
        if(cd.get(i).getnCidade().equals(busca)) {
        cidadeBuscada = (
        cd.get(i).getnCidade()+ "\n" +
        cd.get(i).getnHabitantes()+ "\n" +
        cd.get(i).getPrefeito()+ "\n" +
        cd.get(i).getVizinhos()+ "\n");
        }

    JOptionPane.showMessageDialog(null, cidadeBuscada, "CIDADE PESQUISADA", JOptionPane.INFORMATION_MESSAGE);
        }
    }

if(City.toUpperCase().equals("4")){
    String rota = JOptionPane.showInputDialog(null,"DIGITE A CIDADE EM QUE ESTÁ: ","MELHOR ROTA", JOptionPane.PLAIN_MESSAGE);
        for (int i = 0; i < cd.size(); i++) {

        }


}

    }while (y==9);

}
}

G

Boa tarde, algumas dúvidas:
As distâncias são entre as cidades?
Não ví você chamando as distâncias em nenhum lugar do código.
O programa deve escolher a menor distância?
Cada vez que você imprime a cidade devem ser impressos juntos os 7 valores?
Esses dados 'nHabitantes, prefeitos" são irrelevantes para sua dúvida certo?

[]s

R

Primeiramente, em que variável você está armazenando as distâncias entre uma cidade e outra ? Crie um vetor para armazenar as distâncias de acordo com o número de cidades fronteiriças, e preencha com os valores informados pelo random.nextInt() em um for de 7 posições

V
Distancia entre as cidades;

O programa irá mostrar para o usuário a menor distancia em que o usuário irá passar até chegar a cidade desejada, é também irá mostrar as cidades por onde ele passou para chegar até a cidade escolhida;

Sim todas as vezes que imprimir as cidades o programa dará 7 valores diferentes para cada cidade;

Sim, o que vai precisar vai ser o nome da cidade e a distancia entre elas.
V

poderia me dar um exemplo?

Criado 29 de maio de 2017
Ultima resposta 29 de mai. de 2017
Respostas 8
Participantes 4