Advertisement
D14M4NTE

Ruta más corta [1]

Sep 20th, 2012
1,208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.63 KB | None | 0 0
  1. #!/usr/bin/python
  2. # -*- coding: utf8 -*-
  3. def camino_corto(f1,c1,f2,c2,lista):    #Esta funcion generará el camino más corto, pero para ello pide las cordenadas del punto inicial, el punto final y la matriz donde de hará.
  4.     if (f1==f2):   
  5.         if (c1<c2):
  6.             lista[f1][c1]="+"
  7.             camino_corto(f1,c1+1,f2,c2,lista)
  8.         else :
  9.             lista[f1][c1]="+"
  10.             print "Ruta encontrada"
  11.     elif (f1<f2):  
  12.         lista[f1][c1]="+"
  13.         camino_corto(f1+1,c1,f2,c2,lista)
  14.     else:
  15.         print "ERROR"
  16.     return lista
  17.  
  18. def matriz(M,N):    #Aquí creamos la matriz de un tamaño MxN designado por el usuario
  19.     lista=[]
  20.     for x in range(M):
  21.         columnas=[]
  22.         for y in range(N):
  23.             columnas.append("x")
  24.         lista.append(columnas)
  25.     return lista
  26.  
  27. filas,columnas=input("Ingrese el tamaño de la matriz (filas,columnas), separando por con una coma (,) los valores: ")   #pedimos el tamaño de la matriz
  28. generando_m=matriz(filas,columnas)  #Generamos la matriz
  29.  
  30. print "Generando una matriz de {0}x{1} ...".format(filas,columnas)
  31. for x in range(filas)#Por estetica, imprimimos las matrices por filas.
  32.     print generando_m[x]
  33.  
  34. print ""
  35. f_final,c_final=input("Ingrese las coordenadas del punto final P, separando por una coma (,), los valores: ")       #Pedimos las coordenadas del punto final
  36. solucion=camino_corto(0,0,f_final-1,c_final-1,generando_m)  #Una vez obtenidas las coordenadas y generada la matriz, le pasamos los datos a nuestra función que nos dará la ruta más corta
  37. print ""
  38. print "Generando una Ruta desde el punto O(0,0) hasta el punto P({0},{1})".format(f_final,c_final)
  39.  
  40. for x in range(filas)#Por estetica imprimimos el resultado de la ruta, por filas.
  41.     print solucion[x]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement