¿Qué es segmentar segmentado?

supongamos que desea encontrar todos los números primos desde 999990000 hasta 1000000000. Podría usar un enfoque ingenuo (fuerza bruta) pero eso le daría un poco de tiempo. Entonces te das cuenta de que podrías usar un tamiz de erathothenes pero te quedarás sin espacio en el montón ya que tendrías que crear una matriz de enteros 1000000000.


Tamiz segmentado resuelve el problema anterior con la misma complejidad de tiempo que un tamiz pero utilizando menos memoria. El tamiz segmentado utiliza la diferencia de los números (1000000000-999990000 = 10000).

Para implementar un tamiz segmentado, primero debe encontrar todos los números primos menores que [math] \ [/ math] sqrt 1000000000.

luego recorre todos los números desde 999990000 hasta 1000000000. Y comprueba si son divisibles por cualquiera de los números primos encontrados en el primer paso. para hacer esto tu

tiene que encontrar el número más bajo divisible por el primo en el rango. Y luego marque los valores en la bandera [] incrementando el valor más bajo.


Para obtener más información, consulte mi blog:

Tamiz segmentado de erathothenes (SPOJ PRIME1)


EDITAR: tenga en cuenta que el segundo paso podría optimizarse.

Para generar los números primos en el rango [A, B] usando un tamiz normal, necesitamos una matriz de tamaño B.

Tamiz segmentado se utiliza para encontrar lo mismo cuando B es muy grande y BA es razonablemente pequeño. En este caso, utiliza una matriz de tamaño B-A + 1 para encontrar los números primos en el rango.

La complejidad temporal de Sieve y Sieve segmentado es la misma. Pero en Tamiz segmentado, usamos menos memoria.

More Interesting

¿Funciona la siguiente implementación para encontrar la subcadena común más larga dentro de dos cadenas?

Hago segmentación usando el algoritmo de cambio medio en MATLAB, pero obtengo mis objetos segmentados. ¿Cómo puedo fusionar partes segmentadas de mi objeto que son diferentes por color y tamaño?

¿Se podría explicar y crear inteligencia artificial utilizando algoritmos?

¿Cuál es más rápido: clasificación rápida o burbuja, y por qué?

¿De dónde viene la palabra algoritmo?

Cómo escribir un programa para encontrar el mayor número entre cuatro números, sin usar sentencias if y variables de tipo de matriz

Cómo hacer un bot de chat usando Python implementando algoritmos de aprendizaje automático (como SVM, Naive Bayes, Random Forest, etc.)

¿Cuál es el enfoque para resolver GSS1 y GSS3 en SPOJ usando árboles de segmentos?

Cómo resolver este problema: http://www.spoj.com/problems/RENT/

¿Cuál es la diferencia entre las estructuras de datos de programación C y las estructuras de datos de programación Java?

¿Qué es un algoritmo para una solución aproximada al problema del vendedor ambulante?

¿Hay alguna estructura de datos que pueda realizar las funciones de inserción, búsqueda y eliminación en O (log n)?

¿Pueden los pesos de Bellman-Ford ser funciones y no constantes?

¿Cuál es la mejor estrategia para obtener una solución óptima para cualquier problema de codificación solicitado en la entrevista de codificación?

¿Es mejor representar aristas en un gráfico que sale de un vértice como miembros de una matriz dinámica o una lista vinculada?