• Jueves 25 de Abril de 2024, 00:24

Mostrar Mensajes

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


Mensajes - Gaudy

Páginas: [1]
1
C/C++ / Duda, declaracion miembros de Estructura
« en: Viernes 14 de Septiembre de 2012, 23:58 »
Buenas, recién estoy estudiando C y me topé con una duda acá
Código: C
  1.         typedef struct {
  2.              float re;
  3.              float im;
  4.         } complex;
  5.  
  6.         complex  a, b, c[100];
se supone q la variable c es de tipo complex, pero... es un arreglo?? se puede hacer eso?? porq segun tenia entendido las variables miembros de estructura son para hacer referencia (propia) a re e im de tipo float, pero q hace un arreglo en el medio¿?

2
Java / Dudas con parametros para este método
« en: Domingo 3 de Julio de 2011, 23:45 »
Buenas, necesito hacer funcionar el Algoritmo de Edmonds-Karp que encuentra el Flujo Maximo de un Grafo. Si bien me conseguí la implementacion en Java, pero me hace falta entender que parametros exactamente me pide el método.

Por cierto:
C: es la matriz de representacion del Grafo
E: ?
s: nodo de inicio
t: nodo destino

Mi dudas son:
Si fuera posible que alguien me explicara que es el E, se q es una matriz, pero no se de que. En el parametro me piden los nodos s y t, pero en ¿¿formato int??

[php:3mfhc41b]
  1. import java.util.*;
  2.  
  3. /**
  4.  * Finds the maximum flow in a flow network.
  5.  * @param E neighbour lists
  6.  * @param C capacity matrix (must be n by n)
  7.  * @param s source
  8.  * @param t sink
  9.  * @return maximum flow
  10.  */
  11. public class EdmondsKarp {
  12.     public static int edmondsKarp(int[][] E, int[][] C, int s, int t) {
  13.         int n = C.length;
  14.         // Residual capacity from u to v is C[v] - F[v]
  15.         int[][] F = new int[n][n];
  16.         while (true) {
  17.             int[] P = new int[n]; // Parent table
  18.             Arrays.fill(P, -1);
  19.             P[s] = s;
  20.             int[] M = new int[n]; // Capacity of path to node
  21.             M[s] = Integer.MAX_VALUE;
  22.             // BFS queue
  23.             Queue<Integer> Q = new LinkedList<Integer>();
  24.             Q.offer(s);
  25.             LOOP:
  26.             while (!Q.isEmpty()) {
  27.                 int u = Q.poll();
  28.                 for (int v : E[u]) {
  29.                     // There is available capacity,
  30.                     // and v is not seen before in search
  31.                     if (C[u][v] - F[u][v] > 0 && P[v] == -1) {
  32.                         P[v] = u;
  33.                         M[v] = Math.min(M[u], C[u][v] - F[u][v]);
  34.                         if (v != t)
  35.                             Q.offer(v);
  36.                         else {
  37.                             // Backtrack search, and write flow
  38.                             while (P[v] != v) {
  39.                                 u = P[v];
  40.                                 F[u][v] += M[t];
  41.                                 F[v][u] -= M[t];
  42.                                 v = u;
  43.                             }
  44.                             break LOOP;
  45.                         }
  46.                     }
  47.                 }
  48.             }
  49.             if (P[t] == -1) { // We did not find a path to t
  50.                 int sum = 0;
  51.                 for (int x : F[s])
  52.                     sum += x;
  53.                 return sum;
  54.             }
  55.         }
  56.     }
  57. }
[/php:3mfhc41b]

3
Python / Error al compilar
« en: Miércoles 1 de Junio de 2011, 18:39 »
Buenas, aca traigo otras de mis dudas, en el otro tema habia dixo q ecien estoy empesando con este lenguaje, he visto varios tutoriales de momento, pero sinembargo me estoy topando con problemas (quizas para muchos muy sencillos de tratar), el compilador me esta tirando un error en la linea 28 (la linea despues de la definicion de la funcion insercion), no entiendo el porq del error por lo q tampoco en ningun momento lo llamo, espero q me puedan responder a esta duda, se los agradecería.

Citar
 File "C:Documents and SettingsUsuarioMis documentosNetBeansProjectsSorts_Pythonsrcsorts_python.py", line 28
SyntaxError: Non-UTF-8 code starting with 'xf1' in file C:Documents and SettingsUsuarioMis documentosNetBeansProjectsSorts_Pythonsrcsorts_python.py on line 28, but no encoding declared; see [ENLACE Q EL FORO ME IMPIDE COLOCAR] for details

