En el siguiente ejemplo tenemos una baraja que consta de 10 cartas que vamos a mezclar aleatoriamente para luego mostrarlo en pantalla.
Codigo:
//Números aleatorios sin repetición
package aleatorisinrepeticion;
import java.util.Stack;
public class AleatoriSinRepeticion {
public static void main(String[] args) {
int pos;
int nCartas = 10;
Stack < Integer > pCartas = new Stack < Integer > ();
for (int i = 0; i < nCartas ; i++) {
pos = (int) Math.floor(Math.random() * nCartas );
while (pCartas.contains(pos)) {
pos = (int) Math.floor(Math.random() * nCartas );
}
pCartas.push(pos);
}
System.out.println("Núm. aleatorios sin repetición:");
System.out.println(pCartas.toString());
}
}
Resultado:
run:
Núm. aleatorios sin repetición:
[2, 8, 5, 7, 6, 3, 0, 9, 4, 1]
BUILD SUCCESSFUL (total time: 0 seconds)
Una forma sencilla y rápida de aprender JAVA, observando y deduciendo cómo se comporta el lenguaje a través de ejemplos prácticos.
Archivo del blog
Suscribirse a:
Enviar comentarios (Atom)
Con la tecnología de Blogger.
No has declarado ni inicializado pcartas ¿¿no???
ResponderEliminaro soy yo que ya no veo tres en un burro.
Tenias razón, ya lo he modificado. Gracias por el aviso.
Eliminarmuy buen codigo
ResponderEliminarEste código es espectacular. Como puedo hacer para que no salga el numero cero, por ej . de 1 a 10.
ResponderEliminarPara que sea de 1 a 10 sería:
EliminarpCartas.push(pos + 1);
Perfecto. Muchas Gracias
Eliminarpara ordenarlas de menor a mayor como se haria?
ResponderEliminarSeria algo parecido a eso:
Eliminarpublic double[][] getOrdenacio(double[][] xy) {
double [][] t = xy;
//Reordenar de menor a major
int cont = 0;
double aux = 0;
while (cont < t[0].length) {
for (int i = 0; i < t[0].length - 1; i++) {
if (t[1][i] > t[1][i + 1]) {
aux = t[1][i];
t[1][i] = t[1][i + 1];
t[1][i + 1] = aux;
aux = t[0][i];
t[0][i] = t[0][i + 1];
t[0][i + 1] = aux;
cont = 1;
}
cont++;
}
}
return t;
}
y ordenarlos en orden de 4 por cuatro es decir si son 16 espacios, es decir al estilo de una matriz, te agradeceriia que me respondieras pronto
ResponderEliminarUna vez estén ordenados con el código anterior seguir con el siguiente ejemplo:
Eliminarhttp://censorcosmico.blogspot.com.es/2013/01/pasar-vector-matriz.html
para Generar números aleatorios con repetición cual seria la modificacion gracias muy buen codigo
ResponderEliminarDe este mismo código quitando el while xd
EliminarPublico mi codigo, como lo novato que soy:
ResponderEliminarimport java.util.*;
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList ganadores = new ArrayList();
int concursantes=100; //RANGO DE NUMEROS AL TIRAR AL AZAR 0-100 por ejemplo
int aleatorios = 3; //CUANTOS RESULTADOS QUIERES ASIGNAR
int random;
for (int i = 0; i < aleatorios; i++) {
random = (int) Math.floor(Math.random() * concursantes + 1);
while (ganadores.contains(random)) {
random = (int) Math.floor(Math.random() * concursantes + 1);
}
ganadores.add(random);
System.out.println((i + 1)+".-" + " LUGAR CODIGO GANADOR: " +random);
}
}
}
Buenos días como están, estoy empezando en este mundo de lo que es la programación en java y me preguntaba si ese ejemplo se le puede aplicar el método de ordenamiento por selección, de ante manos gracias por el ejemplo es muy bueno.
ResponderEliminarSaludos