Clasificación de Algoritmos con Ejemplos

Hay muchas formas de clasificar los algoritmos y algunas de ellas se muestran a continuación: Método de implementación Método de diseño Otras clasificaciones Clasificación por Método de Implementación: 1. Recursividad o Iteración Un algoritmo recursivo es aquel que se llama a sí mismo repetidamente hasta que se satisface una condición base. Es un método común … Continue reading «Clasificación de Algoritmos con Ejemplos»

Algoritmos aleatorios | Conjunto 2 (Clasificación y Aplicaciones)

Recomendamos encarecidamente consultar la publicación a continuación como requisito previo para esto. Algoritmos aleatorios | Conjunto 1 (Introducción y Análisis) Clasificación Los algoritmos aleatorios se clasifican en dos categorías. Las Vegas: estos algoritmos siempre producen un resultado correcto u óptimo. La complejidad temporal de estos algoritmos se basa en un valor aleatorio y la complejidad … Continue reading «Algoritmos aleatorios | Conjunto 2 (Clasificación y Aplicaciones)»

Generar una permutación aleatoria de 1 a N

Dado un número entero N , la tarea es generar N números aleatorios que no se repiten. Ejemplos:   Entrada: N = 5  Salida: 1 5 2 4 3 Entrada: N = 8  Salida: 7 2 1 8 3 6 4 5  Enfoque: cree una array de N elementos e inicialice los elementos como 1, 2, … Continue reading «Generar una permutación aleatoria de 1 a N»

Estimación del valor de Pi usando Monte Carlo | Método de computación en paralelo

Dados dos números enteros N y K que representan el número de intentos y el número total de subprocesos en el procesamiento paralelo. La tarea es encontrar el valor estimado de PI usando el algoritmo Monte Carlo usando la técnica Open Multi-processing (OpenMP) de paralelizar secciones del programa. Ejemplos: Entrada: N = 100000, K = … Continue reading «Estimación del valor de Pi usando Monte Carlo | Método de computación en paralelo»

Algoritmos aleatorios | Conjunto 1 (Introducción y Análisis)

¿Qué es un algoritmo aleatorio? Un algoritmo que utiliza números aleatorios para decidir qué hacer a continuación en cualquier parte de su lógica se denomina algoritmo aleatorio. Por ejemplo, en Randomized Quick Sort, usamos un número aleatorio para elegir el siguiente pivote (o barajamos aleatoriamente la array). Y en el algoritmo de Karger , elegimos … Continue reading «Algoritmos aleatorios | Conjunto 1 (Introducción y Análisis)»

Algoritmo de retroceso de inicio lento para Ad-Hoc

Si el receptor proclama un tamaño de ventana grande, más grande de lo que puede manejar la red en ruta, siempre habrá pérdidas de paquetes. Así que también habrá retransmisiones. Sin embargo, el remitente no puede enviar todos los paquetes para los que no se ha recibido ACK (Acknowledgement). De esta manera, se provocará aún … Continue reading «Algoritmo de retroceso de inicio lento para Ad-Hoc»

Random Walk (Implementación en Python)

IntroducciónUna caminata aleatoria es un objeto matemático, conocido como proceso estocástico o aleatorio, que describe una ruta que consiste en una sucesión de pasos aleatorios en algún espacio matemático, como los números enteros. Un ejemplo elemental de un paseo aleatorio es el paseo aleatorio en la línea de números enteros, que comienza en 0 y … Continue reading «Random Walk (Implementación en Python)»

Generando OTP (Contraseña de un solo uso) en PHP

Ahora, en estos días, OTP (contraseña de un solo uso) es obligatoria en casi todos y cada uno de los servicios. Un desarrollador puede generar OTP de muchas maneras, pero el desafío no es ser predictivo, ya que cualquiera puede predecir la OTP y explotar el servicio. Algunos de los formatos populares de OTP son: … Continue reading «Generando OTP (Contraseña de un solo uso) en PHP»

Seleccione un Node aleatorio de una lista enlazada individualmente

Dada una lista enlazada individualmente, seleccione un Node aleatorio de la lista enlazada (la probabilidad de elegir un Node debe ser 1/N si hay N Nodes en la lista). Se le da un generador de números aleatorios. A continuación se muestra una solución simple  Cuente el número de Nodes recorriendo la lista.  Recorra la lista … Continue reading «Seleccione un Node aleatorio de una lista enlazada individualmente»

Sub-arreglo de longitud máxima que satisface las condiciones dadas

Dado un arreglo binario arr[] , la tarea es encontrar la longitud del subarreglo más largo del arreglo dado, de modo que si el subarreglo se divide en dos subarreglos del mismo tamaño, ambos contienen todos 0 o todos 1 . Por ejemplo, los dos subarreglos deben tener la forma {0, 0, 0, 0} y … Continue reading «Sub-arreglo de longitud máxima que satisface las condiciones dadas»