Fiz esta função em java para gerar numeros aleatorios, mas gostaria de saber como ordenar antes de imprimir?
public class Lotomania {
public static void main(String[] args) {
int min = 10;
int max = 60;
for (int i=0; i<5; i++){
int num = (int) (Math.random() * (max - min +1)) + min;
System.out.print(num+ " ");
}
}
}
Ola @Maks_Silva, adicione em uma lista de Integer e use o método sort a classe Collections, ex:
public class Lotomania {
public static void main(String[] args) {
int min = 10;
int max = 60;
List<Integer> listInt = new ArrayList<>();
for (int i = 0; i < 5; i++) {
int num = (int) (Math.random() * (max - min + 1)) + min;
listInt.add(num);
}
Collections.sort(listInt);
listInt.forEach(x -> System.out.println(x));
// ou
listInt.forEach(System.out::println);
}
}
public static void main(String[] args) {
int min = 10;
int max = 99;
List listInt = new ArrayList<>();
for (int i = 0; i < 50; i++) {
int num = (int) (Math.random() * (max - min + 1)) + min;
listInt.add(num);
}
Collections.sort(listInt);
listInt.forEach(x -> System.out.print(x+" "));
// ou
}
passa o número de jogos como parâmetro de um método, ex:
public static void main(String[] args) {
// escolha o numero de jogos...
fire(10);
}
public static void fire(int numberOfGames) {
for (int z = 0; z < numberOfGames; z++) {
int min = 10;
int max = 99;
List listInt = new ArrayList<>();
for (int i = 0; i < 50; i++) {
int num = (int) (Math.random() * (max - min + 1)) + min;
listInt.add(num);
}
Collections.sort(listInt);
listInt.forEach(x -> System.out.print(x + " "));
System.out.println();
}
}
nada manu, qualquer coisa grita ai, uma vez dediquei muito tempo acreditando que poderia acertar os jogos da mega-sena e outros… criando algoritimos que praticamente criavam algoritimos depois eles próprios faziam escolha por probabilidade, apliquei até mesmo algoritimos geneticos, eu considerava tudo, cidades onde os jogos ocorriam, data, etc… informações que vinham daquele arquivo da caixa xls com todos os jogos até hoje, na época eu cheguei a gerar um desenho com sequências que saiam e as que não saiam, gerava um alinhamento númerico que formava um desenho binário então meus algoritimos tentavam encontrar não os numeros que fossem sair mas sim a continuação do desenho, depois convertia tudo de volta para os números prováveis, tinha também uma outra etapa que removia todas as probabilidades de erro para aumentar o accuracy porém não tive sucesso, mas no ano que criei isso foi em 2013 se não me engano apliquei o programa na megasena da virada e certei 3 números e um outro ficou por diferença de 1 digito tipo tinha dado 36 e eu havia gerado o 35, enfim faltou pouco mas acabei desisitindo, destinava muito tempo.
Eu já tinha percebido isso, crie um objeto que representara a linha com a lista de números dentro, ex:
Obs: aquela classe Line não deixa no mesmo arquivo, coloca em um .java próprio dele, acho que da para melhorar a lógica, mas isso já te atende, abraços.
public static void main(String[] args) {
// escolha o numero de jogos...
fire(10);
}
public static void fire(int numberOfGames) {
List<Line> listLine = new ArrayList<>();
for (int z = 0; z < numberOfGames; z++) {
int min = 10;
int max = 99;
// foi criado um objeto para representar a alinha.
Line line = new Line();
for (int i = 0; i < 50; i++) {
int num = random(max, min);
// verificamos se a linha contém o número gerado.
// caso não adiciona
// caso sim decrementa o contador para rodar novamente até acertar.
if (!line.getListInt().contains(num)) {
line.getListInt().add(num);
} else {
i--;
}
}
listLine.add(line);
}
listLine.forEach(l -> {
System.out.println();
Collections.sort(l.getListInt());
l.listInt.forEach(x -> System.out.print(x + " "));
});
}
public static Integer random(int max, int min) {
int num = (int) (Math.random() * (max - min + 1)) + min;
return num;
}
}
class Line {
List listInt = new ArrayList<>();
public List getListInt() {
return listInt;
}
public void setListInt(List listInt) {
this.listInt = listInt;
}
}