|
4911
|
Programación / Scripting / Re: ¿Como obtener una combinacion mediante su indice?
|
en: 18 Julio 2015, 19:32 pm
|
Si he entendido bien no te importa demasiado mostrar las tuplas por consola, solo pretendes mostrar un "indicador" que determine el estado de la operación, en ese caso, y según lo que he mencioando antes sobre el rendimiento, quizás esto que escribí te sirva de ayuda: # -*- coding: UTF-8-*- import sys, itertools; from datetime import datetime muestra = tuple(range(1, 101)) print("Init: " + str(datetime.now().time())) for count, value in enumerate(itertools.combinations(muestra, 5),1): if (count == 20000000): sys.stdout.write( "\rItem with index %s has value of %s\n" % ("{:,}".format(count), str(value)) ) break elif (count%1000000 == 0): sys.stdout.write( "\r{:,} indexes checked...".format(count) ) sys.stdout.flush() print("End: " + str(datetime.now().time()))
PD: La imagen no está modificada, en realidad tarda 4 segundos, pero al detenerlo intencionadamente para abrir el grabador de video, calculó segundos de más xD. Saludos
|
|
|
4912
|
Programación / Scripting / Re: ¿Como obtener una combinacion mediante su indice?
|
en: 18 Julio 2015, 18:44 pm
|
El script del punto 2, lo probare. Ya que aun no sabia que se podia meter la funcion enumerate en una variable. Hombre, es una función, y cómo toda función siempre puedes asignar su valor de retorno a una variable. Pero esa variable no tiene relevancia alguna, solo la puse ahí para tener y usar una referencia de la colección enumerable (o dicho de otro modo, para formatear el código, acortándole el nombre a "col" y usando ese nombre).
como la consola se quedaba en espera no sabia si iba a tardar un minuto en darme el resultado o en un mes En cambio, al imprimir por pantalla sabes cuantas combinaciones faltan para el testeo. Te entiendo perfectamente, pero imprimir en la consola implica un mayor, mucho mayor tiempo de procesado. Lo que se suele hacer en estos casos con algoritmos "pesados" es mostrar una barra o texto de progreso indeterminado (ej: "Calculating values, please wait..."), ya que, o prescindes de la información visual en pantalla, o prescindes del rendimiento del algoiritmo en general, ¡tú decides a que darle mayor prioridad!. Saludos!
|
|
|
4914
|
Foros Generales / Sugerencias y dudas sobre el Foro / Re: Cotactos,amigos o coocidos
|
en: 18 Julio 2015, 16:08 pm
|
" Yá", no te preocupes, solo hay que " habisarle" cuando esté en su punto de " coacción". (lo mio no llega ni a chiste de lo malo que es, pero bueno, es para denotar esas pequeñitas faltas) el-brujo, leñe, por favor añade esas auto-correcciones al filtro del foro, menos la última
|
|
|
4917
|
Programación / Scripting / Re: ¿Como obtener una combinacion mediante su indice?
|
en: 18 Julio 2015, 14:30 pm
|
1. La razón de que el código de arriba demore siglos es por que estás imprimiendo cada valor en el buffer de salida de la consola ( stdOut), mientras eso sea así no puedes pretender que la respuesta sea "inmediata". elimina el "print" y resuelto. 2. Puedes disminuir considerablemente el tiempo de "respuesta" omitiendo la escritura en la consola, por ejemplo añadiendo los valores a una variables, y luego, si quieres, imprimir una única vez en la consola: col = enumerate(itertools.combinations(muestra, 5),1) values = "" for count, value in col: values += "\n" + str((count, value)) if count == 100000: print values print('La combinacion con indice', count, 'es', value) break
2. Con la función enumerate, gracias al iterador estás devolviendo una colección que contiene elementos sin inicializar ( Lazy Initialization), es de lo mejor que puedes hacer para acelerar el tiempo de ejecución del algoritmo, y creo que lo único en Python, aunque no domino del todo el lenguaje. 3. Precisamente la ausencia de un índice en la colección enumerable ( __getitem__) es lo que permite hacerla iterable, sencillamente cómo ya te han comentado no puedes utilizar un índice, por otro lado, si que puedes implementarlo, ¿pero para que?, dejaría de ser lo que es. Saludos
|
|
|
4918
|
Sistemas Operativos / Windows / Re: Windows 10
|
en: 18 Julio 2015, 13:40 pm
|
Zorronde tiene la mejor solución antivirus que se puede comprar, la compre o no, ahí ya no es cuestión de entrar...
De todos es sabido que basta con tener una solución antivirus, la que sea, pero al día...
¿Palos de ciego?
No creo yo que demuestre hipocondria alguna, hace lo que todo el mundo, se baja cosas, el antivirus salta y viene y nos lo comenta; yo cada vez que me bajo cosas verdaderamente chungas del eMule me cuesta formatear (ejem, ejem, zerofill) por que se me ralentiza el sistema y eso que los bajo en .rar. Tener cualquier antivirus ya sea la mejor solución antiviral del universo o no, implica molestarse en aprender un conocimiento básico sobre virus en general, y sobre el comportamiento de un antivirus. Obviamente a ti, Rando, no es necesario explicarte estas cosas, pero lo que Zorronde no llega a entender del todo, y perdón por hablar en tercera persona, es que muchísimos programas, es decir, archivos executables, y también archivos no-executables cómo por ejemplo un miserable icono (archivo.ico), pueden ser y son tomados cómo infección viral, pero en algunos casos sabemos que no es así, es un FALLO de detección, un falso positivo. Zorronde, cualquier advertencia por parte del antivirus te lo tomas cómo un ataque de virus, y eso no es bueno, la precaución también debe tener un límite. Créeme cuando te digo que hacerle caso el 100% de las veces a tu antivirus, no es bueno.
si buscas una .iso y te sale un .exe es para dudar, Obvio que sería para dudar, pero la cuestión es que no se ha dado el caso con las ISOs esas de Windows 10 Ten en cuenta que los Torrents tambien tienen un "Rating" o "Ranking" y además se pueden dejar comentarios sobre la veracidad de su contenido... a falta de un análisis exhaustivo en el archivo descargado, esas son cositas adicionales que ayudan a descubrir si el archivo a descargar se trata de virus o no, pero claro, HAY QUE MOLESTARSE EN LEER ESAS COSAS antes de juzgar si algo es virus por lo que diga el AV... Saludos!
|
|
|
4919
|
Programación / Scripting / Re: almacenar el nombre de un directorio en una variable
|
en: 17 Julio 2015, 21:52 pm
|
cuando quiero almacenar el valor en una variable desde un for, no puedo, mis variables "set VarDossier=%%x" y " SET rename=%VarDossier%" están vacias Dentro del bloque de un For, debes hacer uso de la expansiónd e variables: Set "rename=!VarDossier!" O en su defecto, con el comando Call: Call Set "rename=%%VarDossier%%" Slaudos
|
|
|
4920
|
Sistemas Operativos / Windows / Re: Windows 10
|
en: 17 Julio 2015, 19:43 pm
|
Ya en serio, es muy normal los fakes del Windows 10 cuando quedan 12 días para su liberación (y que nos conjan con los machos agarraos). ¿Pero que fake ni que foka, Rando?, aquí lo que pasa es que el amigo Zorronde siempre da palos de ciego con los falsos positivos de sus antivirus... siempre es el mismo problema cuando en realidad ni hay virus ni hay nada, pero yo ya estoy cansado de decir siempre lo mismo sobre el tema éste...
No hos descargueis el w10 podria tener un troyano (es normal ya que todos no quieren esperar y lo quieren descargar ya y algunos aprobechan ) y acabarias , total para lo que falta os esperais y ya si hos esperais acabareis Aconsejar no descargar algo por lo que pueda tener es ...innecesario, ya que por esa regla de tres no deberiamos descargar ningún programa por que podría tener regalito. Hay una cosa que se llaman Hashes, el hash MD5 de una ISO es cómo su firma personal, y obviamente se puede calcular el hash de la ISO que te descargues para compararlo con la referencia de la ISO que fue filtrada, y así despejar ese tipo de dudas sobre virus y demás... Saludos!
|
|
|
|
|
|
|