Articles of algoritmo de

Resolviendo una ecuación cúbica

Como parte de un progtwig que estoy escribiendo, necesito resolver una ecuación cúbica exactamente (en lugar de usar un buscador numérico de raíces): a*x**3 + b*x**2 + c*x + d = 0. Estoy tratando de usar las ecuaciones de aquí . Sin embargo, considera el siguiente código (esto es Python pero es un código bastante […]

Factorización de python

Simplemente me gustaría saber la mejor manera de enumerar todos los factores enteros de un número, dado un diccionario de sus factores primos y sus exponentes. Por ejemplo, si tenemos {2: 3, 3: 2, 5: 1} (2 ^ 3 * 3 ^ 2 * 5 = 360) Entonces podría escribir: for i in range(4): for […]

Tengo una lista de Python de los factores primos de un número. ¿Cómo puedo (pythonicamente) encontrar todos los factores?

Estoy trabajando en un problema del Proyecto Euler que requiere la factorización de un entero. Puedo crear una lista de todos los números primos que son el factor de un número dado. El teorema fundamental de la aritmética implica que puedo usar esta lista para derivar cada factor del número. Mi plan actual es tomar […]

Python digest / hash para similitud de cuerdas

Estoy buscando un algoritmo que pueda generar un código hash corto (fx 16 caracteres (no importante) de una cadena más larga. El requisito principal es que las cadenas que son casi idénticas deberían dar como resultado el mismo compendio. Fx 2 correo casi idéntico: Hola martin. Aquí hay algunos … spam para ti. Saludos XYZ. […]

Cómo invertir una matriz de permutación en numpy

Dada una matriz numpy autoindexada (no estoy seguro si este es el término correcto), por ejemplo: a = np.array([3, 2, 0, 1]) Esto representa esta permutación ( => es una flecha): 0 => 3 1 => 2 2 => 0 3 => 1 Estoy tratando de hacer una matriz que represente la transformación inversa sin […]

El algoritmo de Dijkstra en python

Estoy tratando de implementar el algoritmo de Dijkstra en python usando arrays. Esta es mi implementación. def extract(Q, w): m=0 minimum=w[0] for i in range(len(w)): if w[i]=d[u]+G[u][v]: d[v]=d[u]+G[u][v] p[v]=u return d, p B=’B’ A=’A’ D=’D’ G=’G’ E=’E’ C=’C’ F=’F’ G={B:{A:5, D:1, G:2}, A:{B:5, D:3, E:12, F:5}, D:{B:1, G:1, E:1, A:3}, G:{B:2, D:1, C:2}, C:{G:2, E:1, […]

Elija m elementos espaciados uniformemente de una secuencia de longitud n

Tengo un vector / matriz de n elementos. Quiero elegir m elementos. Las opciones deben ser justas / deterministas, igualmente muchas de cada subsección. Con m = 10, n = 20 es fácil: simplemente tome cada segundo elemento. ¿Pero cómo hacerlo en el caso general? ¿Tengo que calcular el LCD?

Detectar si la secuencia es un múltiplo de una subsecuencia en Python

Tengo una tupla de ceros y unos, por ejemplo: (1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1) Resulta: (1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1) == (1, 0, 1, 1) * 3 Quiero una función f tal que si s es una tupla no vacía de […]

cómo obtener de manera eficiente los k elementos más grandes de una lista en python

¿Cuál es la forma más eficiente, elegante y pythonica de resolver este problema? Dada una lista (o conjunto o lo que sea) de n elementos, queremos obtener los k más grandes. (Puede suponer que k<n/2 sin pérdida de generalidad, supongo) Por ejemplo, si la lista fuera: l = [9,1,6,4,2,8,3,7,5] n = 9, y digamos k […]

Implementación de todos los árboles de expansión mínima.

He estado buscando una implementación (estoy usando la librería networkx ) que encontrará todos los árboles de expansión mínimos (MST) de un gráfico ponderado no dirigido. Solo puedo encontrar implementaciones para el algoritmo de Kruskal y el algoritmo de Prim, los cuales solo devolverán un solo MST. He visto artículos que abordan este problema (como […]