Después de ver el código del tamiz de número primo y ver cómo funciona la estructura concurrente , me pareció extremadamente elegante. Sin embargo, también es extremadamente ineficiente e IIRC, equivalente a la operación O (n^2) de probar la divisibilidad del número m por dividiéndolo por cada número menor que m. Me imagino que podría en su lugar modificarlo para usar la operación O (n^1.5) de verificar la divisibilidad de m dividiéndola por cada número menor o igual que sqrt (m). Sin embargo, esto resultó ser mucho más difícil de lo que esperaba.Un mejor tamiz de número primo concurrente en go
Sé que esto es más una cuestión algorítmica, pero también es uno extremadamente relevante para la concurrencia. ¿Cómo se implementaría la versión O (n^1.5) del algoritmo?
En general, la implementación simultánea de un algoritmo dado no es superlineal. En el mejor de los casos, solo aceleran el algoritmo proporcionalmente al número de trabajadores paralelos. Una excepción notable son los algoritmos de tipo 'encontrar'. –