elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Numero aleatorio en batch
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Numero aleatorio en batch  (Leído 16,194 veces)
kraszic

Desconectado Desconectado

Mensajes: 277


Ver Perfil
Numero aleatorio en batch
« 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%
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:
Código:
@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...


En línea

Ferсhu


Desconectado Desconectado

Mensajes: 1.215

Menos palabras y Mas codigos.


Ver Perfil WWW
Re: Numero aleatorio en batch
« Respuesta #1 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%
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.


En línea

kraszic

Desconectado Desconectado

Mensajes: 277


Ver Perfil
Re: Numero aleatorio en batch
« Respuesta #2 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%
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?
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Número aleatorio
Programación Visual Basic
& eDu & 9 3,038 Último mensaje 7 Junio 2008, 09:08 am
por byebye
numero aleatorio
Programación Visual Basic
andaluz 4 2,422 Último mensaje 21 Octubre 2010, 23:28 pm
por raul338
[Batch] Sabeis en que se basa el numero aleatorio de la variable %random%? « 1 2 »
Scripting
moikano→@ 10 8,998 Último mensaje 4 Enero 2011, 05:55 am
por Germaniac
numero aleatorio
Programación C/C++
julipoedro 4 2,367 Último mensaje 29 Noviembre 2015, 01:53 am
por do-while
Probabilidad de que salga un numero aleatorio
Programación C/C++
Sr_Malweriks 8 3,419 Último mensaje 7 Enero 2016, 20:10 pm
por ivancea96
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines