Bueno compañeros, en este tercer proyecto aparte de hacer el proyecto de la serie fibonacci, mi equipo y yo expondremos lo que tratan los numeros catalan. La profesora Elisa nos designó un equipo a cada quien...
Los números de Catalán forman una secuencia de números naturales que aparece en varios problemas de conteo que habitualmente son recursivos. Obtienen su nombre del matemático belga Eugene Charles Catalán (1814–1894).
#include
long*numero;
int n,i;
main()
{
printf("Ingrese el numero deseado de la serie:");
scanf("%d", &n);
numero = new long[n+1];
numero[0] = 1;
for (i = 1; i <= n; i++)
{
numero[i] = (numero[i-1]*2*(2*i-1))/(i+1);
}
printf("\nEl numero de Catalan para el numero %d es %d",n,numero[n]);
getchar();
getchar();
getchar();
}
Reporte
Recursion
La recursion es una tecnica utilizada para resolver problemas complejos sirve para se podria decir simplificarlos ya que
se dividen en partes haciendolos mas sencillos. Un Algoritmo recursivo es aquel que en una funcion se encuentra definido
en terminos de si mismo esto quiere decir que el valor que se devuelve al final es el mismo del inicio.
Un ejemplo puede ser en un programa cuando se pide un valor entero y el algoritmo como resultado debe escribir
los numeros de una forma vertical este vendria siendo el algoritmo
// ALGORITMO: escribaVerticalmenteDígitos(númeroEntero)
if (númeroEntero tiene un solo dígito)
print(númeroEntero)
else { escribaVerticalmenteDígitos(númeroEntero/10)
print(númeroEntero % 10)
}
Bueno en esta ocasión como ya todos savemos, la profesora al designarnos un equipo, tuvimos que trabajar como tal, un muy buen equipo. En todo equipo cada quien contribuye y pone un granito de arena para desarrollar un buen trabajo , en esta ocasión no fue la esepción. El haber trabaado en equipo me dejó muy buena experiencia, agradezco a cada miembro del equipo por contribuir con el proyecto.
Espero les sea de agrado nuestro proyecto, sin mas por el momento les deseo unas felices vacaciones de semana santa.
Aquí les dejo el link de los mimbros del equipo
Rodolfo Aguirre
Abraham
Cristian Estrada
Link de la presentación
http://rapidshare.com/files/363496541/PROYECTO.pptx
Bye...
jueves, 25 de marzo de 2010
sábado, 6 de marzo de 2010
Proyecto #3 Generación de elementos de la serie de Fibonacci.
Bueno amigos en este tercer proyecto de algoritmos, la profesora Elisa nos repartió distintos temas, a nuestro equipo en específico nos tocó el tema de la serie de Fibonacci.
Dando un pequeño detalle de sobre el porqué se nombra serie de Fibonacci, éste nombre se le da en honor a Leonardo de Pisa (apodado Fibonacci), descrubrió la secuencia cuando calculaba la expanción de población de conejos.
De esta forma se obtiene la secuencia: 1,1,2,3,5,8,13...Esta secuencia es la secuencia de Fibonacci
En la cual claramente podemos observar que cuaquier elemento de la secuencia está definido como la suma de los dos elementos anteriores.
Los matemáticos describen ésto como:
Ésta es una función recursiva , se comienza con 0 y 1, y luego cada número es la suma de los dos anteriores.
Éstas funciones pueden ser calculadas en computación con las máquinas turing, las cuales ya practicamos en clase con la profesora Elisa.
Entre más grandes sean los números de la secuencia de Fibonacci que se dividan, es mayor la precisión que logra de la proporción de oro. También entre más grandes sean los números de la secuencia de Fibonacci que se dividan, dos divisiones consecutivas tendrán casi el mismo valor.
1,1,2,3,5,8,13,21,34
1/1, 2/1, 3/2, 5/3, 8/5, 13/8, 21/13, 34/21
Llegaremos al número conocído como la proporción áurea o proporción de oro.
El diagrama de la serie Fibonacci se representa de la sig. forma:
Récursión:
En programación es cuando un módulo se invoca a sí mismo y a cada llamada al modulo se disminuye la dificultad hasta que ya no es necesario hacerlo y el problema se puede calcular fácilmente, por ejemplo se usa para hallar factoriales.
Cuando calculamos el número fibonacci recursivamente, internamente se está consumiendo espacio en pila, este espacio crece mucho conforme aumentamos la posición del número Fibonacci.
En conclusión calcular el número Fibonacci recursivamente no esla mejor forma, esto se hace a través de una estructura iterativa.
A continuación les presento el código que resuelve este problema iterativamente, en ella defino dos funciones: el primero para reportar el num. fibonacci indicada por "n", y el segundo para los num. hasta la posición "n"
Bueno aqui les dejo el link de un video que en lo personal me gustó mucho...
http://www.youtube.com/watch?v=yrb8QCjVrqI
mis compañeros de equipo son:
Rodolfo Aguirre
Abraham
Cristian Estrada
Sin mas que comentar por el momento... espero les guste mi proyecto #3
Bye...
jueves, 4 de marzo de 2010
Proyecto #2 Compañía de Encuestas Teléfonicas
Bueno en este segundo proyecto la profesora Elisa nos encargó un problema de optimización en la literatura.
En general amigos un problema de optimización está definido porun espacio de candidatos de la solución y una función de valoración que se busca minimizar o maximizar. Dado que la meta fundamental de un inversionista es asignar óptimamente sus inversiones entre las diferentes opciones, en este caso se tendrá como espacio de candidatos de la solución a la gama de activos existentes que cotizan en la bolsa de valores y como función objetivo se tendrá que minimizar el riesgo de cartera, medido por la varianza de los precioes de las acciones en la misma, sujeta a un nivel esperado de rendimientos finales.
Al tener en cuenta las restricciones a las que se encuentra el inversionista, la búsqueda de soluciones factibles se convierte en un problema de complejidad NP (No determinado como polinomial).
Todo modelo by lineal se puede escribir de la forma:
Donde x=(x1,...xn) ER^n definen las variables de decisión. En este problema se tienen restricciones de desigualdad y L restricciones de igualdad. Además ri y r... son restricciones de caja para cada una de las variables. Por notación se dirá que la región factible es
Una compañía de encuestas teléfonicas ha sido contratada para llevar a cabo una encuesta sobre hábitos televisivos entre las familias de las zonas rurales y urbanas de una ciudad determinada. El cliente ha determinado que se deben entrevistar a 150 familias, entre ellas mínimo 30 deben ser de zonas rurales y máximo 60. De las familias de la zona urbana se deben entrevistar como mínimo 40 y máximo 100. Por este servicio, la empresa recibe $6.000 por cada entrevista a familias de la zona rural y $5.000 por cada entrevista a las familias de zona urbana.
Por la experiencia obtenida anteriormente, se determina que la compañía realizará un gasto de
$2.500 por cada llamada a las zonas rurales y $2.000 a zonas urbanas y sólo se dispone de $320.000 para realizar dichas llamadas.
En este caso las variables de decisión son:
-x: número de llamadas a familias de zonas rurales
-y: número de llamadas a familias de zonas urbanas
El modelo matemáctico que representa a esta situación es :
max z =3500x+3000y
x+y=150
30<- x <-60
40<-y<-100
2500x+2000y<-320000
Para esto el cliente permite que el numero de entrevistados pueda estar entre 140 y 155. Además , que el máximo numero de familias a entrevistar de la zona rural sea de 65.
Por lo cual se puede ver como un problema de optimización con dos objetivos.
max z= (3500x + 3000y, lambda)
150-(1-lambda)10<-x+y<-150+(1-lambda)5
30<-x<-60+(1-lambda)5
40<-y<-100
2500x+2000y<-320000
En la siguiente tabla se describen las soluciones obtenidas.
A partir de lambda = 0,7 no se obtienen puntos factibles. Es decir, el máximo valor de pertenencia obtenido en la intersección de todas las restricciones es o,6.
Bueno esto es todo por mi parte, espero les haya gustado este segundo proyecto, que pasen buen fin de semana.
Bye.
Suscribirse a:
Entradas (Atom)