miércoles, 8 de diciembre de 2010

Código adicional para practica de Teoría de Algortimos ( ETSIIT UGR )

Aquí teneis un póquito de código que os será muy util para hacer la practica de TA.
Teneis una función para generar puntos aleatorios, un par de funciones para guardar y cargar puntos en ficheros... con esto os podréis centrar solo en los algoritmos que se piden en las prácticas sin preocuparse de todas estas funciones adicionales.

Descargar aquí

Espero que os sirvan de ayuda ! un saludo.

Workespeis Team.

9 comentarios:

Anónimo dijo...

Los valores aleatorios que generais no son uniformes al usar la funcion seno. No se para que tipo de ejercicio los vais a usar pero lo mismo esto vicia el resultado.

Pedro_Wkspeis dijo...

Exacto, pero no importa en el resultado. El problema esque la gente estaba usando random, delimitando con el resto ( % ) para sacar los valores, y esto devuelve valores enteros, y lo que se necesitaban eran numeros reales ( float ), probablemente la dispersión de los puntos no sea muy buena pero para poder probar los algoritmos funciona bastante bien. Muchas gracias por revisar el código y aclararlo.
Un saludo.

Ellyster dijo...

Para eso existe la funcion fmod... que te da el modulo en flotante.

O puedes usar esta funcion:
http://www.cplusplus.com/forum/beginner/7445/#msg34343

Pero generalos con el seno y el coseno, puede hacer que no pasen un test de aleatoriedad.

Anónimo dijo...

Con seno y coseno seguro que no pasan un test de aleatoriedad uniforme.

Por otra parte el uso del módulo tampoco da un resultado demasiado bueno:
http://www.cplusplus.com/reference/clibrary/cstdlib/rand/

Yo simplemente dividiría el resultado del rand por RAND_MAX. Con eso simplemente tienes la misma calidad que implemente el algoritmo de rand() ... o eso o me implemento mi propio generador aleatorio, que es bastante sencillo.

workespeis dijo...

Gracias por las explicaciones.

El caso es que la práctica no consistía en generar puntos aleatorios si no en buscar la pareja de puntos más cercana. Para probar las funciones se generan puntos que no tienen porque ser completamente aleatorios. El problema es que vi que mucha gente estaba usando rand tal cual y asignando a float por lo tanto todos los puntos eran enteros y se repetían muchos. El principal problema era la repetición de puntos ya que eliminar puntos repetidos es algo costoso, así que se nos ocurrió este método rápido para eliminar el problema. De esta forma aunque no fuesen totalmente aleatorios, era perfectamente válido para testear las prácticas.

Saludos.

Gogle dijo...

Te doy mis felicitaciones por este blog tan bueno! sinceramente no lo conocía, lo pongo en favoritos ahora mismo.

Un saludo
Enrique

Tueti dijo...

Te doy mis felicitaciones por este blog tan bueno! sinceramente no lo conocía, lo pongo en favoritos ahora mismo.

Un saludo
Enrique

Informatico en Sevilla dijo...
Este comentario ha sido eliminado por un administrador del blog.
2012 fin del mundo dijo...
Este comentario ha sido eliminado por un administrador del blog.

Publicar un comentario