Autor Tema: Hacer que los números aleatorio no se repitan...  (Leído 2247 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Daniel1952

  • PIC16
  • ***
  • Mensajes: 127
Hacer que los números aleatorio no se repitan...
« en: 09 de Octubre de 2021, 17:29:03 »
Hola gente ¿como están?, el híper danielito no para ni en los finde XL(Argentina) :) :) :)
Al grano, x mas que busco(ejemplos en la web) no logro hacer que los números aleatorios no se repitan, ¿me podrían dar una manito?
y de paso me podrían decir en que puedo mejorar el programa.-
Desde ya gracias y tengan un poco de paciencia/comprensión con este sexagenario  :) :) :), abrazo...

Código: Python
  1. import random
  2.  
  3. numeros = [random.randint(1,50) for i in range(10)]
  4. orden = ("Primer", "Segundo", "Tercer", "Cuarto", "Último")
  5.  
  6. intentos = 1
  7. indice = 0
  8.  
  9. print("\n La lista cuenta con 10 números del 1 al 50")
  10. print(" Tiene un máximo de 5 intentos para acertar")
  11.  
  12. while True:
  13.     try:
  14.         numero = int(input("\n Ingrese un número entero a buscar...: "))
  15.         if numero in numeros:
  16.             print(f"\n el número {numero} existe en la lista.")
  17.             break
  18.         else:
  19.             print(f"\n {orden[indice]} intento fallido, el número {numero} no existe.")
  20.             if intentos == 5:
  21.                 break
  22.             intentos += 1
  23.             indice += 1
  24.     except ValueError:
  25.         input("\n Por favor ingrese un número entero, <Enter> para un nuevo intento...")
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Hacer que los números aleatorio no se repitan...
« Respuesta #1 en: 09 de Octubre de 2021, 19:14:19 »
EDITO--- pense que era otra cosa cuando lei la descripcion, pero luego vi el codigo y me di cuenta que no era lo que había escrito

Crea una lista
Crear un numero Random
Pregunta si existe dentro de la lista.
Si existe, volves a generarlo.
Si no existe, lo agregas a la lista.

« Última modificación: 09 de Octubre de 2021, 19:18:26 por KILLERJC »

Desconectado Daniel1952

  • PIC16
  • ***
  • Mensajes: 127
Re:Hacer que los números aleatorio no se repitan...
« Respuesta #2 en: 09 de Octubre de 2021, 19:28:19 »
Gracias KILLERFC x ocuparte, creí que era algo que se hacia automáticamente, que ya venia preestablecido en python, tengo tan sólo 10 días estudiando el lenguaje pero lo voy a intentar.-
Saludos y gracias.
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-

Desconectado Daniel1952

  • PIC16
  • ***
  • Mensajes: 127
Re:Hacer que los números aleatorio no se repitan...
« Respuesta #3 en: 09 de Octubre de 2021, 22:05:37 »
¿Algo parecido a esto?

Código: Python
  1. import random
  2. miLista = []
  3. cont = 0
  4.  
  5. while True:
  6.     numero = random.randint(1,50)
  7.     if numero not in miLista:
  8.         miLista.append(numero)        
  9.         cont += 1
  10.     if cont == 10:
  11.         break
  12.  
  13. print(miLista)
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-

Desconectado Picuino

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Hacer que los números aleatorio no se repitan...
« Respuesta #4 en: 10 de Octubre de 2021, 05:28:29 »

Desconectado Daniel1952

  • PIC16
  • ***
  • Mensajes: 127
Re:Hacer que los números aleatorio no se repitan...
« Respuesta #5 en: 10 de Octubre de 2021, 11:04:50 »
Gracias Picuino, es lo que imaginaba, gracias a ambos x la invalorable ayuda.-
Que tengan todos un bello bello Domingo.-
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-

Desconectado Picuino

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Hacer que los números aleatorio no se repitan...
« Respuesta #6 en: 10 de Octubre de 2021, 14:16:55 »
El método sample es distinto al otro. Primero se generan los 50 números posibles y luego se van seleccionando uno a uno sin repetir (se puede hacer borrando de la lista el número seleccionado) hasta que se hayan seleccionado 10.
Es más eficiente para listas en las que hay que seleccionar muchos números. Y más teniendo en cuenta que el algoritmo ya está optimizado en la librería random.
« Última modificación: 10 de Octubre de 2021, 14:27:07 por Picuino »


 

anything