Entradas

Código en C. Algoritmo de Ackermann

#include <stdio.h> int ackerman(int m, int n) { if(m==0) return n+1; else { if(n==0) return ackerman(m-1, 1); else return ackerman(m-1, ackerman(m, n-1)); } } int main() { int m, n; printf("Dame el primer argumento para la funcion de Ackerman (m): "); scanf("%d",&m); printf("Dame el segundo argumento para la funcion de Ackerman (n): "); scanf("%d",&n); printf("Ackerman(%d,%d) = %d",m,n,ackerman(m,n)); printf("\n"); }

Algoritmo de Ackermann -Explicación del Funcionamiento-

Código de Ackermann Explicación. Es una función recursiva que toma dos números naturales y devuelve un único número natural. En 1928, Wilhelm Ackermann observó que A(x,y,z), la z-ésima exponenciación iterada de x con y  como exponente, es una función recursiva que no es recursiva primitiva. En 1935, Rózsa Peter simplificó A(x,y,z) a una función de dos variables. En 1948, Raphael M. Robinson simplificó la condición inicial. Quedando una función doblemente recursiva  de N 2  en N, definida recursivamente por las tres condiciones siguientes: A[0,n] : = n+1; A[m_,0] : = A[m -1,1] ; A[m_,n] := A [m -1, A[m,n - 1]] ; Pseudocódigo. A(m,n) = A(m-1, A(m,n-1))    m > 0 ^ n > 0 A(0,n) = n +1                         m = 0 A(m,0) = A(m-1,1)             ...

Código en Lenguaje C "Librería Windows"

#include<stdio.h> #include<windows.h> int main() { int i; for(i=0;i<1000000;i++) { SetConsoleTextAttribute(GetStdHandle (STD_OUTPUT_HANDLE), i); printf("Color numero %d\n", i); getch(); } }

Algoritmo de Grafos. Comparación de PRIM, KRUSKAL, DIJKSTRA. Codigo en C

#include<stdio.h> #include<conio.h> #include <windows.h> #define INFINITY 9999 #define MAX 10  typedef struct { int dato; int marca; } t_Grafo; t_Grafo G[MAX][MAX]; int i,j,k,a,b,u,v,n,ne=1; int min,mincost=0,cost[9][9],parent[9];  int find(int); int uni(int,int); void titulo(); void gotoxy(int x,int y); int spanning[MAX][MAX];  void IngresaMAD(t_Grafo G[MAX][MAX],int n); void dijkstra(t_Grafo G[MAX][MAX],int n,int startnode);  void mostrar(t_Grafo G[MAX][MAX],int n); void  Dijktra(); void Kruskal (); void Prim(); int prims(); int main() { int op; do{ titulo(); printf("\n 1- Recorrido minimo de Grafo Algoritmo de KRUSKAL  \n 2-Recorrido minimo de Grafo Algoritmo de PRIM  \n 3-Distancia minima de Nodo de partida al Resto de Grafo Algoritmo de DIJKTRA  \n 4-Salir \n\n Opcion :...  " ); scanf("%d",&op); switch(op){ case 1 : titulo(); Kruskal(); ...

Informe "Segundo Taller de Algoritmo y Estructuras de Datos II" - GRAFOS -

Introducción Un grafo es un conjunto de vértices conectados por medio de aristas. Las aristas pueden estar direccionadas, en cuyo caso se las denomina arcos, y a las mismas se les puede asignar un peso que puede representar por ejemplo su longitud o un tiempo asociado con la misma, etc. Un grafo en el que las aristas están direccionadas se denomina dígrafo. En este breve informe se presentara las distintas aplicaciones de los algoritmos de grafos. Aplicación: Algoritmo de PRIM y KRUSKAL: Para el desarrollo de los Algoritmos PRIM y KRUSKAL, se utilizó la Teoríade grafos y  se aplica en el modelamiento de problemas de sistemas reales, en el cual los pesos y los costos son asociados a los arcos del grafo, así tenemos su utilización para resolver: • En diseño de redes de transporte, donde los pesos pueden representar distancias asociadas a la interconexión entre un lugar y otro. • En diseño de redes de telecomunicaciones, donde los pesos podrían representar distan...

Taller : comparacion de Metodos Logaritmicos y Directos

Taller : comparacion de Metodos Logaritmicos y Directos “Comparación de métodos de ordenación Directa y Logarítmica” La ordenación interna o de arreglo reciben este nombre ya que los elementos o componentes del arreglo se encuentran en la memoria principal de la computadora. Los métodos de ordenación interna a su vez se clasifican en: v Métodos directos o (N 2 ). v Métodos Logarítmicos o (N *log N). a)       Los métodos directo s, son los más simples y fáciles de entender, son eficientes cuando se trata de una cantidad de datos pequeña. b)       Los métodos logarítmicos , son más complejos, difíciles de entender y son eficientes en grandes cantidades de datos. Objetivo de nuestro Programa: Teniendo en cuenta el tema elegido, nos enfocamos en la comparación de duración de Métodos Directos y Logarítmicos, calcular el tiempo real que tarda en procesar cada uno de estos métodos, ver las animaciones de ordenamiento ...