Curso Java Intermedio #29 | Números aleatorios en Java

Поделиться
HTML-код
  • Опубликовано: 8 ноя 2024

Комментарии • 83

  • @LaGeekipediaDeErnesto
    @LaGeekipediaDeErnesto  6 лет назад +12

    ¿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!

  • @RED-tj4is
    @RED-tj4is 3 года назад +55

    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.

    • @sindyisaza1785
      @sindyisaza1785 3 года назад +1

      Con java.util.Random como hago para que no empiece desde le cero?

    • @dr_giro
      @dr_giro 2 года назад +10

      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! ;)

    • @aguss3163
      @aguss3163 2 года назад +1

      Crack !!, justo iba a buscar como hacer eso en google, graciass !!

  • @alfredosantana5256
    @alfredosantana5256 3 года назад +2

    Excelente curso. Gracias Ernesto.

  • @ritabetzabeaguileraataxca5383
    @ritabetzabeaguileraataxca5383 5 лет назад +2

    Muchas gracias por el video, me ayudo mucho a comprender mas sobre el método random

  • @tomasmalleret5to2dae.i.52
    @tomasmalleret5to2dae.i.52 3 года назад

    Muy buen curso! Explicas de manera exelente.

  • @wstyle4649
    @wstyle4649 6 лет назад +2

    Excelente! Gracias Ernesto.

  • @nicolas2008alcubo
    @nicolas2008alcubo 6 лет назад +21

    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?

    • @Cristiansil1
      @Cristiansil1 6 лет назад +5

      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...

    • @naerhernandez2502
      @naerhernandez2502 6 лет назад +20

      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

    • @Cristiansil1
      @Cristiansil1 6 лет назад +1

      Buena respuesta, asi pues si.
      ,,,,_(°-°)_,,,,

    • @stelovpflu
      @stelovpflu 6 лет назад +2

      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

    • @samirgallego5887
      @samirgallego5887 5 лет назад +4

      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;

  • @antoniocantu6084
    @antoniocantu6084 2 года назад +1

    Muy buena clase.

  • @d-landjs
    @d-landjs 3 года назад

    Excelente !!! Que maratón me ando dando xD

  • @xXxcizxXx1
    @xXxcizxXx1 3 года назад

    muy claro, gracias por la ayuda

  • @ritabetzabeaguileraataxca5383
    @ritabetzabeaguileraataxca5383 5 лет назад +2

    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 ??

  • @434emm
    @434emm 4 года назад +3

    para números del 10 al 20
    random = (int) (Math.random() * 11) + 10

    • @juliandaniel356
      @juliandaniel356 3 года назад +1

      me puedes explicar la lógica de porque es un rango de 10 al 20?

    • @434emm
      @434emm 3 года назад +1

      @@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

  • @stelovpflu
    @stelovpflu 6 лет назад +2

    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);
    }
    }

    • @LaGeekipediaDeErnesto
      @LaGeekipediaDeErnesto  6 лет назад +2

      ¡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.

  • @aaronhc3486
    @aaronhc3486 Год назад

    Se puede hacer por visual studio o da igual?

  • @sergiozamora2177
    @sergiozamora2177 6 лет назад

    Maestro sigue así

  • @mefestopat6870
    @mefestopat6870 6 лет назад +1

    Hola Ernesto
    Quería saber si esta en tu plan de videos hacer algo también con IA.
    Muy buenos los videos que haces :)

  • @fernandoyadierpablosanchez5702
    @fernandoyadierpablosanchez5702 6 месяцев назад

    que grande

  • @ignaciodorrego7033
    @ignaciodorrego7033 3 года назад +4

    Y si quiero que en el rango sea entre un numero negativo y otro positivo como de -10 a 10?

    • @kaminari24
      @kaminari24 3 года назад +1

      Haces otro llamado random de 2 posibilidades en el que si el valor es 1 multiplicas tu numero random por -1

    • @gabrielrivas5989
      @gabrielrivas5989 8 месяцев назад

      multiplicalo por 20 y restale 10

  • @luhacra3980
    @luhacra3980 6 лет назад

    Agradecido

  • @Teo-dw3ti
    @Teo-dw3ti 4 года назад

    Cómo hago un generador de nombres Aleatorios ayuda lo necesito.
    Nota: Ernesto eres el Mejor.

    • @tomasab5978
      @tomasab5978 4 года назад +1

      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);
      }


      }
      }

    • @Teo-dw3ti
      @Teo-dw3ti 4 года назад +1

      @@tomasab5978 Gracias que gran idea

    • @cuervodie909
      @cuervodie909 4 года назад

      @@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);

      }

  • @MARQUITOSGUALACBA
    @MARQUITOSGUALACBA 6 лет назад +11

    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!");
    }
    }
    }

    • @Tasca83
      @Tasca83 4 года назад +1

      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);

    • @MARQUITOSGUALACBA
      @MARQUITOSGUALACBA 4 года назад +1

      @@Tasca83 muy bueno! Gracias, eso fue hace como un año, era joven e inmaduro y cometía esas locuras

    • @perlamoreno5013
      @perlamoreno5013 2 года назад

      Me ayudó mucho en mi tarea, gracias

  • @reimondpena
    @reimondpena 6 лет назад +2

    Buenas muy bien, me gustaría saber como hago para que el numero aleatorio siempre sea un números pares?

    • @MsJairog
      @MsJairog 4 года назад +3

      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);

  • @Kervinm755
    @Kervinm755 5 лет назад +1

    Tengo entendido que el + 1 es para que no salga el 0 si así se desea no?

  • @sinalon3184
    @sinalon3184 4 года назад +1

    disculpa y para realizar preguntas aleatorias?¿

    • @hyst1k86
      @hyst1k86 4 года назад +2

      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.

  • @leokratoschief1853
    @leokratoschief1853 2 года назад

    Cómo le haría para que mostrar si es abundante uno de esos números aletorios

  • @reydavidmartienezrodriguez4966

    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

  • @MARQUITOSGUALACBA
    @MARQUITOSGUALACBA 6 лет назад +1

    Entre esta y la clase pasada entendi todo pero no me acuerdo nada es normal esto?

  • @rosigomez6050
    @rosigomez6050 4 года назад

    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..

    • @cavel1
      @cavel1 4 года назад

      Suena interesante ese ejercicio, también soy principiante compártemelo igual te puedo ayudar....

  • @nayelyarcecellan9669
    @nayelyarcecellan9669 2 года назад

    Y si necesito a los números ordenados de forma descendente?

  • @fernandotorres_137
    @fernandotorres_137 3 года назад +1

    y si quiero un numero aleatorio en el intervalo de 10 y 50 ¡??

    • @andresfelipeoliveros7805
      @andresfelipeoliveros7805 3 года назад +1

      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

  • @juandavidmunoz5069
    @juandavidmunoz5069 3 года назад

    Como hago para generar números positivos y negativos?

  • @nicolas2008alcubo
    @nicolas2008alcubo 6 лет назад +5

    Para números drl 1 al 6 y wue coja el 6:
    numero=(int)(Math.random()*6)+1

    • @Cristiansil1
      @Cristiansil1 6 лет назад

      5+1=6

    • @Cristiansil1
      @Cristiansil1 6 лет назад

      El 0 tambien cuenta claaaroo

    • @floressuca
      @floressuca 4 года назад

      @@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

    • @Cristiansil1
      @Cristiansil1 4 года назад

      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...

  • @JonathanOrtiz-nc8yl
    @JonathanOrtiz-nc8yl 3 года назад

    pero si quiero aleatorios entre 50 y 100?

  • @MARQUITOSGUALACBA
    @MARQUITOSGUALACBA 6 лет назад

    En la clase anteriror clase_1?
    no entendi

  • @ironmelnicov7945
    @ironmelnicov7945 6 лет назад +1

    Por favor sube videos enseñando a programar con PSeint :'v lo necesito

  • @stevenvillacres6910
    @stevenvillacres6910 4 года назад +2

    y si por ejemplo necesito un rango desde el -100 al +200?

    • @Tasca83
      @Tasca83 4 года назад +1

      int aleatorio = 0;
      aleatorio = (int)(Math.random()*302 - 101);
      System.out.println(aleatorio);

    • @wadeowen8325
      @wadeowen8325 3 года назад

      @@Tasca83 puedes explicarme la lógica ? aun no entendio esa parte
      yo quiero generar números aleartorios de -10 a 10

    • @jorgew6
      @jorgew6 3 года назад +1

      @@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

  • @amairanisaraijimenezarroyo7310
    @amairanisaraijimenezarroyo7310 3 года назад

    amigos como hago esto poner 123456 y resultado sea 34 en java :(

  • @Kosmosterich
    @Kosmosterich 6 лет назад

    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

  • @gamingrd5232
    @gamingrd5232 5 лет назад +1

    Como hago para que me de 5 a la vez pero diferente

    • @DavidGameplaysMex
      @DavidGameplaysMex 5 лет назад

      package clases;
      public class Clase_uno {
      public static void main(String args[]) {
      int aleatorio = 0;
      for (int i = 1; i