Ir al contenido principal

Entradas

Mostrando entradas de septiembre, 2012

Obtener numeros aleatorios en C++ (rand, srand)

Es algo muy frecuente, cuando ya dominas todo eso de pedir y almacenar datos, ahora tu profesor te pedirá que tus programas generen números aleatorios para automatizar el proceso de llenar arreglos y todo eso.
Así que lo primero que tenemos que hacer es incluir la librería:
#include<stdlib.h>

Necesitamos esta libreria para usar la función time()
#include<time.h>

Luego inicializar los números aleatorios incluyendo esto:
srand(time(NULL));

Luego guardar el número aleatorio en alguna parte:
num = rand();

Para ajustar el rango de número aleatorios podemos hacer varias cosas.

- Número aleatorios entre 0 y 50:
  num=rand()%51;

- Número aleatorios entre 1 y 100:
  num=1+rand()%(101-1);

- Número aleatorios entre 250 y 420:
  num=250+rand()%(421-250);

De forma general es:
variable = limite_inferior + rand() % (limite_superior +1 - limite_inferior) ;

Así que un programa que muestre 10 números aleatorios entre 1 y 10 quedaría así:

Torres de Hanoi en C++

Numeros de Catalan en C++

,  para
Implementación

Funcion de Ackerman en C++

En teoría de la computación, la función de Ackermann es una función recursiva que toma dos números naturales como argumentos y devuelve un único número natural. Como norma general se define como sigue:

Implementación

Serie de Fibonacci en C++

Una sucesión de Fibonacci es aquella cuya ley de recurrencia es: an = an-1 + an-2. Es decir, cada término de la sucesión se obtiene sumando los dos anteriores. Para empezar a construirla necesitamos, por tanto, dos números de partida, a1 y a2. De esta forma, a3 sería a2 + a1 ; a4 sería a3 + a2 y así sucesivamente.


La más conocida es la que tiene a1 = 1 y a2 = 1, cuyos términos son: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377 ... números que son conocidos como Números de Fibonacci.

Los términos de cualquier sucesión de Fibonacci tienen la particularidad de que el cociente entre dos términos consecutivos se aproxima al Número de Oro (1.6180339887499...), es decir, el límite de los cocientes an+1/an tiende al Número de Oro cuando n tiende a infinito.

Además, las series de Fibonacci cumplen otras curiosas propiedades, como por ejemplo, que la suma de n términos es igual al término n+2 menos uno:

a1 + a2 + a3 + a4 + ..... + an-1 + an = an+2 - 1

Implementación

Algoritmo Selección de Actividades en C++

Este fue el tema final para la exposición de mi proyecto en Técnicas de Construcción de Programas, recopile información de muchos sitios web para lograr entender y asi poder implementar. Espero que les guste este pequeño aporte.



Suponga que se cuenta con un conjunto S ={a1, . . . , an}, de actividades que necesitan usar un recurso que no puede ser usado sino por una actividad a la vez. Cada actividad ai tiene un tiempo inicial si y final fi asociados, tal que si≤ fi< ∞.

Las actividades ai y aj son compatibles si la intersección de los intervalos [si, fi) ∩[sj, fj) = φ.

El problema de selección de actividades:
Entrada: S = {a1, ..., an} si, fi1 ≤ i ≤ n
Salida: A ⊆ S: todas las actividades de A son mutuamente compatibles, y | A | es el máximo posible.


Las actividades representadas de forma grafica :


Los subconjuntos : {a3, a9, a11}, {a1, a4, a8, a11}, {a2, a4, a9, a11} estan compuestos de actividades mutuamente compatibles.

Criterio de selección voraz
L…

Algoritmo de Boyer Moore Horspool en C++

Características
Es una simplificación del algoritmo de Boyer-Moore.Es fácil de implementar.Existe un preprocesamiento del patrón.Necesita O(σ)en espacio y O(m+σ)en tiempo (por el preprocesamiento).Realiza saltos determinados en el preprocesamiento.Compara de derecha a izquierda.Realiza la búsqueda del patrón en un tiempo O(mn).Realiza un número promedio de comparaciones para un carácter entre 1/σy 2/(σ+1).Lógica
Se calcula el preprocesamiento del patrón de la siguiente forma:Se calcula la distancia mínima entre el último carácter y la ocurrencia de cada carácter del alfabeto de la hilera principal.
Para realizar la búsqueda:

Consiste en la comparación de cada carácter del texto con las posiciones del patrón en el orden m-1, 0, 1, 2, …, y m-2, si se da una ocurrencia del patrón o no.
Cuando se encuentra una no ocurrencia, al hacer la primera comparación entre el patrón y el texto, el salto se calcula bmBc[c], donde ces el carácter del texto.
Cuando se encuentra una no ocurrencia o una ocu…

OpenGL: Instalar GLUT en Code::Blocks

En esta ocasion, voy ha tratar de explicar lo mas detalladamente de como instalar el GLUT, para poder programar en OpenGl sin ningun problema, en este caso lo instalaremos en este IDE muy bueno llamado Code::Blocks :D
Existen versiones de Code::Blocks para diferentes sistemas ya sea Windows, Linux, Mac. En este caso haremos la instalacion en Windows 7, pero funciona igual ya sea XP o Vista.

Primero nos vamos a la pagina oficial de Code::Blocks http://www.codeblocks.org/downloads, seleccionamos la version "binary", que viene con compilador incluido para no tener problemas.

Ya descargado, ejecutamos el instalador de CodeBlocks y en una de las pantallas preliminares de la instalación nos preguntará qué componentes queremos instalar.Nosotros selecionaremos del desplegable la opción Full: All plugins, all tools, just everything y continuaremos con la instalación. Por defecto (en Windows 7) instalará el programa en C:\Archivos de programa\CodeBlocks.
Y seguimos el tipico proceso de i…