Intuición de búsqueda binaria y funciones de predicado

El algoritmo de búsqueda binaria se usa en muchos problemas de codificación y, por lo general, no es muy obvio a primera vista. Sin embargo, ciertamente hay una intuición y condiciones específicas que pueden insinuar el uso de la búsqueda binaria. En este artículo, tratamos de desarrollar una intuición para la búsqueda binaria. Introducción a … Continue reading «Intuición de búsqueda binaria y funciones de predicado»

Programa Java para convertir números romanos a decimales entre 1 y 3999

Dado un número romano, la tarea es encontrar su valor decimal correspondiente. Ejemplo :  Input: IX Output: 9 IX is a Roman symbol which represents 9 Input: XL Output: 40 XL is a Roman symbol which represents 40 Input: MCMIV Output: 1904 M is a thousand, CM is nine hundred and IV is four Los … Continue reading «Programa Java para convertir números romanos a decimales entre 1 y 3999»

Dividir un archivo grande en módulos separados en C/C++, Java y Python

Si alguna vez quiso escribir un programa o software grande, el error de novato más común es saltar directamente e intentar escribir todo el código necesario en un solo programa y luego intentar depurarlo o extenderlo más tarde. Este tipo de enfoque está condenado al fracaso y, por lo general, requeriría volver a escribir desde … Continue reading «Dividir un archivo grande en módulos separados en C/C++, Java y Python»

Array de vectores en C++ STL

Requisito previo: Arrays en C++ , Vector en C++ STL Una array es una colección de elementos almacenados en ubicaciones de memoria contiguas. Es para almacenar varios artículos del mismo tipo juntos. Esto facilita el acceso a los elementos almacenados en él por la posición de cada elemento. Los vectores se conocen como arrays dinámicas … Continue reading «Array de vectores en C++ STL»

Algoritmo de Berkeley

El Algoritmo de Berkeley es una técnica de sincronización de reloj utilizada en sistemas distribuidos. El algoritmo asume que cada Node de máquina en la red no tiene una fuente de tiempo precisa o no posee un servidor UTC. Algoritmo  1) Se elige un Node individual como Node maestro de un Node de grupo en … Continue reading «Algoritmo de Berkeley»

Algoritmos de mutación para parámetros de valor real (GA)

Los algoritmos genéticos (AG) son algoritmos de búsqueda heurística adaptativa que pertenecen a la mayor parte de los algoritmos evolutivos. En cada generación, los cromosomas (nuestra solución candidata) sufren mutación, cruce y selección para producir una mejor población cuyos cromosomas estén más cerca de nuestra solución deseada. El operador de mutación es un operador unario … Continue reading «Algoritmos de mutación para parámetros de valor real (GA)»

Programa para algoritmo de programación de disco SSTF

Requisito previo: algoritmos de programación de disco  Dada una array de números de pista de disco y la posición inicial del cabezal, nuestra tarea es encontrar el número total de operaciones de búsqueda realizadas para acceder a todas las pistas solicitadas si se usa el tiempo de búsqueda más corto primero (SSTF) es un algoritmo … Continue reading «Programa para algoritmo de programación de disco SSTF»

Polimorfismos ad-hoc, de inclusión, paramétricos y de coerción

Cuando hablamos de polimorfismo en C++, llegamos a escuchar los siguientes cuatro tipos: Discutiendo esto en detalle: Polimorfismo ad-hoc , también llamado sobrecarga El polimorfismo ad-hoc permite que las funciones que tienen el mismo nombre actúen de manera diferente para diferentes tipos. Por ejemplo: el operador + suma dos enteros y concatena dos strings. El … Continue reading «Polimorfismos ad-hoc, de inclusión, paramétricos y de coerción»

Programa para comprobar el número es Palindrome o no

Dado un número entero N , escriba un programa que devuelva verdadero si el número dado es un palíndromo, de lo contrario devuelva falso. Ejemplos:   Input: N = 2002 Output: true Input: N = 1234 Output: false Enfoque:  un método simple para este problema es invertir primero los dígitos de n y luego comparar el reverso … Continue reading «Programa para comprobar el número es Palindrome o no»

Método de congruencia multiplicativa para generar números pseudoaleatorios

El método congruencial multiplicativo (método de Lehmer) es un tipo de generador congruencial lineal para generar números pseudoaleatorios en un rango específico. Este método se puede definir como:    donde,  X , la secuencia de números pseudoaleatorios m ( > 0), el módulo a (0, m), el multiplicador X 0 [0, m), valor inicial de … Continue reading «Método de congruencia multiplicativa para generar números pseudoaleatorios»