Título: Numero aleatorio en batch Publicado por: kraszic en 21 Septiembre 2007, 19:50 pm Buena todo esta pregunta viene porq lei en el post de la programacion batch avanzada q escriviendo:
Código: echo %random% Aqui os pongo el codigo q utilice para hacer el programa: Código: @echo off Despues de varias pruebas deduje q %random% saca un numero entre 0 y 32768 y entonces para crear en el programa un 20% de posibilidad de q apareciera ese mensaje divide ese numero entre 5 y le puse esa condicion. Bueno y ahora paso a explicar el problema; el problema viene cuando ejectuto el programa y me da un numero por ejemplo el 16530, bueno pues cuando vuelvo a ejecutar el programa, me saca el numero 16538 (ejemplo) y cuando vuelvo a abrirlo otra vez me saca el numero 16545 y asi succesivamente y eso a mi me molesta porq me gustaria poder iniciarlo y q sacara un numero totalmente diferente para poder probarlo pero no se tampoco muy bien la utilizacion del comando %random% este asi q me gustaria q me aportarais alguna solucion. saludos PD: Si reinicio el ordenador o me espero unos 15 min el programa me vuelve a sacar otro numero aleatorio... Título: Re: Numero aleatorio en batch Publicado por: Ferсhu en 21 Septiembre 2007, 21:54 pm no se de donde sacaste lo del 20 %, es mucho mas baja la probabilidad.
Citar Bueno y ahora paso a explicar el problema; el problema viene cuando ejectuto el programa y me da un numero por ejemplo el 16530, bueno pues cuando vuelvo a ejecutar el programa, me saca el numero 16538 (ejemplo) y cuando vuelvo a abrirlo otra vez me saca el numero 16545 y asi succesivamente y eso a mi me molesta porq me gustaria poder iniciarlo y q sacara un numero totalmente diferente para poder probarlo pero no se tampoco muy bien la utilizacion del comando %random% este asi q me gustaria q me aportarais alguna solucion. Creo q el random ese no es muy fiable, seguro q trabaja con los milisegundos o algo asi. Ami me saca numeros mas diferentes q eso, nose por q te los saca tan parecido. Tambien podes jugar con los numeros del medio de la variable random q son mas aleatorios, por ej si keres numeros entre 0 y 99 Código: set /A ran=%random:~1,2% Y para numeros mas grandes q 32768 podrias multiplicar por 2 o 3 pero claro hay algunos q no aparecerian. En ese caso podrias sacar 2 random y hacer operaciones entre ellos si keres obtener numeros aleatorios mas grandes. Saludos. Título: Re: Numero aleatorio en batch Publicado por: kraszic en 22 Septiembre 2007, 12:05 pm no se de donde sacaste lo del 20 %, es mucho mas baja la probabilidad. Citar Bueno y ahora paso a explicar el problema; el problema viene cuando ejectuto el programa y me da un numero por ejemplo el 16530, bueno pues cuando vuelvo a ejecutar el programa, me saca el numero 16538 (ejemplo) y cuando vuelvo a abrirlo otra vez me saca el numero 16545 y asi succesivamente y eso a mi me molesta porq me gustaria poder iniciarlo y q sacara un numero totalmente diferente para poder probarlo pero no se tampoco muy bien la utilizacion del comando %random% este asi q me gustaria q me aportarais alguna solucion. Creo q el random ese no es muy fiable, seguro q trabaja con los milisegundos o algo asi. Ami me saca numeros mas diferentes q eso, nose por q te los saca tan parecido. Tambien podes jugar con los numeros del medio de la variable random q son mas aleatorios, por ej si keres numeros entre 0 y 99 Código: set /A ran=%random:~1,2% Y para numeros mas grandes q 32768 podrias multiplicar por 2 o 3 pero claro hay algunos q no aparecerian. En ese caso podrias sacar 2 random y hacer operaciones entre ellos si keres obtener numeros aleatorios mas grandes. Saludos. A ver si me he equivocado; si 100/5=20, tendre q dividir 32768/5 q es = a 6554... Si yo le pongo esa condicion no ekivaldria a un 20%??? Es q alomejor me estoy rayando yo... Bueno, imaginaba q la variable random esta no seria muy buena para hacer este tipo de programas. saludos PD: Se podria hacer lo q quiero de alguna otra forma? |