(7 resultados encontrados. Mostrando del 1 al 7)

22

Ene

2008

1

A-practicando en la ciudad (II)

reloj20:55 calendarioCategorías: General, Personal, PHP, Programas, Universidad

Rafa me ha recordado la opción -boost al compilar, y la verdad, que los tiempos han mejorado increíblemente (sin tocar nada más del programa). Aquí los resultados:

  1.  
  2. jormaro@duero ~/practica2 $time ./a.out < 9_ciudades.txt ; time ./a.out < 10_ciudades.txt;time ./a.out < 11_ciudades.txt ; time ./a.out < 12_ciudades.txt
  3. 910.5
  4. SOR-BRG-PAL-VAL-LEO-ZAM-SAL-AVI-SEG-SOR
  5.  
  6. real 0m1.169s
  7. user 0m1.140s
  8. sys 0m0.020s
  9. 974.7
  10. SOR-ARN-SEG-SAL-ZAM-LEO-VAL-PAL-BRG-MIR-SOR
  11.  
  12. real 0m11.956s
  13. user 0m11.930s
  14. sys 0m0.020s
  15. 985.7
  16. SOR-ARN-SEG-AVI-SAL-ZAM-LEO-VAL-PAL-BRG-MIR-SOR
  17.  
  18. real 2m5.911s
  19. user 2m5.820s
  20. sys 0m0.000s
  21. 1110.9
  22. SOR-ARN-SEG-AVI-SAL-ZAM-PNF-LEO-VAL-PAL-BRG-MIR-SOR
  23.  
  24. real 24m45.139s
  25. user 24m44.500s
  26. sys 0m0.010s
  27.  

Ahora toca ponerse con la programación dinámica. A ver que sale 😛

22

Ene

2008

3

A-practicando en la ciudad (I)

reloj03:17 calendarioCategorías: Peripecias, Personal, PHP

Ando terminando una práctica de Estructura de Datos, y en lo que termina de ejecutarse la prueba con 12 ciudades (lleva ya un buen rato), os dejo los resultados hasta ahora. El programa tiene un concepto sencillo, se trata del problema del viajante, que tiene que pasar por n ciudades de la forma más eficiente posible, y pudiendo cambiar la dirección tan solo en el extremo más al oeste (va de este a oeste y luego vuelve al origen de oeste a este). Sencillo, ¿no? Pues mirad los resultados de mi algoritmo de fuerza bruta 😛

  1.  
  2. jormaro@duero ~/practica2 $time ./a.out < 5_ciudades.txt
  3. 343.0
  4. ORIGEN-INT1-INT2-EXTREMO-FALLO-ORIGEN
  5.  
  6. real 0m0.079s
  7. user 0m0.060s
  8. sys 0m0.030s
  9.  
  10. jormaro@duero ~/practica2 $time ./a.out < 9_ciudades.txt
  11. 910.5
  12. SOR-BRG-PAL-VAL-LEO-ZAM-SAL-AVI-SEG-SOR
  13.  
  14. real 3m11.552s
  15. user 3m11.500s
  16. sys 0m0.010s
  17.  
  18. real 33m28.323s
  19. user 33m27.470s
  20. sys 0m0.020s
  21.  

Decir que básicamente lo que hago es generar las n! posibles permutaciones de todas las ciudades, y escoger entre ellas la de mejor distancia. Es el peor algoritmo que hay, pero es el más fácil de implementar, y por algo hay que empezar. A ver si mañana consigo aplicar alguna estructura de datos propiamente dicha. Se admiten sugerencias 🙂

EDITO: seguimos viendo la maravillosa eficiencia de un algoritmo de fuerza bruta...

  1.  
  2. jormaro@duero ~/practica2 $time ./a.out < 10_ciudades.txt
  3. 974.7
  4. SOR-ARN-SEG-SAL-ZAM-LEO-VAL-PAL-BRG-MIR-SOR
  5.  

13

Sep

2007

8

Funcion is_date()

reloj23:33 calendarioCategorías: PHP

Bueno, la acabo de hacer, y me apetecía compartirla. Imagino que habrá alguna otra por ahí, pero esta es mía, mi tesooooro 🙂

  1.  
  2. function is_date($fecha){
  3. //Comprueba si la cadena introducida es de la forma D/m/Y (15/04/1920)
  4. if (ereg("([0-9]{1,2})/([0-9]{1,2})/([0-9]{4})", $fecha, $bloques)){
  5. if (($bloques[2]>12)|($bloques[2]<1)){
  6. return FALSE;
  7. }
  8. if (($bloques[2]==4)|($bloques[2]==6)|($bloques[2]==9)|($bloques[2]==11)){
  9. $dias_mes = 30;
  10. }else{
  11. if ($bloques[2]==2){ //febrero
  12. if((($bloques[3]%4==0)&(!($bloques[3]%100==0)))|($bloques[3]%400==0)){
  13. $dias_mes = 29;
  14. }else{
  15. $dias_mes = 28;
  16. }
  17. }else{
  18. $dias_mes = 31;
  19. }
  20. }
  21. if (($bloques[1]<1)|($bloques[1]>$dias_mes)){
  22. return FALSE;
  23. }
  24. }else{
  25. return FALSE;
  26. }
  27. return TRUE;
  28. }
  29.  

