Articles of algoritmo

¿Encontrar k vecinos más cercanos para un vector dado?

Dado que tengo lo siguiente en mi base de datos de conocimiento: 1 0 6 20 0 0 6 20 1 0 3 6 0 0 3 6 1 0 15 45 0 0 15 45 1 0 17 44 0 0 17 44 1 0 2 5 0 0 2 5 Quiero poder encontrar […]

¿Cómo generar una ordenación aleatoria de una secuencia sin generar toda la secuencia de antemano?

El siguiente código de Python describe exactamente lo que quiero lograr para una secuencia de tamaño arbitrario (población): import random fixed_seed = 1 #generate the same sequence every time with a fixed seed population = 1000 sample_count = 5 #demonstration number num_retries = 3 #just enough to show the repeatable behaviour for trynum in xrange(num_retries): […]

Tipo topológico python

Codifiqué una solución para DFS no recursiva, pero no puedo modificarla para hacer una clasificación topológica: def dfs(graph,start): path = [] stack = [start] while stack != []: v = stack.pop() if v not in path: path.append(v) for w in reversed(graph[v]): if w not in path and not w in stack: stack.append(w) return path ¿Alguna […]

Algoritmo de dependencia: encuentre un conjunto mínimo de paquetes para instalar

Estoy trabajando en un algoritmo cuyo objective es encontrar un conjunto mínimo de paquetes para instalar el paquete “X”. Te lo explicaré mejor con un ejemplo: X depends on A and (E or C) A depends on E and (H or Y) E depends on B and (Z or Y) C depends on (A or […]

Rastreo y retorno de un camino en la primera búsqueda en profundidad

Por lo tanto, tengo un problema que quiero usar la búsqueda en profundidad para resolver, devolviendo la primera ruta que encuentra el DFS. Aquí está mi función DFS (incompleta): start = problem.getStartState() stack = Stack() visited = [] stack.push(start) if problem.isGoalState(problem.getStartState): return something while stack: parent = stack.pop() if parent in visited: continue if problem.isGoalState(parent): […]

A + B sin operadores aritméticos, Python vs C ++

Estaba tratando de resolver una vieja pregunta: Escriba una función que agregue dos números [enteros] A y B. No debe usar + ni ningún operador aritmético. La mejor solución es así, citada en ” Problema LintCode-A + B “: Para a + b en cualquier base, podemos tratar la ventaja como dos partes: 1. a […]

Encontrar singulares / conjuntos de máximos / mínimos locales en una matriz 1D-NumPy (una vez más)

Me gustaría tener una función que pueda detectar dónde están los máximos / mínimos locales en una matriz (incluso si hay un conjunto de máximos / mínimos locales). Ejemplo: Dada la matriz test03 = np.array([2,2,10,4,4,4,5,6,7,2,6,5,5,7,7,1,1]) Me gustaría tener una salida como: set of 2 local minima => array[0]:array[1] set of 3 local minima => array[3]:array[5] […]

¿De dónde proviene el aumento de rendimiento de las implementaciones de comprensión de mapa o lista sobre la llamada a una función a través de un bucle?

Entiendo que podría ser más eficiente con la memoria en la implementación del mapa que en la forma en que podría hacerlo en un bucle. Sin embargo, veo que el uso de una función de mapa en lugar de llamar a una función que se repite en un bucle también tiene un aumento de velocidad. […]

Cómo quitar la línea de captcha completamente

Soy un progtwigdor de Python y escribí muchos progtwigs en Python, especialmente mediante la caja de herramientas de procesamiento de imágenes. Escribí un progtwig para eliminar la línea de este captcha: https://ibb.co/ncED3v en primer lugar, mejoro la visibilidad de la imagen mediante el filtro de mediana def apply_median_filter(self,img): img_gray=img.convert(‘L’) img_gray=cv2.medianBlur(np.asarray(img_gray),3) img_bw=(img_gray>np.mean(img_gray))*255 return img_bw Entonces trato […]

Enumerar todo el árbol binario completo (etiquetado)

Estoy buscando un algoritmo práctico para enumerar todos los árboles binarios etiquetados completos. Un árbol binario completo es un árbol donde todos los nodos internos tienen un grado 3, las hojas tienen un grado 1 y la raíz tiene un grado 2. Un árbol etiquetado es un árbol donde todas las hojas tienen una etiqueta […]