Python - Cuadrado Magico

   
Vista:

Cuadrado Magico

Publicado por carlota (6 intervenciones) el 13/04/2013 21:40:57
Hola me gustaria saber como puedo programar en Python el cuadrado magico de lado multiplo de 4, si alguien me puede ayudar se lo agradeceria.
Un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Cuadrado Magico

Publicado por xve (1237 intervenciones) el 13/04/2013 22:06:13
Hola Carlota, nos puedes comentar mas datos sobre esto que comentas del "cuadrado magico"? exactamente que tiene que ser o hacer?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cuadrado Magico

Publicado por carlota (6 intervenciones) el 13/04/2013 22:42:13
Un cuadrado magico es que todas las diagonales filas y columnas suman lo mismo. Entondes tengo que crear un progrsma de un cuadrado de lado multiplo de 4 y que pidiendo el numero de filas me contruya el cuadrado mágico por ejemplo de lado 4
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Cuadrado Magico

Publicado por xve (1237 intervenciones) el 14/04/2013 20:13:51
Hola Carlota, gracias por comentarlo...

He buscado un poco, y he visto que hay varios tipos de cuadrados mágicos, pero en la wikipedia, he encontrado este código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#!/usr/bin/python
# -*- coding: utf-8 -*-
 
def magico_impar (n):
    # Método Siamés -- 1691 Simón de la Loubere
    i = 0
    j = n/2
    contador = 1
    arreglo = [0]*n
 
    for y in range(n):
        arreglo[y] = [0]*n
 
    arreglo[i][j] = 1
    x = (n*n)
 
    while(contador < x):
        if((i-1)>=0):
            if((j+1)<(n)):
                if(arreglo[i-1][j+1]==0):
                    i -= 1
                    j += 1
                    contador += 1
                    arreglo[i][j] = contador
                else:
                    i += 1
                    contador += 1
                    arreglo[i][j] = contador
            else:
                if(arreglo[i-1][0]==0):
                    i -= 1
                    j = 0
                    contador += 1
                    arreglo[i][j] = contador
                else:
                    i += 1
                    contador += 1
                    arreglo[i][j] = contador
        else:
            if(((j+1)<(n))):
                if (arreglo[n-1][j+1]==0):
                    i = n-1
                    j += 1
                    contador += 1
                    arreglo[i][j] = contador
                else:
                    i += 1
                    contador += 1
                    arreglo[i][j] = contador
            else:
                i += 1
                contador += 1
                arreglo[i][j] = contador
 
    for p in arreglo:
        print p
    return arreglo
 
x=magico_impar(10)

http://es.wikipedia.org/wiki/Cuadrado_mágico#Construcci.C3.B3n_de_cuadrados_m.C3.A1gicos

Espero que te sirva.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cuadrado Magico

Publicado por Carlota (6 intervenciones) el 14/04/2013 20:15:12
Ese es de lado impar y no me sirve, puesto que el que tengo que hacer es de lado multiplo de 4.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar