jueves, 30 de junio de 2011

UNIDAD TEMATICA 4:

AQUI LES DEJO UN VIDEO DONDE SE EXPLICAN VARIAS OPERACIONES MATEMATICAS DE LOGARITMOS ESPERO Y SEA UTIL

UNIDAD TEMATICA 4:ANALISIS ASINTOTICO DE ALGORITMOS

AQUI ESTAN LAS FUNCIONES DE LOS LOGARITMOS DE UNA MANERA SENCILLA ESPERO Y SEA UTIL Y VIENE CON UN EJEMPLO

¿QUE ES EL LOGARITMODE UN NUMERO? Se llama logaritmo de un número al exponente al que hay que elevar otro número llamado base para obtener el número dado. Así
50=1
51=5
52=25
5n=n
luego, siendo la base 5, el logaritmo en base 5 de 1, se escribe log5(1) es cero, porque al elevar la base a cero el resultado es 1 .Cualquier número positivo se puede tomar como base de un logaritmo.

AQUÍ ESTAN VARIAS REGLAS IMPORTANTES AL MOMENTO DE USAR  ALGORITMOS

- La base de un logaritmo no puede ser nunca un número negativo

- Los números negativos no tienen logaritmo, es decir
   no existe  logb (-a)

- Independientemente de la base, el logaritmo de la misma base siempre es uno, es decir  logb(b)=1

- Independientemente de la base, el logaritmo de uno siempre es cero, es decir
Logb(1)=0
- Independientemente de la base, el logaritmo de cualquier número mayor que uno, siempre será positivo

- Independientemente de la base, el logaritmo de cualquier número menor que uno pero mayor que cero, siempre será negativo

PROPIEDADES GENERALES DE LOS LOGARITMOS

Logaritmo de un producto: el logaritmo de un producto siempre será igual a la suma de los logaritmos de los factores
Logb(x*y)=logb(x)+logb(y)

Logaritmo de un cociente: el logaritmo de un cociente siempre será igual a la resta de los logaritmos de los factores
Logb(x/y)= logb(x) – logb(y)

Logaritmo de una potencia: el logaritmo de una potencia siempre será igual al exponente multiplicado por el logaritmo del factor
Logb(xa)= a*logb(x)

 Logaritmo de una raíz: el logaritmo de una raíz siempre será igual al logaritmo de la cantidad subradical dividido entre el índice de la raíz
Log(nraiz de x)=logb(x)/n

para publicar esta entrada me apoye en un documento de este documento

miércoles, 29 de junio de 2011

UNIDAD TEMATICA 3: modelos formales de computacion: maquinas y automatas

AQUI LES DEJO LA DEFINICION DE : ¿QUE ES UN LENGUAJE RECURSIVO?

Un lenguaje recursivo en matemáticas, lógica e informática, es un tipo de lenguaje formal que también es llamado recursivo, decidible o Turing-decidible. Se caracterizan porque para cada uno de ellos existe una máquina de Turing que aceptará cualquier palabra del lenguaje y parará siempre.
 Los lenguajes que no son recursivos la maquina de turing no lo reconoce y por eso no son parte de lenguaje de reconocimiento de la maquina o de los que se desea reconocer.

AQUI LES DEJO UN EJEMPLO DE UN LENGUAJE RECURSIVO PERO CON EL CALCULO DEL FACTORIAL

el cálculo de números factoriales. Él factorial de 0 es, por definición, 1. Los factoriales de números mayores se calculan mediante la multiplicación de 1 * 2 * ..., incrementando el número de 1 en 1 hasta llegar al número para el que se está calculando el factorial.
El siguiente párrafo muestra una función, expresada con palabras, que calcula un factorial.
"Si el número es menor que cero, se rechaza. Si no es un entero, se redondea al siguiente entero. Si el número es cero, su factorial es uno. Si el número es mayor que cero, se multiplica por él factorial del número menor inmediato."
Para calcular el factorial de cualquier número mayor que cero hay que calcular como mínimo el factorial de otro número. La función que se utiliza es la función en la que se encuentra en estos momentos, esta función debe llamarse a sí misma para el número menor inmediato, para poder ejecutarse en el número actual. Esto es un ejemplo de recursividad.
La recursividad y la iteración (ejecución en bucle) están muy relacionadas, cualquier acción que pueda realizarse con la recursividad puede realizarse con iteración y viceversa. Normalmente, un cálculo determinado se prestará a una técnica u otra, sólo necesita elegir el enfoque más natural o con el que se sienta más cómodo.
Claramente, esta técnica puede constituir un modo de meterse en problemas. Es fácil crear una función recursiva que no llegue a devolver nunca un resultado definitivo y no pueda llegar a un punto de finalización. Este tipo de recursividad hace que el sistema ejecute lo que se conoce como bucle "infinito".

bibliografia : www.slideshare.net

UNIDAD TEMATICA 3: modelos formales de computacion: automatas y maquinas

AQUI LES DEJO UNA EXPLICACION FACIL DE QUE ES UNA MAQUINA DE TURING

MÁQUINAS DE TURING

Definimos una máquina de Turing como una 7-tupla M = (K, Σ, δ, s,U), donde

K es un conjunto finito de estados
 Σ es un alfabeto de entrada
  s   es el estado inicial
 U  es el símbolo blanco o espacio vacio
  {→, ←, −} punteros (derecha, izquierda, detenerse)
"alto","si""no" ∈ K es el conjunto de estados finales o de aceptación
 δ: K x Σ → (K U {"alto","si""no"}) xΣx {→, ←, −} es una función parcial que se llama función de transición.

La máquina de Turing posee una cinta dividida en celdas, cada celda es capaz de almacenar un símbolo. Además posee una cabeza lectora/escritora que lee y escribe un símbolo en la cinta. Inicialmente la cinta contiene un simbolo de inicio en todas sus celdas. La función de transición δ transforma pares (q, s), la maquina le el simbolo que esta en la casilla que la maquina lee en ese momento y ejecuta la funcion de trancicion y desppues mueve segun el puntero y cuando la maquina llega a un estado terminal se determinala salida de la cinta
 
bibliografia: curso de algoritmos profesora Blanca Idalea de fime

martes, 28 de junio de 2011

ejemplo de un diagrama de flujo con respecto a la unidad tematica 1

diagrama que obtiene el promedio de ventas , calculando tambien el numero mayor y el menor

UNIDAD TEMATICA 2:MATEMATICAS DE ALGORITMOS

CODIGO BINARIO
EL CODIGO BINARIO SE USA PARA COMPARACIONES Y ENTRE SUS CARACTERISTICAS ESTAN:
  • Cada comparasión se evalua o a verdad o a falso,
dependiendo de los valores de las variables o las
constantes involucrados en ella.
utilizando los valores que resultan al asignar los
valores de verdad o falso a las expresiones.
Luego, la operaciones lógicas se evaluan
Sistema binario
  •  
suma de selectas potencias de dos
Cada entero positivo se puede expresar como la
Cada potencia aparece por máximo una vez

  • La presencia de una potencia se indica con el,dígito uno, su ausencia con el dígito cero
    Operaciones binarias
    binario
    Cada variable en sí está representada en formato
    directamente para modificar los valores de las
    variables
    Podemos manipular cadenas binarias
    eficiente de realizar ciertas operaciones

    EJEMPLOS DE OPERACIONES BINARIAS:

    “No”
    c = ~a
    En el resultado
    no lo es en el argumento
    c, un bit es 1 si y sólo sia
    01000011101000100
    10111100010111011

    “Y”
    c = a & b
    En el resultado
    c, un bit es 1 si y sólo si es 1
    en ambos de los argumentos
    a y b
    0100
    1001
    0000

    “O”
    c = a | b
    En el resultado
    c, un bit es 1 si y sólo si es 1
    en alguno de los argumentos
    a y b
    01
    10
    11

    “O exclusivo”
    c = a ^ b
    En el resultado
    c, un bit es 1 si y sólo si es 1
    en exactamente uno de los argumentos
    a y b
    01001000100011101
    10011001000111010
    11010001100100111
    001000100011101011001000111010011001100111111
    100010001110110010001110101000000011000
    Esto es en muchas ocasiones la manera más
    La potencia cero se ubica en el extremo derecho de la cadena binaria
    En realidad, todo se opera a nivel binario.

    UNIDAD TEMATICA 2: MATEMATICAS DE ALGORITMOS

    AQUI LES DEJO UNA MANERA FACIL DE CONVERTIR UN NUMERO DECIMAL A BINARIO CON UN EJEMPLO

    Decimal a binario
    Se divide el número que se desea convertir (decimal) entre 2, cuyo resultado entero se vuelve a dividir entre 2, y así sucesivamente hasta que el dividendo sea menor que el divisor, 2. Es decir, cuando el número a dividir sea 1 finaliza la división.
    A continuación se ordenan los restos empezando desde el último al primero, simplemente se colocan en orden inverso a como aparecen en la división, se les da la vuelta.

    Ejemplo
    Transformar el número decimal 131 en binario. El método es muy simple:
    131 dividido entre 2 da 65 y el resto es igual a 1
     65 dividido entre 2 da 32 y el resto es igual a 1
     32 dividido entre 2 da 16 y el resto es igual a 0
     16 dividido entre 2 da 8  y el resto es igual a 0                   
      8 dividido entre 2 da 4  y el resto es igual a 0
      4 dividido entre 2 da 2  y el resto es igual a 0
      2 dividido entre 2 da 1  y el resto es igual a 0
      1 dividido entre 2 da 0  y el resto es igual a 1
                  
    Ordenamos los numeros del último al primero y el numero 131 en binario es: 10000011
    
    UNIDAD TEMATICA 1: INTRODUCCION A LOS ALGORITMOS

    AQUI ESTA UNA PEQUEÑA INTRODUCCION A LO BASICO DE LOS ALGORITMOS

    Algoritmo Simple: es un método para resolver un problema mediante una serie de pasos definidos, precisos y finitos.

    Ø Preciso: implica el orden de realización de cada uno de los pasos.
    Ø Definido: si se sigue dos veces, se obtiene el mismo resultado.
    Ø Finito: Tiene un numero determinado de pasos, implica que tiene un fin.
    Tipos de Algoritmos
    ·       Algorítmico: Utiliza un algoritmo y puede ser implementado en una computadora, como por ejemplo dar instrucciones para manejar un vehiculo o instrucciones para resolver una ecuación de segundo grado.
    ·       Heurística: Se apoya en el resultado obtenido en un análisis de alternativas de experiencias anteriores similares.
    Medios de expresión de un algoritmo
    Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocódigo, diagramas de flujo y lenguajes de programación entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocódigo y diagramas de flujo evita muchas ambigüedades del lenguaje natural. Dichas expresiones son formas más estructuradas para representar algoritmos; no obstante, se mantienen independientes de un lenguaje de programación específico.
    La descripción de un algoritmo usualmente se hace en tres niveles:
    1.   Descripción de alto nivel. Se establece el problema, se selecciona un modelo matemático y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles.
    2.   Descripción formal. Se usa pseudocódigo para describir la secuencia de pasos que encuentran la solución.
    3.   Implementación. Se muestra el algoritmo expresado en un lenguaje de programación específico o algún objeto capaz de llevar a cabo instrucciones.

    Diagramas de flujoLos diagramas de flujo son usados para representar algoritmos pequeños, ya que abarcan mucho espacio y su construcción es muy laboriosa. Por su facilidad de lectura son usados como introducción a los algoritmos, descripción de un lenguaje y descripción de procesos a personas ajenas a la computación.

    PseudocódigoEl pseudocódigo esta pensado para facilitar a las personas el entendimiento de un algoritmo, y por lo tanto puede omitir detalles irrelevantes que son necesarios en una implementación. En general es comprensible sin necesidad de conocer o utilizar un entorno de programación especifico, y es a la vez suficientemente estructurado para que su implementación se pueda hacer directamente a partir de el.