Código: Python
  1. import random
  2.  
  3. lista_Ordenada = [ ]
  4. lista_desordenada = [ ]
  5. lista_aleatoria = [ ]
  6.  
  7. longitud = 100
  8.  
  9. def quicksort(datos, primero, ultimo):
  10.     i = primero
  11.     j = ultimo
  12.     pivote = (datos[primero] + datos[ultimo]) / 2
  13.     while i < j:
  14.         while datos[i] < pivote: i+=1
  15.         while datos[j] > pivote: j-=1
  16.         if i <= j:
  17.             aux = datos[i]
  18.             datos[i] = datos[j]
  19.             datos[j] = aux
  20.             i+=1
  21.             j-=1
  22.  
  23.     if primero < j: datos = quicksort(datos, primero, j)
  24.     if ultimo > i: datos = quicksort(datos, i, ultimo)
  25.     return datos
  26.  
  27. def insertionsort(numeros): #numeros es una lista
  28.     tama = len(numeros) #creamos una variable igual al tamaño de la lista
  29.     i=0
  30.     for i in range(tama):
  31.         indice = numeros[i]
  32.         a = i-1
  33.         while (a >= 0 and numeros[a] > indice):
  34.             numeros[a+1] = numeros[a]
  35.             a = a-1
  36.         numeros[a+1] = indice
  37.     print numeros #imprime la lista ordenada
  38.  
  39. def seleccion(lista):
  40.     n = len(lista)
  41.     for i in range(0,n-1):
  42.         k = i
  43.         t = lista[i]
  44.         for j in range(i,n):
  45.             if lista[j] < t:
  46.                 k = j
  47.                 t = lista[j]
  48.         lista[k] = lista[i]
  49.         lista[i] = t
  50.  
  51.     return lista
  52.  
  53. def ordenaburbuja(l):
  54.     for pasada in range(1, len(l)):
  55.         for i in range(0,len(l)-pasada):
  56.             if l[i] > l[i+1]:
  57.                 l[i], l[i+1] = l[i+1], l[i]
  58.     return l
  59.  
  60. for i in range(longitud-1):
  61.     j = longitud - i
  62.     lista_Ordenada.append(i+1)
  63.     lista_desordenada.append(j-1)
  64.     lista_aleatoria.append(random.randint(1, 100))
  65.    
  66. quicksort(lista_aleatoria,0,len(lista_aleatoria)-1)
  67.    
  68. for i in range(longitud-1):
  69.     print(lista_aleatoria[i])
  70.  

EDITO:
Ya lo solicioné, se me olvidaba especificar q la version q uso es el 3.2, la ultima linea de insertsort me faltaba agregar los parentes de la impresion print (numeros), pero aun daba el mismo error, este se solucionó quitando el comentario #creamos una variable igual al tamaño de la lista. Simplemente no entiendo como es q un comentario pueda dar problemas al momento de compilar, me quito un buen tiempo intentando entender porq no funcionaba y fue lo q menos em esperaba, un comentario =S

Bueno... ya esta solucionado, aunq quiciera q alguien me explicara porq daba problemas el comentario =P

Gracias

4
Python / Duda simple de asignación [soy Noob]
« en: Miércoles 1 de Junio de 2011, 18:26 »
Buenas, hace unos días acabo de empezar a estudiar pitón, pero no me quedó claro el tema de asignación, les explico:

En las ultimas líneas llamo a la función quicksort ingresando una lista_aleatoria de parámetro, pero cuando termina de ejecutarse el método de ordenamiento, me encuentro que la lista_aleatoria fue ordenada sin q se lo especificara, como le hago para evitar esto? Puesto q necesito de esta misma lista para usarlo en otros métodos de ordenamiento.

Código: Python
  1. import random
  2.  
  3. lista_aleatoria = [ ]
  4. longitud = 100
  5.  
  6. def quicksort(datos, primero, ultimo):
  7.     i = primero
  8.     j = ultimo
  9.     pivote = (datos[primero] + datos[ultimo]) / 2
  10.     while i < j:
  11.         while datos[i] < pivote: i+=1
  12.         while datos[j] > pivote: j-=1
  13.         if i <= j:
  14.             aux = datos[i]
  15.             datos[i] = datos[j]
  16.             datos[j] = aux
  17.             i+=1
  18.             j-=1
  19.  
  20.     if primero < j: datos = quicksort(datos, primero, j)
  21.     if ultimo > i: datos = quicksort(datos, i, ultimo)
  22.     return datos
  23.  
  24.  
  25. for i in range(longitud-1):
  26.     j = longitud - i
  27.     lista_aleatoria.append(random.randint(1, 100))
  28.  
  29. quicksort(lista_aleatoria,0,len(lista_aleatoria)-1)
  30.  
  31. for i in range(longitud-1):
  32.     print(lista_aleatoria[i])
  33.  
  34.  

Páginas: [1]