Título: [Batch] Sabeis en que se basa el numero aleatorio de la variable %random%? Publicado por: moikano→@ en 14 Diciembre 2010, 12:51 pm Poniendo el siguiente código en un .bat
Código: echo %random% Y apretando el .bat seguidamente sale un numero que se va incrementando poco a poco, en mi caso los millares se quedaban un buen rato, lo centenares también, pero las unidades y las decimas cambiaban cada vez que lo apretaba. A donde quiero llegar? Pues queria saber de donde cojerá el numero base para hacer el numero aleatorio la variable de entorno %random%. Mirando la serie de numero que me sale creo que tiene que ver con la hora, porque va en aumento mas o menos por segundos, y nunca disminuye. Si alguien sabe algo de esto se lo agradeceria. Es tan solo por curiosidad. Título: Re: [Batch] Sabeis en que se basa el numero aleatorio de la variable %random%? Publicado por: Novlucker en 14 Diciembre 2010, 12:58 pm Supongo que tal vez si puede utilizar la hora como semilla, pero igual no veo que pase lo que comentas
Saludos Título: Re: [Batch] Sabeis en que se basa el numero aleatorio de la variable %random%? Publicado por: moikano→@ en 14 Diciembre 2010, 13:02 pm No se si lo habrás echo como yo, pero para verse como digo yo, con un aumento poco a poco, es abrir el batch repetidas veces, no hacer que el random se ejecute repetidas veces dentro del batch.
Este es el código qu e usado para sacrlo a las 13:00 Código: echo %random% >> random.txt Solo con esa linea y apretando doble click varias veces me a sacado esto. 9559 9562 9566 9569 9572 9575 9579 9582 Título: Re: [Batch] Sabeis en que se basa el numero aleatorio de la variable %random%? Publicado por: leogtz en 14 Diciembre 2010, 15:03 pm Que yo sepa no hay especificación técnica sobre la semilla del RANDOM. :-\
Título: Re: [Batch] Sabeis en que se basa el numero aleatorio de la variable %random%? Publicado por: FJPPitta en 14 Diciembre 2010, 17:24 pm Saludos puse el siguiente bat y lo unicie a las 10:22am
Código: echo %random% >>random.txt echo %random% >>random.txt echo %random% >>random.txt echo %random% >>random.txt echo %random% >>random.txt echo %random% >>random.txt echo %random% >>random.txt echo %random% >>random.txt echo %random% >>random.txt echo %random% >>random.txt echo %random% >>random.txt echo %random% >>random.txt echo %random% >>random.txt echo %random% >>random.txt echo %random% >>random.txt echo %random% >>random.txt echo %random% >>random.txt echo %random% >>random.txt echo %random% >>random.txt echo %random% >>random.txt y me dio como resultado esto: Código: 27470 31414 9464 5936 15938 7628 22301 24777 10906 16792 25726 13464 2199 13222 8583 7720 23333 14978 3232 27665 No se ve relación alguna entre un número y otro, ni idea entonces de cual sera la semilla para este generador. Sin embargo, si en el bat solo se deja una linea y lo ejecutas varias veces el número aumenta progrsivamente así como te sale. Código: echo %random% >>random.txt Código: 28021 28025 28025 28028 28061 28064 que curioso ¿no? Cómo ven el 28025 se repite 2 veces, si al bat de 1 linea lo ejecutas tan rapido como puedas dar click en el raton se repite mas veces Código: 28462 28462 28462 28462 28466 28466 28466 28469 28469 28469 28472 28472 28472 28475 28475 28475 28475 Título: Re: [Batch] Sabeis en que se basa el numero aleatorio de la variable %random%? Publicado por: Novlucker en 14 Diciembre 2010, 17:37 pm No lo había comentado, pero había visto algo similar a eso hace un rato, si pones el echo %random% dentro de un bucle, te tira siempre el mismo número :huh:
Saludos Título: Re: [Batch] Sabeis en que se basa el numero aleatorio de la variable %random%? Publicado por: moikano→@ en 14 Diciembre 2010, 18:47 pm Yo creo que cambia a los segundos, a lo mejor no basa su numero en el tiempo, pero yo creo que si que basa el cambio de cifra a los segundos.
Título: Re: [Batch] Sabeis en que se basa el numero aleatorio de la variable %random%? Publicado por: Darioxhcx en 14 Diciembre 2010, 23:07 pm %date% %time% %random%
fijate si encontras algo como para pensar que la semilla es la hora , pero no se :/ Título: Re: [Batch] Sabeis en que se basa el numero aleatorio de la variable %random%? Publicado por: moikano→@ en 15 Diciembre 2010, 00:47 am No tiene que ver, los randoms toman cifras desvinculadas de las otras variables, lo único que comparten, a mi parecer, es de donde vienen, que son variables de entorno.
De echo hay randoms que cogen la primera cifra del tamaño de algún archivo del sistema y le aplican las operaciones necesarias (multiplicaciones, divisiones,...) para sacar la cifra aleatoria. Título: Re: [Batch] Sabeis en que se basa el numero aleatorio de la variable %random%? Publicado por: leogtz en 15 Diciembre 2010, 07:15 am Lo más lógico es que tomara la hora del sistema. Hay veces en que se toma el PID del proceso.
Nov, que arroje el mismo valor se puede deber a que no se usa !var!. Título: Re: [Batch] Sabeis en que se basa el numero aleatorio de la variable %random%? Publicado por: Germaniac en 4 Enero 2011, 05:55 am Parece ser que la semilla random si se basa el hora y fecha porque probando con este batch:
Código: @echo off for /l %%i in (1,1,100) do cmd /c echo.%%random%% %%time%% pause La salida que produce es algo similar a esto: Código: 27481 5:38:52,89 27481 5:38:52,95 27484 5:38:53,01 27484 5:38:53,09 27484 5:38:53,15 27484 5:38:53,23 27484 5:38:53,29 27484 5:38:53,82 27484 5:38:53,90 27484 5:38:53,96 27487 5:38:54,03 27487 5:38:54,09 27487 5:38:54,15 27487 5:38:54,23 Presione una tecla para continuar . . . Donde se puede ver que el valor del random va cambiando conforme los segundos. Ó tambien pueden probar ejecutando el siguiente batch: Código: @echo off for /l %%i in (0) do cmd /c echo.%%random%% %%time%% E ir cambiando la hora y la fecha del sistema y veran que existe algo de relación con el valor que da el random. Referencia: Código: http://blogs.msdn.com/b/oldnewthing/archive/2010/06/17/10026183.aspx |