Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Meta en 18 Noviembre 2010, 09:50 am



Título: [Python] - Primos y matrices.
Publicado por: Meta en 18 Noviembre 2010, 09:50 am
Hola:
 >:D

Ver número 255). (http://www.subeimagenes.com/img/wwwwwwwwwwwwwwwwwwwwwwwww-7145.jpg)




Título: Re: [Python] - Primos y matrices.
Publicado por: Meta en 19 Noviembre 2010, 07:28 am
En algoritmo por lo que interpreto es:

-  Lista de Matriz.
- Determinar si son números primos o no.
...

Código
  1. A = [[1, 2,  3], [2, 12, 6], [1, 0, -3], [10, -1, 0]]
  2.  
  3. sumatorio = 0
  4.  
  5. for i in range(A:
  6.    sumatorio += i
  7.    A = ¡**2
  8. print A

Me sale este error.
Código
  1.    A = ¡**2
  2.        ^
  3. SyntaxError: invalid syntax
  4.  


Título: Re: [Python] - Primos y matrices.
Publicado por: [L]ord [R]NA en 19 Noviembre 2010, 08:37 am
Esta mal, suma todas las filas, luego suma todas las columnas y verifica si el resultado de la sumatoria de alguna fila es igual al resultado de la sumatoria de alguna columna, eso es todo lo que te estan pidiendo... por cierto donde te da el error tienes un signo de admiracion, no es una i


Título: Re: [Python] - Primos y matrices.
Publicado por: Meta en 19 Noviembre 2010, 09:28 am
Iba a sumar pero me sale este error.

Citar
    for i in range(A):
TypeError: range() integer end argument expected, got list.

Código
  1. A = [[1, 2,  3], [2, 12, 6], [1, 0, -3], [10, -1, 0]]
  2.  
  3. for i in range(A):
  4.    print A[i]

Juaría que la suma es algo como esto:

Código
  1. # Empieza el c´alculo de la suma.
  2. 31 for i in range(m):
  3. 32 for j in range(n):
  4. 33 C[i][j] = A[i][j] + B[i][j]
  5. 34
  6. 35 # Y mostramos el resultado por pantalla
  7. 36 print "Suma:"
  8. 37 for i in range(m):
  9. 38 for j in range(n):
  10. 39 print C[i][j],
  11. 40 print

Página 198 del pdf de mi firma.


Título: Re: [Python] - Primos y matrices.
Publicado por: seele en 19 Noviembre 2010, 13:34 pm
pues justamente esto
Código
  1. for i in range(A):
  2. TypeError: range() integer end argument expected, got list.

range espera un entero como minimo como parametro y le estas pasando una lista


Título: Re: [Python] - Primos y matrices.
Publicado por: Meta en 19 Noviembre 2010, 15:47 pm
Código
  1. A = [[1, 2,  3], [2, 12, 6], [1, 0, -3], [10, -1, 0]]
  2.  
  3. for i in len(A):
  4.    print A[i]

Con len(A) tampoco funciona. Dentro de un rato investigaré más, ahora mismo voy a reparar una nevera, ajjajja. Gracias por su paciencia y enseñarme.

Muchísimas gracias a todos y a todas.


Título: Re: [Python] - Primos y matrices.
Publicado por: Novlucker en 19 Noviembre 2010, 16:03 pm
A ver Meta, analiza detenidamente los errores, es que el for espera una lista de items o un iterador.
range: genera una lista recibiendo como parametro los valores del rango en el que deben de estar, es decir, un número, tu que le estas pasando como parametro? Una lista.
len: devuelve el largo de una lista, es decir, devuelve un número, pero el for necesita una lista
¿Donde esta la lista? La lista es la propia A

Código:
por cada elemento en A:
imprime elemento

Saludos


Título: Re: [Python] - Primos y matrices.
Publicado por: Meta en 19 Noviembre 2010, 16:39 pm
Lo raro que A tiene varias listas dentro, por eso estoy pescando, jejeje.


Título: Re: [Python] - Primos y matrices.
Publicado por: Novlucker en 19 Noviembre 2010, 18:36 pm
Código
  1. >>> a = [[1,2],[3,4],[5,6]]
  2. >>> for i in a:
  3. ...     print i
  4. ...
  5. [1, 2]
  6. [3, 4]
  7. [5, 6]
  8. >>>

Con esto tiene que ser suficiente supongo
Ponle ganas, pero ganas de verdad :rolleyes:

Saludos


Título: Re: [Python] - Primos y matrices.
Publicado por: Meta en 20 Noviembre 2010, 06:01 am
Código
  1. A = [[1, 2,  3], [2, 12, 6], [1, 0, -3], [10, -1, 0]]
  2.  
  3. sumatorio = 0
  4.  
  5. for i in A:
  6.    sumatorio += i
  7.    A = i**2
  8. print A

Citar
    sumatorio += i
TypeError: unsupported operand type(s) for +=: 'int' and 'list'



Título: Re: [Python] - Primos y matrices.
Publicado por: Shell Root en 20 Noviembre 2010, 06:07 am
Obvio, porque lo que en realidad estás sumando son listas,
Código
  1. [1, 2, 3]
  2. [2, 12, 6]
  3. [1, 0, -3]
  4. [10, -1, 0]

es decir, estás sumando de la siguiente manera,
Código
  1. [1, 2, 3] + [2, 12, 6] + [1, 0, -3] + [10, -1, 0]

podrías hacer algo como esto,
Código
  1. A = [[1, 2,  3], [2, 12, 6], [1, 0, -3], [10, -1, 0]]
  2.  
  3. sumatorio = 0
  4.  
  5. for i in A:
  6. for j in i:
  7. sumatorio += j
  8. print sumatorio


Título: Re: [Python] - Primos y matrices.
Publicado por: Meta en 20 Noviembre 2010, 06:35 am
Hice esto:

Código
  1. A = [[1, 2,  3], [2, 12, 6], [1, 0, -3], [10, -1, 0]]
  2.  
  3. sumatorio = 0
  4.  
  5. for i in A:
  6.    for j in i:
  7.        sumatorio += j
  8. print sumatorio

Resultado.
Citar
33

Parece que funciona.


Título: Re: [Python] - Primos y matrices.
Publicado por: [L]ord [R]NA en 20 Noviembre 2010, 13:42 pm
Nop, esta mal... estas sumando todos los elementos de la matriz y segun el enunciado necesitas ver si la suma de alguna fila es igual a la suma de alguna columna.

Edito:

creo que lo que te piden es algo asi:

Código
  1. a=[]
  2. b=[]
  3. c,d=0,0
  4. M=[[13,4,2],[4,34,5],[2,56,3]]
  5.  
  6. for i in M:#Filas
  7.    for j in i:
  8.        c+=j
  9.    a.append(c)
  10.    c=0
  11.  
  12. for j in range(0,3): #Columnas
  13.        for k in range(0,3):
  14.            d+=M[k][j]
  15.        b.append(d)
  16.        d=0
  17.  
  18. for i in a:#Comprobacion
  19.    for j in b:
  20.        if i==j:
  21.            print "Es una Matriz Prima."
  22.            exit(0)
  23. print "No es una Matriz Prima"