19

Dic

2004

3

Nuevos proyectos

reloj14:20 calendarioCategorías: Personal

Mi profesora de programación estaría orgullosa de que empiece a utilizar diagramas a diario, incluso para mi nuevo proyecto, una web para los apartamentos donde vivo

Diagrama

09

Dic

2004

1

PROYECTOS EN MENTE

reloj18:57 calendarioCategorías: Personal

Decir que he cogido hoy el gusto por escribir y este es otro post en diferido de los mí­os, que tengo pensado racionalizar para no escribir un dí­a mucho y otro dí­a nada. Bueno, reflexiones aparte...
Llevo dando vueltas a que llevo mucho tiempo sin hacer nada útil en Internet, ordenador o demás, por lo que quiero dejar constancia de que la intención al menos la tengo :D.
A continuación voy a poner una serie de proyectos que tengo en mente, a los cuales os invito a colaborar si podéis/sabéis:

  • Sistema anti-spam en el blog
  • Web de mi pueblo
  • CMS propio (una vez más, Xergio me pincha para ello, aunque lleva en mi mente desde verano)
  • Web y programa para controlar ftps en la residencia donde vivo
  • Instalar Gentoo en PC y portátil desde 0
  • Probar Fedora Core 3 en algún sitio
  • Programa basado en MySQL y PHP + Visual Basic para llevar un control sobre piezas de un almacén

Creo que ya vale. Decir que no están por orden de preferencia ni de prioridad, y bueno, solo es orientativo, ya que aparte de todo esto, tengo que estudiar bastante, y me gustaría pasar los apuntes de la universidad a ordenador (2 asignaturas nada más), que también me llevará tiempo.
Viendo esto, espero que también entendáis que no puedo dedicar al blog todo el tiempo que me gustarí­a, ya que es fí­sicamente imposible.
Un saludo y hasta más ver.

08

Jul

2004

4

Parsear XML con PHP

reloj00:58 calendarioCategorías: PHP

Esta tarde me instalé el Azureus, un cliente de Bittorrent, y la verdad es que va muy bien, y encima me fijé en que a diferencia de otros clientes P2P, en lugar de crear un archivo de texto plano con las estadísticas y demás, crea un fichero XML, para el cual hay varias funciones en PHP, pero que para mi eran imposibles de entender, por lo que le pedí ayuda a Diz, y al poco tiempo me apareció con el código que él mismo ha publicado aquí, y que yo he arreglado un poco, convirtiéndolo en una función, que para mi gusto es más sencilla de usar. El código es este:

  1.  
  2. < ?php
  3. function parsear ($ruta) {
  4. // Ruta al archivo
  5. $xml = '/home/patoroco/.azureus/Azureus_Stats.xml';
  6.  
  7. // Creamos el objeto DOM
  8. $xmldoc = domxml_open_file($xml);
  9.  
  10. // Creamos un contexto en este documento para la consulta XPath
  11. $xpctx = $xmldoc->xpath_new_context();
  12.  
  13. // Ejecutamos la consulta XPath en el contexto creado y recogemos el resultado
  14. $result = xpath_eval($xpctx, $ruta);
  15.  
  16. foreach ($result->nodeset as $nodo) {
  17. // Recorremos el array volcando el contenido (texto) de los nodos
  18. $resultado[] = $nodo->get_content();
  19. }
  20. return $resultado;
  21. }
  22. ?>

Y con esta función, sencillamente habría que saber la "ruta" de etiquetas en el XML, y por ejemplo, para mostrarlo, sería:

  1. $var = parsear('/STATS/GLOBAL/DOWNLOAD_SPEED/TEXT');
  2. echo $var[0];

Muchas gracias de nuevo a Diz, y gracias también a thessoro, por haber sugerido el tratar a los resultados como un array en lugar de como una cadena, ya que para cuando hay varios es mucho más practico.

07

Jul

2004

15

Creando ejecutables en PHP

reloj21:14 calendarioCategorías: PHP

Hace tiempo que llevaba queriendo escribir este tutorial, bueno, más que escribir, pasar a limpio, porque lo tenía en un *.txt esperando a ser publicado. Consiste básicamente en como crear un ejecutable programado en php, para poderlo abrir sin necesidad de navegador u otros.
[+ Más]