acad hispano
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

Elegir Aleatoriamente un numero de una lista.

2 participantes

Ir abajo

Elegir Aleatoriamente un numero de una lista. Empty Elegir Aleatoriamente un numero de una lista.

Mensaje por Dominguez Lun Jul 10, 2023 1:55 pm

Hola colegas:
Hace tiempo que no os pido ayuda, pero en esta ocasion, me veo obligado ya que no doy con la solucion.
Bueno tengo una lista de numeros tal como asi (setq lista '(10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25)) y lo que quiero es elegir un numero de forma aleatoria de la lista.
gracias y un saludo
Dominguez
Dominguez

Mensajes : 152
Fecha de inscripción : 20/03/2016
Edad : 74
Localización : Zaragoza (España)

Volver arriba Ir abajo

Elegir Aleatoriamente un numero de una lista. Empty Re: Elegir Aleatoriamente un numero de una lista.

Mensaje por Gerardo Calvo Lun Jul 10, 2023 10:11 pm

Hola maestro

sería un honor que mi respuesta te sea de utilidad

Siempre y cuando la selección se realice una sola vez en un fragmento de código, debería ser suficiente tomar la variable "millisecs" y aplicarle un módulo (rem) con la longitud de la lista. Algo como esto:

Código:
(nth (rem (getvar "millisecs") (length lista)) lista)

Ahora, que si eso estuviera dentro de algún tipo de bucle o se repite con secuencias cortas entre consultas por dicha variable, deja de funcionar así tan simple, ya que en el mismo milisegundo podrían darse varias llamadas retornando varias veces el mismo número, o números continuos.
En ese caso se requeriría algo como por ejemplo tomar el mismo valor obtenido en una selección aleatoria para aplicar una conversión al siguiente resultado, o para definir una cantidad de segundos de pausa antes de la siguiente llamada. Eso dejaría de ser aleatorio y pasaría a ser pseudo-aleatorio, pero igual suele funcionar en la mayoría de los casos.

Gerardo Calvo

Mensajes : 46
Fecha de inscripción : 29/10/2019

A robierzo le gusta esta publicaciòn

Volver arriba Ir abajo

Elegir Aleatoriamente un numero de una lista. Empty Re: Elegir Aleatoriamente un numero de una lista.

Mensaje por Gerardo Calvo Lun Jul 10, 2023 10:23 pm

despues de emitir la respuesta anterior me acordé de lee-mac XD

Justamente hay una solución en su página, y hace lo que te decía de que cada número que calcula es fruto de una ecuación que incluye al número anterior (guardado en la variable $xn) El usa la variable date pero da igual

http://www.lee-mac.com/random.html

Igual siempre son pseudoaleatorios, porque dos secuencias iniciadas en el mismo milisegundo con la misma cantidad de operaciones por segundo entre llamadas serán secuendias iguales. Pero eso suele ser sin importancia en la mayoría de aplicaciones.

Gerardo Calvo

Mensajes : 46
Fecha de inscripción : 29/10/2019

A robierzo le gusta esta publicaciòn

Volver arriba Ir abajo

Elegir Aleatoriamente un numero de una lista. Empty Re: Elegir Aleatoriamente un numero de una lista.

Mensaje por Dominguez Mar Jul 11, 2023 5:33 pm

Gerardo Calvo escribió:despues de emitir la respuesta anterior me acordé de lee-mac XD
Muy agradecido por tus comentarios, ya lo he solucionado con un sistema parecido a lo que comentas, no me da ningun fayo, porque el numero elegido con este sistema, lo elimino de la lista y ya no existe y asi no puede volver a elegirlo el sistema, pero cada vez tengo que decirle que escoja entre (1- cantidad) de numeros de la lista.
Muchas gracias
Código:
(defun busca_num ()
  (setvar 'cmdecho 0)
  (defun coef ()
    (if (not *seed*)
      (setq *seed* (getvar 'date))
    )
    (setq *seed* (rem (+ (* 25173 *seed*) 13849) 65536))
    (setq num (/ *seed* 65536))
  )
  (if (not (< mini maxi))
    (progn (setq tmp mini) (setq mini maxi) (setq maxi tmp))
  )
  (setq num (fix (+ (* (coef) (- maxi mini)) mini)))
)
Dominguez
Dominguez

Mensajes : 152
Fecha de inscripción : 20/03/2016
Edad : 74
Localización : Zaragoza (España)

A robierzo le gusta esta publicaciòn

Volver arriba Ir abajo

Elegir Aleatoriamente un numero de una lista. Empty Re: Elegir Aleatoriamente un numero de una lista.

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.