Buena todo esta pregunta viene porq lei en el post de la programacion batch avanzada q escriviendo:
echo %random%
se obtenia un numero aleatorio y intente aprovechar esto para crear un programa q segun el numero aleaotorio saque un mensaje u otro algo asi como un sorteo...
Aqui os pongo el codigo q utilice para hacer el programa:
@echo off
title 20 POR CIENTO BY KRASZIC
set ran=%random%
echo %ran%
if %ran% LEQ 6554 goto suerte
if %ran% GTR 6554 goto nosuerte
:nosuerte
echo.
echo Mala suerte, sigue intentando
pause>nul
exit
:suerte
echo.
echo Esto es un 20 por ciento!
pause>nul
exit
bueno primero de todo decir, q el "echo %ran%" del principio esta puesto para comprovar q vaya bien el programa...
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...
no se de donde sacaste lo del 20 %, es mucho mas baja la probabilidad.
CitarBueno 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
set /A ran=%random:~1,2%
echo %ran%
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.
Cita de: <~>FeRcHu<~> en 21 Septiembre 2007, 21:54 PM
no se de donde sacaste lo del 20 %, es mucho mas baja la probabilidad.
CitarBueno 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
set /A ran=%random:~1,2%
echo %ran%
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?