Aquí pueden comentar todo lo que quieran, sus dudas, avances o soluciones acerca del siguiente reto:
Reto Nº 7
Nombre: Sort random nums (Elektro H@cker)
Dificultad: 3/10
Objetivo: Un bat que genere una lista de 20 números aleatorios, de 3 cifras, Y muestre el resultado ordenado.
Ejemplo:
(http://img19.imageshack.us/img19/3844/prtscrcapturek.jpg)
Solución: Pedir por mensaje privado
Algo como esto?
@echo off
Setlocal EnableDelayedExpansion
For /L %%i in (0,1,20) do ( set /a num=!RANDOM! * 1000 / 32768 +1
if !num! LEQ 99 (set /a num=!num!+100)
if !num! GEQ 1000 (set /a num=!num!-100)
echo !num!>>archivo.tmp)
type archivo.tmp | sort
del archivo.tmp
EDIT: Me acabo de fijar que no todos son de 3 cifras, sigo con ello..
ReEDIT: Creo que con eso basta xD
REReEdit: Cierto, a mi también me salio un 99 :S a ver si ahora..
Cita de: -- KiLiaN -- en 5 Mayo 2012, 18:19 PM
ReEDIT: Creo que con eso basta xD
Me ha salido un "99" y un "1000" :silbar:
Entonces...no cuenta como solución? :silbar:
Si te salen numeros de 4 cifras no xD
Ojo que si son aleatorios, tiene que ser un codigo que si al probarlo 2 millones de veces o las que sean necesario, aparezcan los numeros del 001 al 999, es decir, es facil engañar con la salida del codigo mirando y pensando que se generan numeros del 001 al 999 cuando tal vez no es asi. Pero mirando el codigo se puede ver si de verdad se "sortean" del 001 al 999.
Cita de: -- KiLiaN -- en 5 Mayo 2012, 22:44 PM
Entonces...no cuenta como solución? :silbar:
La di por válida xD
Ahora envío el code :)
PD: En la screen sale un 026 :P
HOLA!!!
@ECHO OFF
Setlocal EnableDelayedExpansion
For /L %%f in (1,1,20) do (
SET HOLA=!RANDOM:~-3!
IF !HOLA! LSS 100 (SET /A HOLA=!HOLA!+100)
echo !HOLA!>>a.a
)
type a.a | sort
del a.a
P.d: EL P*TO AVAST ME BORRO EL SORT.EXE.
GRACIAS POR LEER!!!
Cita de: 79137913 en 7 Mayo 2012, 21:05 PM
HOLA!!!
@ECHO OFF
Setlocal EnableDelayedExpansion
For /L %%f in (1,1,20) do (
SET HOLA=!RANDOM:~-3!
echo !HOLA!>>a.a
)
type a.a | sort
del a.a
P.d: EL P*TO AVAST ME BORRO EL SORT.EXE.
GRACIAS POR LEER!!!
Random también genera cifras de 1 y 2 dígitos... por tanto no tiene sentido que extraigas los 3 últimos dígitos de un número de 1 o 2 cifras xD
Cita de: Batchiano en 7 Mayo 2012, 22:02 PM
Random también genera cifras de 1 y 2 dígitos... por tanto no tiene sentido que extraigas los 3 últimos dígitos de un número de 1 o 2 cifras xD
Cierto :-\,
79137913Arregla ese pequeño detalle y habrás conseguido el reto! xD.
Salu2.
HOLA!!!
Listo arreglado.
GRACIAS POR LEER!!!
Creo, sin lugar a dudas, que he batido el record en extravagancia :P
@echo off
set.=echo&set "_=%%random:~-1%%"
find "::_%.:~,1%nd"<%0>nul&&goto:__
(%.%.&%.%.^(&for,/l,%%.,in,(1,1,20)do,%.%.%.%.%_%%_%%_%
%.%.^)^|sort&%.%.1^>nul,pause&%.%.::_%.:~,1%nd)>>%0
:__
Cita de: Binary_Death en 22 Julio 2012, 05:08 AM
Creo, sin lugar a dudas, que he batido el record en extravagancia :P
@echo off
set.=echo&set "_=%%random:~-1%%"
find "::_%.:~,1%nd"<%0>nul&&goto:__
(%.%.&%.%.^(&for,/l,%%.,in,(1,1,20)do,%.%.%.%.%_%%_%%_%
%.%.^)^|sort&%.%.1^>nul,pause&%.%.::_%.:~,1%nd)>>%0
:__
Por dios, ¿Seguro que eso es Batch? ;) jaja
El code se merece un punto extra, Aunque para retos fáciles no hace falta ser tan rebuscadisimo xD
Saludos