Números Aleatorios

4 respostas
H
package javaapplication94;

public class embaralha {

    String[] palavras = {"java"};

    public void Embaralha() {
        String palavraEscolhida = palavras[(int) (Math.random() * palavras.length)];
        int tamanhoDaPalavra = palavraEscolhida.length();

        char[] palavra = new char[tamanhoDaPalavra]; 
        int[] numero = new int[tamanhoDaPalavra];

        int c1 = 0;
        int c = 0;
        boolean verifica = true;
        do {
            for (int b = 0; b < tamanhoDaPalavra; b++) {
                c = 0;
                int numerosAleatorios = (int) (Math.random() * tamanhoDaPalavra + 1);
                for (int d = 0; d < tamanhoDaPalavra; d++) {
                    if (numerosAleatorios == numero[d] || numerosAleatorios == 0) {
                        c = 1;
                        break;
                    }
                }

                if (c != 1) {
                    numero[b] = numerosAleatorios;
                    c1++;
                    System.out.println(numero[b]);
                    if (c1 == tamanhoDaPalavra) {
                        verifica = false;
                        break;
                    }
                }
            }
        } while (verifica == true);
    }
}

Nesse código é escolhido um numero aleatório < que o tamanho do inteiro que guarda o tamanho da variável string escolhida(no caso só tem uma que é “java”) e o resto faz com que o numero aleatório não se repita,executo muitos vezes e funciona normal mais sempre no meio de muitas o numero se repete,alguém mais experiente em logica pode me dizer o que acontece?

4 Respostas

H

sim!

H

quero que os numeros sorteados não se repita

H

int numerosAleatorios = (int) (Math.random() * tamanhoDaPalavra + 1); // sorteia um numero
int[] numero = new int[tamanhoDaPalavra]; //garda o numero sorteado;

e o resto empede que esse numero sorteado se repita

H

apenas lista de 1 a 7, nao é isso. quero que os números aleatórios não se repita ex: 1423 e nao
1132.

Criado 26 de dezembro de 2016
Ultima resposta 26 de dez. de 2016
Respostas 4
Participantes 1