¿Te gustaría que este contenido siga siendo gratuito?, puedes apoyar al canal de las siguientes maneras: 1. Donaciones: www.paypal.me/LaGeekipedia 2. Desactivando Adblock y Adblock Plus en RUclips. 3. Compartiendo los vídeos del canal en foros y redes sociales. Cualquier opción es de gran ayuda. ¡Muchas gracias!
La cosa funciona asi: Al hacer (Math.random() * 100) te genera numeros aleatorios entre 0-99 al añadirle el +1 se generar del 1-100. Si por ejemplo queremos numeros aleatorios que vayan del 30-40 hacemos esto: (Math.random() * 10 + 30) multiplicamos por la cantidad de numeros que se pueden obtener (40-30 = 10) y sumamos por el numero mínimo que queremos en este caso 30.
Aquí no estarías incluyendo el 40. Es multiplicarlo por la diferencia + 1 + el mínimo. Ejemplo: int random = (int) (Math.random() * ((40-30)+1)+ 30 ); o que es lo mismo: int random = (int) (Math.random() * 11+30); Espero que sirva de ayuda! ;)
Al multiplocar por 100 genera creo valores del 0 al 99. El 100 no lo incluye. Si multiplicas por 100 y le sumas 1 creo que te genera números aleatorios entre el 1 y el 100, incluyendo el 100. Ahora mi pregunta: ¿Cómo hago si quiero generar valores aleatorios entre 5 y 15, entre 20 y 30, entre 254 y 308?. Debe ser más complejo eso. ¿Verdad?
Lo mismo me pregunto... si quisieta hacer un juego con dados, dos dados, que muestren dos numeros distintos del 1 al 6... El primer dado muestra el numero tal, el segundo dado muestra este otro...
Nicolás Matías Funtalas pues es facil de hacer... Seria algo asi (si es de dados): Random r = new Random () Dado=r.nextInt (6)+1; Debido que el random 6 seria en un rango de 0 a 5 y si le sumamos unos nos da un 1 al 6... si el ramdom da un 0 por la suma daria un 1 y asi sucesivamente Si es entre 15 y 20 seria Res=r.nextInt (6)+15; Para cuando de un numero por ejemplo 0 entomces res vale 15 si da un 5 entonces res vale 20 y asi
Pues un método seria sumarle el numero del que quiere partir, y en el random poner el rango que desea poner aleatorio, algo así, de 40 a 50: aleatorio=(int)(Math.random()*10)+40;
@@juliandaniel356 no recuerdo bien cómo funciona, pero... El " *11" indica que el rango de números aleatorios es desde 0 hasta 10 Luego a la derecha le sumé 10, entonces el número que sale sería un número aleatorio desde 0 hasta 10 sumado con 10 El menor rango posible es 0, y el mayor es 10, y si le sumamos 10 a ese rango cambiaría de 10 a 20
consulta: esta forma también me resulta pero sin el casting y agregando el valor dentro de las () Es valido o hay algún error? public class Clase_tres { public static void main(String[] args){ Random r = new Random(); int n = r.nextInt(100); System.out.println(n); } }
¡Hola!, si el programa arroja el resultado esperado no hay ningún problema, ya que la lógica de cada programador es diferente y por tal motivo es valido y aceptable que puedas modificarlo a tu propio estilo. Saludos.
Hola mateo, creo que este código te puede servir de practica, si queres podes cambiar los if else por switch case. Hasta inclusive sacar las variables de tipo String y colocar los nombres en los sout, pero te recomiendo dejar esa parte así como esta, mas que nada por si quieres colocar un mismo nombre dentro de varias opciones, para que su probabilidad de aparecer sea mas grande o chica, y evitar el copy paste eterno jajaj. public class ClasePractica { public static void main(String[] args) {
//Nombres aleatorios int nombre = 0; String uno = "Tomas", dos = "Roberto", tres = "Raul", cuatro = "Ernesto", cinco = "Alfonso";
@@Teo-dw3ti Esta es igual a la que te paso Sulivan, pero de una manera para escribir menos codigo.. En RandomNombres siempre va a devolver un numero que sea menor o igual al largo del arreglo de nombres.. Y despues solo devuelve lo que hay en la posicion random que toque del arreglo.. public static void main(String[] args) { // TODO Auto-generated method stub String[]ListaNombres= {"lucas", "diego","matias", "fernando", "alejandro2"};
int RandomNombres= (int) ( Math.random()* ListaNombres.length-1);
les dejo mi ruletita import java.util.Scanner; public class ejercicio { public static void main(String args[]) { int ganador = 0, apuesta = 0; Scanner entrada = new Scanner(System.in); System.out.println("Bienvenido, ingrese su numero favorito"); apuesta = entrada.nextInt(); ganador = (int) (Math.random() * 36); if (apuesta == ganador) { System.out.println("Felicidades has ganado!"); } else { System.out.println("El numero ganador es " + ganador + " mejor suerte para la proxima!"); } } }
Muy bueno! Sólo una pequeña corrección. La ruleta tiene 37 números es decir del 0 al 36, por lo que te está faltando incluir el número 36. Tu ruleta da valores de 0 a 35. El pobre cristiano que apuesta al 36 nunca va a ganar jaja. Para que devuelva valores de 0 a 36 ténes que poner: ganador = (int) (Math.random() * 37 + 1);
Hola, puedes hacer un do / while sencillo condicionando a la variable aleatorio a que se vuelva a generar hasta que sea par. int aleatorio; do{ aleatorio = (int) (Math.random() * 50);
}while(aleatorio%2!=0); // Hacer el ciclo una y otra vez mientras que el numero aleatorio sea impar, asi se vuelve a generar hasta que sea par.
Haces el rango de números (por ejemplo, 5 preguntas, entonces pones que el rango sea de 0 a 5) Apartir de ahí haces un switch, en caso de ser X número, imprimirá la pregunta de dicho número, o algo así se me ocurre, espero haberte ayudado.
los numero aleatorios salen del 0 al 100, ahora entiendo porque ponen +1, si quiero del 1 al 100 si es necesario poner el +1 y y Math.random la multiplicaria hasta el 99
Yo tengo una duda amigo es que soy principiante y me pidieron hacer un programa igual, adivinar el numero aleatorio, pero me pide que cuando ingrese el numero que creo que es y no coincida con el numero dado me diga si quiero intentar otra vez o no, si en dado caso, lo intento de nuevo, debera seguir el juego y en caso contrario cerrarse, el problema es que no se como hacer para tener la opcion Si y No y como continuar la secuencia del juego..
te comparto mi codigo, yo necesitaba que me generara un numero de 8 cifras, así que coloque de 10000000 hasta 99999999, solo debes cambiar los datos a los que necesites y listo Random ramdon = new Random(); int identificacion;
identificacion=(ramdon.nextInt(99999999-10000000+1)+10000000 ); recuerda importar la liberias de java.util.Random; en la parte de arriba espero haberte ayudado salu2
@@Cristiansil1 lo correcto es como dijo nicolas, el 5 el seis es el numero maximo que tendra el rango, por mas que le sumes 1 nunca saldria 6, ya lo probe varias veces
@@wadeowen8325 //La logica es, random genera un numero entre 0 y n, el cual es (Math.random() * 5= Aca le decimos que genere //un numero aleatorio entre 0 y 5, para poder usar numeros aleatorios entre n y n, tendremos que sumar el respectivo //rango, por ejemplo para hallar los numeros entre 15 y 25 tendriamos que establecer que el rango es 10 y sumarle 16
La Geekipedia De Ernesto , estimado se que estoy un vídeo de java pero podrías hacer un vídeo de como usar android studio con las api de google y calcular una distacia con una de sus api o con el gps ?, esta la versión 3.1 de android favor si me puedes ayudar con esta duda existencial que tengo te lo agradecería
¿Te gustaría que este contenido siga siendo gratuito?, puedes apoyar al canal de las siguientes maneras:
1. Donaciones: www.paypal.me/LaGeekipedia
2. Desactivando Adblock y Adblock Plus en RUclips.
3. Compartiendo los vídeos del canal en foros y redes sociales.
Cualquier opción es de gran ayuda. ¡Muchas gracias!
La cosa funciona asi:
Al hacer (Math.random() * 100) te genera numeros aleatorios entre 0-99 al añadirle el +1 se generar del 1-100.
Si por ejemplo queremos numeros aleatorios que vayan del 30-40 hacemos esto:
(Math.random() * 10 + 30)
multiplicamos por la cantidad de numeros que se pueden obtener (40-30 = 10) y sumamos por el numero mínimo que queremos en este caso 30.
Con java.util.Random como hago para que no empiece desde le cero?
Aquí no estarías incluyendo el 40.
Es multiplicarlo por la diferencia + 1 + el mínimo.
Ejemplo:
int random = (int) (Math.random() * ((40-30)+1)+ 30 );
o que es lo mismo:
int random = (int) (Math.random() * 11+30);
Espero que sirva de ayuda! ;)
Crack !!, justo iba a buscar como hacer eso en google, graciass !!
Excelente curso. Gracias Ernesto.
Muchas gracias por el video, me ayudo mucho a comprender mas sobre el método random
Muy buen curso! Explicas de manera exelente.
Excelente! Gracias Ernesto.
Al multiplocar por 100 genera creo valores del 0 al 99. El 100 no lo incluye. Si multiplicas por 100 y le sumas 1 creo que te genera números aleatorios entre el 1 y el 100, incluyendo el 100. Ahora mi pregunta: ¿Cómo hago si quiero generar valores aleatorios entre 5 y 15, entre 20 y 30, entre 254 y 308?. Debe ser más complejo eso. ¿Verdad?
Lo mismo me pregunto... si quisieta hacer un juego con dados, dos dados, que muestren dos numeros distintos del 1 al 6... El primer dado muestra el numero tal, el segundo dado muestra este otro...
Nicolás Matías Funtalas pues es facil de hacer...
Seria algo asi (si es de dados):
Random r = new Random ()
Dado=r.nextInt (6)+1;
Debido que el random 6 seria en un rango de 0 a 5 y si le sumamos unos nos da un 1 al 6... si el ramdom da un 0 por la suma daria un 1 y asi sucesivamente
Si es entre 15 y 20 seria
Res=r.nextInt (6)+15;
Para cuando de un numero por ejemplo 0 entomces res vale 15 si da un 5 entonces res vale 20 y asi
Buena respuesta, asi pues si.
,,,,_(°-°)_,,,,
no estoy seguro pero se puede usar threads con dos clases uno para cada dado o dos threads de una misma clase. cda clase usa el random o math
Pues un método seria sumarle el numero del que quiere partir, y en el random poner el rango que desea poner aleatorio, algo así, de 40 a 50: aleatorio=(int)(Math.random()*10)+40;
Muy buena clase.
Excelente !!! Que maratón me ando dando xD
muy claro, gracias por la ayuda
Tengo una duda, al utilizar el metodo math.random, se puede utilizar algún metodo o función que impida que dichos valores aleatorios se repitan ??
para números del 10 al 20
random = (int) (Math.random() * 11) + 10
me puedes explicar la lógica de porque es un rango de 10 al 20?
@@juliandaniel356 no recuerdo bien cómo funciona, pero...
El " *11" indica que el rango de números aleatorios es desde 0 hasta 10
Luego a la derecha le sumé 10, entonces el número que sale sería un número aleatorio desde 0 hasta 10 sumado con 10
El menor rango posible es 0, y el mayor es 10, y si le sumamos 10 a ese rango cambiaría de 10 a 20
consulta: esta forma también me resulta pero sin el casting y agregando el valor dentro de las () Es valido o hay algún error?
public class Clase_tres {
public static void main(String[] args){
Random r = new Random();
int n = r.nextInt(100);
System.out.println(n);
}
}
¡Hola!, si el programa arroja el resultado esperado no hay ningún problema, ya que la lógica de cada programador es diferente y por tal motivo es valido y aceptable que puedas modificarlo a tu propio estilo. Saludos.
Se puede hacer por visual studio o da igual?
Maestro sigue así
Hola Ernesto
Quería saber si esta en tu plan de videos hacer algo también con IA.
Muy buenos los videos que haces :)
que grande
Y si quiero que en el rango sea entre un numero negativo y otro positivo como de -10 a 10?
Haces otro llamado random de 2 posibilidades en el que si el valor es 1 multiplicas tu numero random por -1
multiplicalo por 20 y restale 10
Agradecido
Cómo hago un generador de nombres Aleatorios ayuda lo necesito.
Nota: Ernesto eres el Mejor.
Hola mateo, creo que este código te puede servir de practica, si queres podes cambiar los if else por switch case.
Hasta inclusive sacar las variables de tipo String y colocar los nombres en los sout, pero te recomiendo dejar esa parte así como esta, mas que nada por si quieres colocar un mismo nombre dentro de varias opciones, para que su probabilidad de aparecer sea mas grande o chica, y evitar el copy paste eterno jajaj.
public class ClasePractica {
public static void main(String[] args) {
//Nombres aleatorios
int nombre = 0;
String uno = "Tomas", dos = "Roberto", tres = "Raul", cuatro = "Ernesto", cinco = "Alfonso";
nombre = (int) (Math.random() * 5 + 1);
if(nombre == 1){
System.out.println(uno);
} else if(nombre == 2){
System.out.println(dos);
} else if(nombre == 3){
System.out.println(tres);
} else if(nombre == 4){
System.out.println(cuatro);
} else if(nombre == 5){
System.out.println(cinco);
}
}
}
@@tomasab5978 Gracias que gran idea
@@Teo-dw3ti Esta es igual a la que te paso Sulivan, pero de una manera para escribir menos codigo..
En RandomNombres siempre va a devolver un numero que sea menor o igual al largo del arreglo de nombres.. Y despues solo devuelve lo que hay en la posicion random que toque del arreglo..
public static void main(String[] args) {
// TODO Auto-generated method stub
String[]ListaNombres= {"lucas", "diego","matias", "fernando", "alejandro2"};
int RandomNombres= (int) ( Math.random()* ListaNombres.length-1);
String Nombre=ListaNombres[RandomNombres];
System.out.println(Nombre);
}
les dejo mi ruletita
import java.util.Scanner;
public class ejercicio {
public static void main(String args[]) {
int ganador = 0, apuesta = 0;
Scanner entrada = new Scanner(System.in);
System.out.println("Bienvenido, ingrese su numero favorito");
apuesta = entrada.nextInt();
ganador = (int) (Math.random() * 36);
if (apuesta == ganador) {
System.out.println("Felicidades has ganado!");
} else {
System.out.println("El numero ganador es " + ganador + " mejor suerte para la proxima!");
}
}
}
Muy bueno! Sólo una pequeña corrección. La ruleta tiene 37 números es decir del 0 al 36, por lo que te está faltando incluir el número 36. Tu ruleta da valores de 0 a 35. El pobre cristiano que apuesta al 36 nunca va a ganar jaja.
Para que devuelva valores de 0 a 36 ténes que poner:
ganador = (int) (Math.random() * 37 + 1);
@@Tasca83 muy bueno! Gracias, eso fue hace como un año, era joven e inmaduro y cometía esas locuras
Me ayudó mucho en mi tarea, gracias
Buenas muy bien, me gustaría saber como hago para que el numero aleatorio siempre sea un números pares?
Hola, puedes hacer un do / while sencillo condicionando a la variable aleatorio a que se vuelva a generar hasta que sea par.
int aleatorio;
do{
aleatorio = (int) (Math.random() * 50);
}while(aleatorio%2!=0);
// Hacer el ciclo una y otra vez mientras que el numero aleatorio sea impar, asi se vuelve a generar hasta que sea par.
System.out.println(aleatorio);
Tengo entendido que el + 1 es para que no salga el 0 si así se desea no?
ASi es
disculpa y para realizar preguntas aleatorias?¿
Haces el rango de números (por ejemplo, 5 preguntas, entonces pones que el rango sea de 0 a 5)
Apartir de ahí haces un switch, en caso de ser X número, imprimirá la pregunta de dicho número, o algo así se me ocurre, espero haberte ayudado.
Cómo le haría para que mostrar si es abundante uno de esos números aletorios
los numero aleatorios salen del 0 al 100, ahora entiendo porque ponen +1, si quiero del 1 al 100 si es necesario poner el +1 y y Math.random la multiplicaria hasta el 99
Entre esta y la clase pasada entendi todo pero no me acuerdo nada es normal esto?
Yo tengo una duda amigo es que soy principiante y me pidieron hacer un programa igual, adivinar el numero aleatorio, pero me pide que cuando ingrese el numero que creo que es y no coincida con el numero dado me diga si quiero intentar otra vez o no, si en dado caso, lo intento de nuevo, debera seguir el juego y en caso contrario cerrarse, el problema es que no se como hacer para tener la opcion Si y No y como continuar la secuencia del juego..
Suena interesante ese ejercicio, también soy principiante compártemelo igual te puedo ayudar....
Y si necesito a los números ordenados de forma descendente?
y si quiero un numero aleatorio en el intervalo de 10 y 50 ¡??
te comparto mi codigo, yo necesitaba que me generara un numero de 8 cifras, así que coloque de 10000000 hasta 99999999, solo debes cambiar los datos a los que necesites y listo
Random ramdon = new Random();
int identificacion;
identificacion=(ramdon.nextInt(99999999-10000000+1)+10000000 );
recuerda importar la liberias de java.util.Random; en la parte de arriba espero haberte ayudado salu2
Como hago para generar números positivos y negativos?
Para números drl 1 al 6 y wue coja el 6:
numero=(int)(Math.random()*6)+1
5+1=6
El 0 tambien cuenta claaaroo
@@Cristiansil1 lo correcto es como dijo nicolas, el 5 el seis es el numero maximo que tendra el rango, por mas que le sumes 1 nunca saldria 6, ya lo probe varias veces
Victor Florez
Nunca, va a salir 0, si sale 0 + 1=1... si sale 5 + 1= 6... si no queres que salga 0 esta bien...
pero si quiero aleatorios entre 50 y 100?
En la clase anteriror clase_1?
no entendi
Por favor sube videos enseñando a programar con PSeint :'v lo necesito
y si por ejemplo necesito un rango desde el -100 al +200?
int aleatorio = 0;
aleatorio = (int)(Math.random()*302 - 101);
System.out.println(aleatorio);
@@Tasca83 puedes explicarme la lógica ? aun no entendio esa parte
yo quiero generar números aleartorios de -10 a 10
@@wadeowen8325
//La logica es, random genera un numero entre 0 y n, el cual es (Math.random() * 5= Aca le decimos que genere
//un numero aleatorio entre 0 y 5, para poder usar numeros aleatorios entre n y n, tendremos que sumar el respectivo
//rango, por ejemplo para hallar los numeros entre 15 y 25 tendriamos que establecer que el rango es 10 y sumarle 16
amigos como hago esto poner 123456 y resultado sea 34 en java :(
La Geekipedia De Ernesto , estimado se que estoy un vídeo de java pero podrías hacer un vídeo de como usar android studio con las api de google y calcular una distacia con una de sus api o con el gps ?, esta la versión 3.1 de android favor si me puedes ayudar con esta duda existencial que tengo te lo agradecería
Como hago para que me de 5 a la vez pero diferente
package clases;
public class Clase_uno {
public static void main(String args[]) {
int aleatorio = 0;
for (int i = 1; i