Autor
|
Tema: REtos batch (Leído 33,481 veces)
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.885
|
Runex, Tienes razón, Entonces lo dejamos en un medio-fail, Ya que al menos cumple su propósito xD. (Y los retos son de Batch) No leiste mi post entero, Bueno decía que seguro que había técnicas mejores y más rápidas, No soy un maestro de los números . PD: El lenguaje marca la diferencia, Te lo aseguro! Si tuvieras una lista de números primos del 1 al 1.000.000, y solo tuvieras que mostrarlos haciendo "FOR /F %%a in (Lista.txt) Do (Echo %%a)" (Sin realizar operaciones ni nada) Ya tardaría lo suyo ya... varios minutos. Saludos EDITO: Esto demuestra la velocida (basura) de Batch:
solo con bat el primer code los genera lento yo cree este @echo off :anteinicio set /p t=cuantos primos quieres?= if %t% lss 3 (echo su numero tiene que ser mayor que 2) else (goto seguir) pause exit :seguir set ee=%random% if %ee:~-1%==2 goto seguir if %ee:~-1%==4 goto seguir if %ee:~-1%==6 goto seguir if %ee:~-1%==8 goto seguir if %ee:~-1%==0 goto seguir echo %ee% set /a t=t-1 if %t%== 0 (pause) else (goto seguir)
los genera rapido usando solo batch creo k este code es el mas rapido usando solo batch. XD Está bueno. Pero hay que mencionar que ese code es un generador aleatorio
|
|
« Última modificación: 25 Abril 2012, 20:49 pm por EleKtro H@cker »
|
En línea
|
|
|
|
Puntoinfinito
Desconectado
Mensajes: 919
#! /win/archlinux
|
//sea N el numeroal quele quieras hallar el numero de digitos int contador =0 // te dia cuantos digitos tiene tu numero N while( N>=1 ) { N=N/10; contador=contador+1; } Ese es el algoritmo para sacarlo , no lo aplico en batch porque uso debian Bien, bien ¿Te atreves con el Segundo? ¿O intentas el primero con BATCH?
|
|
|
En línea
|
|
|
|
HdM
Desconectado
Mensajes: 1.674
|
Buenas. Elektro no he leido tu mensaje entero, pero no será más fácil dejarse de multiplicaciones, iniciar el bucle for desde 0 hasta el máximo de números primos que tu quieres, y hacer un condicional, que si el resto obtenido de dividirlo por 2 (módulo) es diferente de 0, imprima el número? ya que este será primo.
Un pequeño apunte, ese cálculo indicará si es impar o no, pero no necesariamente que sea primo: Ejemplos: 11 mod 2 <> 0 Impar y primo 33 mod 2 <> 0 Impar pero no primo (es divisible por 11,3) Saludos.
|
|
|
En línea
|
- Nice to see you again -
|
|
|
ELVJop
Desconectado
Mensajes: 132
|
Informo edu que por razones que no vienen al caso n o me pude poner en el ordenador mañana sera 99,9 % seguro XD (Hice este post por aburrimiento y ya tiene 1,026 visitas... Si fueran las visitas que tiene mi blog me quedaria flipado
|
|
|
En línea
|
El dia 3 de mayo esta cuenta sera borrada.
|
|
|
Runex
Desconectado
Mensajes: 192
http://tutogramacion.blogspot.com
|
Bien, bien ¿Te atreves con el Segundo? ¿O intentas el primero con BATCH?if %numero%>1 && %numero%<10 echo 1 digito if %numero%>10 && %numero%<100 echo 2 digitos if %numero%>100 && %numero%<1000 echo 3 digitos if %numero%>1000 && %numero%<10000 echo 4 digitos ...
Esto sería otra soluciíón a tu problema, pudiendo añadir la cantidad de dígitos que tu quieras. No sé si funcionará porque no lo he podido probar además, yo de batch poca idea tengo Un saludo
|
|
|
En línea
|
"No renunciaría al bambú. Nunca renuciaría a ti. No te compares con otros" "El me dijo: El bambú tenía un propósito diferente al del helecho, sin embargo eran necesarios y hacían del bosque un lugar hermoso".
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.885
|
if %numero%>1 && %numero%<10 echo 1 digito ...
No sé si funcionará porque no lo he podido probar además, yo de batch poca idea tengo No no se puede hacer una comprobación de multiples condiciones (Bueno, No como se haría en PY u otro xD) en Batch. Además " >" y " &" " &&" tampoco son operadores de comparación. Pero tampoco ibas muy mal encaminado, Quedaría así: :Loop
Aunque esta forma es mejor para evitar limitaciones y código...: :Loop ECHO %Numero% > " %TEMP%\tempfile.txt" FOR %%? IN (" %TEMP%\tempfile.txt" ) DO ( SET /A digitos= %%~z? - 3 ) Echo %numero% tiene %digitos% digitos.
Salu2
|
|
|
En línea
|
|
|
|
Puntoinfinito
Desconectado
Mensajes: 919
#! /win/archlinux
|
¡Muy bien!Mirad yo lo lo hicé de diferente forma:@ECHO OFF SET/P"D= Numero:\> " FOR /F "TOKENS=1,2 DELIMS=.," %%A IN ("%D%") DO ( CALL:C "%%A" "P.Entera" IF "%%B" NEQ "" (CALL:C "%%B" "P.Decimal") ) Pause>Nul&Exit :C SET/P"=%~1"<NUL>>..Tmp FOR %%Z IN ("%CD%\..Tmp") DO (SET/P"=%~2:%%~zZ "<NUL) DEL "..Tmp" EXIT/B0 ¿Sois capaces de pasar la segunda prueba?
|
|
|
En línea
|
|
|
|
$Edu$
Desconectado
Mensajes: 1.842
|
Buenas.
Un pequeño apunte, ese cálculo indicará si es impar o no, pero no necesariamente que sea primo:
Ejemplos: 11 mod 2 <> 0 Impar y primo 33 mod 2 <> 0 Impar pero no primo (es divisible por 11,3)
Saludos.
Tiene razon, y yo ya dije creo, que si no saben muy bien matematicas hagan otros retos xDD por algo lo dije xD, estan re confundidos en lo que es numero primo. No vale la pena ni discutir como dije xD mas vale sigan con otros retos jeje. ELVJop, se que no vere mi codigo nunca, pero no me molesta, te tendria que molestar a vos xD El post tiene muchas visitas porque estos retos son los que mandan en la universidad y todo el mundo los esta buscando en este momento xD, tambien mucha gente que busca retos en batch en general xD No se entiende nada el tema este, para mi que hay que cerrarlo Electro y podes crear un tema nuevo solo para que dejen ideas de retos y nada mas, sin comentarios extras y luego de ahi sacas los mejores retos para ponerlos en un tema con chincheta donde lo resolveran los que quieran, mandando codigo por privado a vos xDD si es que te gustaria jeje
|
|
|
En línea
|
|
|
|
ELVJop
Desconectado
Mensajes: 132
|
Buena idea ahora te lo pondre pero estoy muy metido en eso de mi programa de actualizarlo y creo que ya lo te lo dare en otro momento estoy apunto de terminarlo $Edu$ Descargalo de aqui: Borro link porque tengo ganas. Lo descomprimes y lo ejecutas con permiso de adminsitrador
|
|
« Última modificación: 29 Abril 2012, 23:04 pm por ELVJop »
|
En línea
|
El dia 3 de mayo esta cuenta sera borrada.
|
|
|
$Edu$
Desconectado
Mensajes: 1.842
|
Lo probaste aunquesea? abre como 10 ventanas y no se copia nada, cualquier cosa. Yo me dedicaria a otra cosa, porque si vienes a pedir retos es porque sientes que ya sabes manejarte en Batch, asi que tendrias que saber cosas basicas aunquesea, eres malo en esto la verdad. Te lo digo tan asi para ver si te pones a aprender de verdad y recien cuando aprendas vienes a hacer retos.
"Algunos simplemente no sirven para esto"
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Retos
Desafíos - Wargames
|
@synthesize
|
8
|
9,691
|
13 Junio 2010, 04:24 am
por @synthesize
|
|
|
Retos C/C++
« 1 2 ... 8 9 »
Ejercicios
|
[L]ord [R]NA
|
85
|
55,626
|
3 Octubre 2010, 16:57 pm
por Komodo
|
|
|
Retos .Net
« 1 2 3 »
Ejercicios
|
[D4N93R]
|
20
|
20,099
|
6 Diciembre 2010, 03:26 am
por final_frontier
|
|
|
¿Quieren retos de Batch?
« 1 2 »
Scripting
|
Eleкtro
|
18
|
8,372
|
5 Mayo 2012, 08:27 am
por Eleкtro
|
|
|
[Batch] Insertar un batch dentro de un batch que fabrique un .txt
Scripting
|
$pedrojo2704
|
2
|
6,472
|
23 Agosto 2012, 10:08 am
por $pedrojo2704
|
|