Elegir Entre 2 O 3 Numeros, Pero De Forma Aleatoria


Goto page 1, 2  Next

Subject: Elegir Entre 2 O 3 Numeros, Pero De Forma Aleatoria
Buenas genteee! tras un laargo periodo de tiempo en inactivo en relacion a la programacion y demas, hoy me surge una duda en relacion a los numeros aleatorios.

Como podria elegir entre 3 numeros, siempre los mismos, pero de forma aleatoria.

Me explico, quiero que me salga o un 1, o un 3 o un 8. Con RANDOMIZE y Rnd no podria, porque seria desde un numero a otro, pero no entre 3 predeterminados.

Muchas graciaaas!!!

PD:
jsbsan, no se me olvidan las piezas del ajedrez....estan ahi...jajajajajaa

Profile PM  
Subject: Re: Elegir Entre 2 O 3 Numeros, Pero De Forma Aleatoria
Pss si puedes hacerlo con Rnd:

DIM i AS Int
i = Int(Rnd(1, 3))
SELECT i
CASE 1
i = 7
CASE 2
i = 4
CASE 3
i = 46
END SELECT


No he probado el código, pero debiese de funcionar.
Saludos!

Subject: Re: Elegir Entre 2 O 3 Numeros, Pero De Forma Aleatoria
Lo probare...he intentado un codigo un poco mas largo...

DO UNTIL que sea el numero que quiero....como son numeros pequeños me va bien.

Graciaas!

Profile PM  
Subject: Re: Elegir Entre 2 O 3 Numeros, Pero De Forma Aleatoria
Hola AnSnarkista!.

Prueba con esto:

DIM numeros AS NEW Integer[]
DIM aleatorio AS Integer

numeros = [1, 3, 8]
aleatorio = Rnd(0, 3)
PRINT numeros[aleatorio]


Saludos.

Subject: Re: Elegir Entre 2 O 3 Numeros, Pero De Forma Aleatoria
Shell

es mi idea o debería ser
aleatorio = Rnd(0, 2)


en vez de 3 es 2 o no?

Subject: Re: Elegir Entre 2 O 3 Numeros, Pero De Forma Aleatoria
No, es como te lo dijo Shell puesto que el limite superior no esta incluido en la funcion Rnd. Has la prueba y sabras porque se hace así.

Profile PM  
Subject: Re: Elegir Entre 2 O 3 Numeros, Pero De Forma Aleatoria
Hola Death!.

Resultaba raro, verdad?.Por lo de los indices del array.

Puedes encontrar más información aquí.

http://gambasdoc.org/help/lang/rnd?es

Es un tema que me gusta bastante.
He hecho varios programas con números aleatorios y no necesite la función randomize.
Cuando esta es obligatoria para que no se repitan, ya que no deberían ser tan aleatorios.

Lo que veo, si simulásemos un numero de x tiradas de una moneda siempre hay casi un 50% de cara y cruz.
En cambio estoy con tiradas de dados de poker, la variedad es mas amplia, naturalmente el numero de parejas, dobles parejas es mayor
por las posibilidades.

Pero vuelvo a encontrarme con cantidades parecidas, por ejemplo. Os pongo la captura de este programa ejemplo que estuve liado.

dados_poker

Si repito las 1000 tiradas:
Las parejas siempre rondan arriba o abajo los 450, los trios 150, las dobles parejas 200, los full casi los 50, los poker sobre 10 y los repoker sobre 1.
Tengo que añadir la posibilidad de escalera.

Saludos.

Subject: Re: Elegir Entre 2 O 3 Numeros, Pero De Forma Aleatoria
vale... echaré un vistazo a la info...

de todas formas funciona bien...

saludos!!!

Subject: Re: Elegir Entre 2 O 3 Numeros, Pero De Forma Aleatoria
En informática, los numeros aleatorios en realidad no existen, sin embargo, se han desarrollado implementaciones de software a partir de algoritmos para simularlos. se les conocoe como numero pseudo aleatorios. Su naturaleza es puramente matemática y su precision es mas alta de acuerdo a la cantidad de elementos del rango en el cual vamos a obtener el valor denominado aleatorio o random.

en los procesos de generación de números aleatorios intervienen 4 elementos

1 El valor inicial o semilla: "S" en gambas randomize es el procedimiento que se encarga de suministrarlo
2 La constante multiplicativa: "M" interna de rnd y que es la base matemática del cálculo
3 La constante aditiva: "A" que es la base de incremento.
4 El número "N" respecto al cual se calculan los restos y se lo pasamos por parametro a rnd; en el valor final

Cabe destacar que todos estos valores deben cumplir con un criterio en donde S,M,A < N. por tal razón en cualquier generador de números aleatorios bajo este esquema (gambas es un caso) todo resultado aleatorio va a estar comprendido entre 0 y N-1.

como se requiere una semilla "N" que sea lo mas diferente todo el tiempo, el procedimiento randomize suministrará los segundos transcurridos desde la media noche hasta la hora de ejecución del programa como semilla.. Por esto es que difícilmente se repetirán, sin embargo, bajo este método a una hora exacta, un tiro de ruleta o dados nos arrojaría un resultado que ya sabemos y hemos calculado...... o sea hackers de casinos.

si quiere algo más seguro puede implementar el método de las vegas o método de montecarlo combinando y ademaś generar aleatoriamente una semilla de un número de posibilidades....

Bueno hasta aquí dejo lo académico. eso explica porque randomize y rnd tienen ese comportamiento en gambas....

por lo demas, los amigos que escribieron anteriormente han dejado clara su implementación simple.

Subject: Re: Elegir Entre 2 O 3 Numeros, Pero De Forma Aleatoria
Acabo de darme cuenta de algo.

Pasteo el código que puso RazaAztk anteriormente:
DIM i AS Int
i =cInt(Rnd(1, 3))
SELECT i
CASE 1
i = 7
CASE 2
i = 4
CASE 3
i = 46
END SELECT

Pues resulta que si haces click en RND te lleva a la entrada correspondiente de RND en gambasdoc (aunque en ingles) Si el ingles molesta siempre le puedes dar a la banderita.


Last edited by soplo on Friday, 20 May 2011, 21:26; edited 1 time in total
Profile PM  
Goto page 1, 2  Next

Page 1 of 2


  
You cannot post new topics
You cannot reply to topics
You cannot edit your posts
You cannot delete your posts
You cannot vote in polls
You cannot attach files
You can download files
You cannot post calendar events

   

This is a "Lo-Fi" version of our main content. To view the full version with more information, formatting and images, please click here.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Generation Time: 0.094s (PHP: -24% SQL: 124%)
SQL queries: 24 - Debug Off - GZIP Enabled