Director - numeros aleatorios

 
Vista:

numeros aleatorios

Publicado por benjamin (1 intervención) el 09/05/2004 23:06:01
hola a todos, necesito una forma de generar 30 numeros aleatorios de una lista de 300, los numeros aleatorios generados no deben ser iguales osea 30 numeros diferentes.
muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:numeros aleatorios

Publicado por aero (13 intervenciones) el 14/05/2004 20:45:34
hola amigo,
no hace mucho un conocido me hizo esa pregunta, pues si eres tu, pues vale ;-)
no quiere decir que esto es perfecto, es simplemente una solucion, que funciona.
primero debes tener dicha lista, de ahi partio tu pregunta!!!

esta lista la puedes colocar como una variable global en un starmovie o dentro de la misma funcion, cosa que hago aqui para no tener que escribir mas script en este reducido espacio, pero eso depende de tus necesidades.
Construiremos pues una funcion que nos devuelva 10 numeros aleatorios de una lista de 14, el secreto esta en obtener aleatoriamente los subindices de la lista y con este obtener su valor y luego eliminarlo de dicha lista y comenzar de nuevo hasta obtener los 10 numeros deseados o los que se quieran, hasta puede ser cadenas.
comencemos

1.- Creas un script de pelicula y le pones el siguiente codigo ( aqui construimos una funcion llamada obtener_lista10, la cual no es necesario pasarle ningun valor, en esta variante!!!! , pues la lista esta contenida dentro, en caso contrario hay que pasarsela como parametro.

on obtener_lista10
lista_total=[23,34,56,78,56,56,23,34,45,67,77,89,2,14]
--- lista_total es donde se encuentran los 14 valores
lista10=[] -- lista10 se inicializa como una lista vacia
repeat while lista10.count()<10
total=lista_total.count() --- aqui los elementos de lista_total
indice=random(total) -- se genera el No aleatorio de indice
lista10.add(lista_total[indice]) -- con indice se add a lista10
lista_total.deleteAt(indice) -- se elimina el valor tomado de lista_total
end repeat
return
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

completando la respuesta

Publicado por aero (5 intervenciones) el 15/05/2004 06:04:01
hola amigo: como te habras dado cuenta la respuesta no fue en su totalidad y no lo habia comprobado, pues aqui te va la otra parte que espero se envie completa.
****************************************************

return lista10 --- me devuelve una lista con los 10 valores aleatorio
end obtener_lista10

2.- Ya puedes llamar a esta funcion desde donde lo desees, por ejemplo desde un boton, a dicho boton le pones el siguiente codigo:

on mouseUp me
resultado=obtener_lista10()
put resultado
end

veras en la ventana de mensajes el resultado.

nota1: Para tu caso que la lista es de 300, debes cambiar la lista y en la desigualdad del repeat poner 30 (este es el numero de elementos que necesitamos)
nota2: Con esta idea se puede construir un caso mucho mas general, construir una funcion a la cual se le pasan dos parametros, uno la lista y el otro la cantidad de valores aleatorios que necesitas.
bueno espero que te sea util y suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar