Seleccione un número aleatorio de la secuencia, con espacio O (1)

Dada una secuencia de números, genere un número aleatorio a partir de la secuencia. Puede usar solo el espacio O (1) y la entrada tiene la forma de una secuencia, por lo que no puede almacenar los números vistos anteriormente. Entonces, ¿cómo generamos un número aleatorio de todo el flujo de modo que la probabilidad de … Continue reading «Seleccione un número aleatorio de la secuencia, con espacio O (1)»

Programa Javascript para seleccionar 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 «Programa Javascript para seleccionar un Node aleatorio de una lista enlazada individualmente»

Programa de sugerencia de contraseña fuerte

Dada una contraseña ingresada por el usuario, verifique su seguridad y sugiera alguna contraseña si no es segura. Los criterios para una contraseña segura son los siguientes:  Una contraseña es segura si tiene:  1. Al menos 8 caracteres  2. Al menos un carácter especial  3. Al menos un número  4. Al menos un carácter en … Continue reading «Programa de sugerencia de contraseña fuerte»

Algoritmo de Karger para corte mínimo | Conjunto 1 (Introducción e Implementación)

Dado un gráfico no dirigido y no ponderado, encuentre el corte más pequeño (el menor número de aristas que desconecta el gráfico en dos componentes). El gráfico de entrada puede tener bordes paralelos. Por ejemplo, considere el siguiente ejemplo, el corte más pequeño tiene 2 bordes. Una solución simple utiliza el algoritmo de corte s-t basado … Continue reading «Algoritmo de Karger para corte mínimo | Conjunto 1 (Introducción e Implementación)»

Seleccione un Node aleatorio de un árbol con la misma probabilidad

Dado un árbol binario con Nodes secundarios, devuelva un Node aleatorio con la misma probabilidad de seleccionar cualquier Node en el árbol. Considere el árbol dado con raíz 1.   10 / \ 20 30 / \ / \ 40 50 60 70 Ejemplos:   Input : getRandom(root); Output : A Random Node From Tree : 3 … Continue reading «Seleccione un Node aleatorio de un árbol con la misma probabilidad»

Programa de Python para seleccionar 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 «Programa de Python para seleccionar un Node aleatorio de una lista enlazada individualmente»

QuickSort usando rotación aleatoria

En este artículo, discutiremos cómo implementar QuickSort usando pivoteo aleatorio. En QuickSort, primero particionamos la array en su lugar de modo que todos los elementos a la izquierda del elemento pivote sean más pequeños, mientras que todos los elementos a la derecha del pivote sean más grandes que el pivote. Luego llamamos recursivamente al mismo … Continue reading «QuickSort usando rotación aleatoria»

Algoritmo de Karger para corte mínimo | Conjunto 2 (Análisis y Aplicaciones)

Hemos presentado y discutido a continuación el algoritmo de Karger en el conjunto 1. 1) Initialize contracted graph CG as copy of original graph 2) While there are more than 2 vertices. a) Pick a random edge (u, v) in the contracted graph. b) Merge (or contract) u and v into a single vertex (update … Continue reading «Algoritmo de Karger para corte mínimo | Conjunto 2 (Análisis y Aplicaciones)»

Implemente rand12() usando rand6() en una línea

Dada una función rand6() que devuelve números aleatorios del 1 al 6 con la misma probabilidad, implemente la función de una línea rand12() usando rand6() que devuelve números aleatorios del 1 al 12 con la misma probabilidad. La solución debería minimizar el número de llamadas al método rand6(). No se permite el uso de ninguna … Continue reading «Implemente rand12() usando rand6() en una línea»

Programa Java para seleccionar 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 «Programa Java para seleccionar un Node aleatorio de una lista enlazada individualmente»