Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - plof

#1
Foro Libre / Re: Porra Alemania España
7 Julio 2010, 23:38 PM
Cita de: Littlehorse en  7 Julio 2010, 22:52 PM
En fin, primer partido en todo el mundial que España si demuestra un buen juego y una decisión clara.
Eso pasa por no medirnos con equipos que intentan jugar buen fútbol. El único partido que no me teminó de convencer fue el de Honduras, por lo demás, creo que sigue siendo la misma selección que ganó la eurocopa.

Saludos y  gracias por las felicitaciones  :D.
#2
Cita de: Debci en 25 Junio 2010, 15:21 PM
Que me recomendais hacer ahora una vez estoy en este punto?
A falta de vulnerabilidades siempre puedes controlar y modificar el tráfico a tu antojo, no te limites a 'spoofear dns', el hombre en medio puede ser todo un titiritero dentro de la red.

Cita de: kamsky en 27 Junio 2010, 22:12 PM
http://foro.elhacker.net/hacking_avanzado/how_to_ataque_modelo_wifi-t262484.0.html
Me encanta ese toque personal que le das a tus trabajos kamsky, a ver cuando nos sorprendes con una tercera parte  :).

Saludos.
#3
Programación C/C++ / Re: tiempo de ejecucion
26 Junio 2010, 09:15 AM
Lo que buscas es una función T(n) o polinomio de grado 1 ( de ahí que el orden de eficiencia sea O(n) ) cuyos términos independientes equivalen a los tiempos de ejecución de las operaciones elementales de la función recursiva.

...seguro que ahora lo tienes más claro :P.
Como aquí no se resuelven las tareas de clase te recomiendo el mismo autor que comenta Leo:
Fundamentos de algoritmia (G Brassard & P Bratley).
.. y presta atención al capítulo 4, sobre todo a la resolución de recurrencias.

Saludos.
#4
Programación C/C++ / Re: tiempo de ejecucion
26 Junio 2010, 00:19 AM
- Complejidad: clase P.
- Orden de eficiencia: O(n).
- Tiempo de procesador: clock().

Saludos.
#5
Hacking / Re: Castigar a un intruso
25 Junio 2010, 23:42 PM
 :-\
#6
Foro Libre / Re: ¿Que estas escuchando?
25 Junio 2010, 12:54 PM
12Twelve - Mr Gesus
#7
Cita de: Novlucker en 21 Junio 2010, 14:31 PM
Solución 1, la hormiguita puede elegir otras formas y conocer nuevos mundos ...
Teología de la hormiguita le llaman  :P.
Cita de: Novlucker en 21 Junio 2010, 14:31 PM
Claro, si python es scripting ...
Estoy de acuerdo, solo creo que python aspira mucho más que sus compañeros de grupo  :rolleyes:.
Cita de: Novlucker en 21 Junio 2010, 14:31 PM
...y en un foro de seguridad
Sin embargo se trabaja más con overflows que con netfilter... no se Novlucker,  no lo entiendo, me parece perfecto la imagen que quereis transmitir en el foro pero no doy con la fórmula de dónde y cómo se debe decir cada cosa.
La verdad es que prefiero no tocar el más tema, por mi parte evito las palabras clave y seguimos con arrays y el buen rollo que trae esta sección.

Cita de: cbug en 21 Junio 2010, 17:01 PM
Esta puede ser una solución:

Código (python) [Seleccionar]
##Imprimo la diagonal secundaria
C = []
i = 0
j = 0
for i in range(n):
    for j in range(m):
        if(i + j == n - 1):
            C.append(matriz[i][j])
print(C)

No necesitas iterar a lo largo de todo el array, la diagonal es única solamente para matrices cuadradas y éso nos da algo de ventaja.
Código ("Python") [Seleccionar]

if n==m:
    for i in range(n):
        C.append(A[i][m-i-1])


...o en versión 'package', igual de válida que la anterior:
Código ("Python") [Seleccionar]

