Numeros al azar
2 participantes
Página 1 de 1.
Numeros al azar
Alguien ha conseguido numeros al azar diferentes en cada ejecucion?.
Yo he exo mirando los tutoriales este pequeño programa:
el problema es que siempre me da 2 y 1. (si pongo un solo next entre uno y otro son dos doses). Esto es porque el patron en que se basa para sacarlo es el mismo en cada ejecucion. En otros lenguajes hay un randomize, que le das y si salen al azar de verdad, aqui no se que pollas hacer. Se supone que pasando una semilla al crearlo saldria mejor. PEro que le paso, el numero de votos? eso haria que siempre qu ehaga la misma simulacion de votos, los escaños empatados vayan a los mismos partidos.
Help!
Yo he exo mirando los tutoriales este pequeño programa:
- Código:
class COSA
creation make
feature {ANY}
make is
local
do
azar.next
std_output.put_string(azar.last_integer(2).to_string)
azar.next
azar.next
std_output.put_string(azar.last_integer(3).to_string)
end
azar:STD_RAND is
once
!!Result.make
end
end --class COSA
el problema es que siempre me da 2 y 1. (si pongo un solo next entre uno y otro son dos doses). Esto es porque el patron en que se basa para sacarlo es el mismo en cada ejecucion. En otros lenguajes hay un randomize, que le das y si salen al azar de verdad, aqui no se que pollas hacer. Se supone que pasando una semilla al crearlo saldria mejor. PEro que le paso, el numero de votos? eso haria que siempre qu ehaga la misma simulacion de votos, los escaños empatados vayan a los mismos partidos.
Help!
djcloud- Amo del foro
- Cantidad de envíos : 389
Edad : 39
Fecha de inscripción : 11/10/2007
Re: Numeros al azar
Hombre, la cosa más sencilla que se me ocurre por ahora es coger alguna variable del sistema (por ejemplo los segundos de la hora) y utilizarlos para sacar un número aleatorio.
Elía- Amo del foro
- Cantidad de envíos : 325
Fecha de inscripción : 14/10/2007
Re: Numeros al azar
al final hice algo asi como loq ue decia Elía.
Este metodo devuelve un numero al azar entre 1 y max, ambos inclusives. Asi si tienes empate entre dos pides uno entre 1 y 2 (son enteros) si tienes empate entre 3 candidaturas entre 1 y 3,....
- Código:
sortear_escano(max:INTEGER):INTEGER is
local
azar : STD_RAND
t:TIME
do
t.update
create azar.with_seed(t.hash_code)
azar.next
Result:=azar.last_integer(max)
end
Este metodo devuelve un numero al azar entre 1 y max, ambos inclusives. Asi si tienes empate entre dos pides uno entre 1 y 2 (son enteros) si tienes empate entre 3 candidaturas entre 1 y 3,....
djcloud- Amo del foro
- Cantidad de envíos : 389
Edad : 39
Fecha de inscripción : 11/10/2007
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.