n==m and [C.append(A[i][m-i-1]) for i in range(n)


Saludos.
#8
Se nota que que has estado trabajando, lo que traes hoy tiene mejor pinta, estás preparado para la charla de la hormiguita. Imagina que una hormiguita recorre tu programa de arriba hacia abajo y por cada iteración del bucle da un pasito hacia delante.

En tu ejemplo de arriba:
Código ("python") [Seleccionar]

A=[]
for j in range(m):
    A.append([0]*n)

for j in range(m):
    for k in range(n):
        A[j][k] = float(raw_input("Dame el componente (%d,%d): " %(j+1,k+1)))


Código ("hormiguita") [Seleccionar]

j=0, j=1, j=2, ...la hormiguita da 3 pasos.

(j=0,k=0), (j=0,k=1), (j=0,k=2)
(j=1,k=0), (j=1,k=1), (j=1,k=2)
(j=2,k=0), (j=2,k=1), (j=2,k=2) ... la hormiguita da 9 pasos.

La hormiguita da un total de 12 pasos, (n*m)+m pasos.

Si incluyes la creación de cada fila del
array en el primer bucle anidado:
Código ("python") [Seleccionar]

A=[]
for j in range(m):
    A.append([0]*n)

    for k in range(n):
        A[j][k] = float(raw_input("Dame el componente (%d,%d): " %(j+1,k+1)))


Código ("hormiguita") [Seleccionar]

(j=0,k=0), (j=0,k=1), (j=0,k=2)
(j=1,k=0), (j=1,k=1), (j=1,k=2)
(j=2,k=0), (j=2,k=1), (j=2,k=2) ... la hormiguita da 9 pasos.

La hormiguita da un total de 9 pasos, n*m.
Si te cuento ésto es porque la calidad del código se mide entre otras muchas cosas por el menor número de pasos que da la hormiguita a lo largo de tu programa.

Volviendo con la diagonal, fijate bien como la solución que propone Leo es sin duda mejor que el recorrido que propones tú para recorrer la diagonal del array, ademas que la idea de la diagonal es solo para 'matrices cuadradas' (n=m), cosa que tampoco compruebas.

Solución 1 (la hormiguita de m pasos)
Código ("python") [Seleccionar]

if n == m:
    for k in range(m):
        C.append (A[k][k])


Solución 2 (la hormiguita de m*n pasos y está bastante mosqueada)
Código ("python") [Seleccionar]

if n == m:
    for k in range(m):
for j in range(n):
    if k==j:
C.append (A[j][k])


Para la diagonal en el otro sentido Leo lo ha dejado más que resuelto, procura hacer lo mismo para la próxima vez, es decir, lo primero es entender lo que uno quiere hacer y luego ya se llevará a la práctica, primero diseñar y luego programar.

Siguiendo con el ejemplo de Leo...
Código ("papel y lapiz") [Seleccionar]

La diagonal: (0,2) (1,1) (2,0)... la hormiguita DEBE dar 3 pasos, n o m (matriz cuadrada).
m = 3
n = 3 = 3

Bucle 0-2
k = 0
k = 1
k = 2

eureka!!
(0,2) (1,1) (2,0)
(k,2) (k,1) (k,0)

uhmmm...pero faltan las columnas...a ver...
k=0....necesito un 2
k=1....necesito un 1
k=2....necesito un 0

Si además sabemos que n y m valen siempre 3 en todo el recorrido, ¿se te ocurre algo?

Saludos.

pd.¿python en la sección de scripting? ¿en un foro de hacking?, si es porque no hay muchos posts lo podría apadrinar C/C++ , seguro que se llevan bien ;).
#9
Scripting / Re: Ayuda Python! Matriz..
16 Junio 2010, 03:19 AM
Cita de: cuazzo en 16 Junio 2010, 02:42 AM
pero si no se la dimension de la matriz no es posible hacer eso
No te entiendo, la dimensión del array lo tienes en...

n , nº de columnas
m , nº filas
len(A), nº de filas
len(A[x]) , nº de columnas de la fila x-ésima.



Cita de: cuazzo en 16 Junio 2010, 02:42 AM
se me ocurre sumar elemento por elemento,
A ver si ésto te ayuda:

m=int(raw_input("Ingrese el n\xa3mero de filas: "))
n=int(raw_input("Ingrese el n\xa3mero de columnas: "))

A = []
B = []
[ A.append( [  float(raw_input('Dame el componente (%d,%d): ' %(j+1,i+1))) for i in range(n) ] ) for j in range(m)]
[ B.append(0) for i in range(n)]

print A , "\n\n"

# Sentencia de control que suma las columnas del array A y lo almacena en el array B
for i in range(m):
    for j in range(n):
        print "?"
       
print "Soluci\xa2n: ", B


Cita de: cuazzo en 16 Junio 2010, 02:42 AM
soy muy novato recien empeze hace 2 semanas, pero ya voy a ir mejorando..
Bienvenido a python  ;).
#10
Scripting / Re: Ayuda Python! Matriz..
16 Junio 2010, 02:33 AM
Las comprehension lists vienen bien para manejar arrays:

m=int(raw_input("Ingrese el n\xa3mero de filas: "))
n=int(raw_input("Ingrese el n\xa3mero de columnas: "))

A = []
[ A.append( [  float(raw_input('Dame el componente (%d,%d): ' %(j+1,i+1))) for i in range(n) ] ) for j in range(m)]

print A , "\n\n"

for i in A:
    for j in i:
        if not j % 3:
            print j



Cita de: cuazzo en 16 Junio 2010, 02:27 AM
si yo quiero generar una matriz de una fila como resultado de la suma de los  elementos de las columnas de la matriz anterior, ¿como tengo que hacer?,
sumar uno por uno los elementos?
¿Por qué no lo intentas hacerlo por ti mismo?

Saludos.