¡Necesito ayuda! No puedo resolver el problema, me encuentro con limitaciones de hardware - página 12
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Pero las secuencias son independientes entre sí, ¿no? Entonces, ¿por qué no podemos hacer un bucle con las fechas de una secuencia cargada de una sola vez? Aquí, por cierto, puede ser posible ir a algún algoritmo de recurrencia eficiente, pero depende de su suerte. El tamaño de un millón sobre un millón se mantendrá, y el archivo se leerá una vez.
Por supuesto, un problema en el que el número de pasos en la siguiente iteración sigue siendo el mismo (es decir, el área de búsqueda calculada no se estrecha) no parece robusto. Pero esto es subjetivo, por supuesto.
Сделки в разных последовательностях разные, по времени распределены неравномерно (и в каждой последовательности по своему). Сделок разное количество. Но все - в интервале от Даты1 до Даты2.
La tarea es pasar de D1 a D2 con un paso de M minutos (o mejor - exactamente por puntos de hacer intercambios de todas las secuencias), encontrar la secuencia que es mejor que otras por el criterio K (una tarea separada - no sólo encontrar la mejor secuencia, pero ordenar todo el conjunto por el criterio y la salida de los 10 primeros - pero es un opcional, no es necesario todavía).
El criterio K se calcula a partir de X operaciones anteriores de la secuencia correspondiente, calculando casi toda la información de cada una de las X operaciones (no basta con el beneficio, por ejemplo).
Aquí es donde deberíamos haber empezado.
¿He entendido bien lo siguiente?
1) Un archivo de 20 gb consta de aproximadamente un millón de secuencias ordenadas por tiempo
2) El tamaño de cada secuencia puede variar y depende del número de operaciones que contenga la secuencia
3) El tamaño medio de una secuencia es de 20/10^6 = 20 Mb, así que ¿qué podemos garantizar para descargar completamente una secuencia?
4) El coeficiente K depende sólo de los oficios dentro de la secuencia dada
5) Para cada secuencia tenemos que encontrar K (en total 10^6 piezas) y seleccionar las 10 mejores
A Si creamos otro archivo con valores de distancias entre secuencias.
1) Ver cuántas secuencias podemos descargar y sumar la distancia entre ellas (manteniendo los valores intermedios de las sumas)
2) Leemos la distancia del archivo en la RAM
3) Ejecutar para cada secuencia del algoritmo de búsqueda para encontrar K (sabemos donde el comienzo de las secuencias, porque mantenemos los subtum calculados en el paso 1)
4) Nuevamente iniciar el punto 1 moviéndose un poco hacia adelante
En cuanto al top 10:
n son los valores totales de K, m es el número de mejores.
1) puedes encontrar todos los K y luego, con la ayuda de la estructura de datos del montón, elegir el número necesario de mejores valores (Obtener el montón O(n), elegir el mejor O(log n) número de veces m, espacio en memoria - n)
2) contar el número necesario - m de instancias (por ejemplo, 10), ordenarlas y utilizar una búsqueda binaria para encontrar el punto de inserción de las K instancias restantes.
(ordenación inicial O(m*log m), búsqueda de inserción O(log m) número de veces (n-m), inserción O(1), espacio de memoria ocupado - m).
La recursión en estas dimensiones se reducirá cuando se supere el límite de la caché.
3) El tamaño medio de las secuencias es de 20/10^6 = 20 MB, ¿qué carga completa una secuencia podemos garantizar?
Siento que no consigo entender lo que se necesita y lo que se da (((
А потом "нужная дата" сдвигается на точку закрытия сделки из выбранной последовательности и алгоритм повторяется.
y sí20/10^6 = 20kb porque 1gb = 1000mb = 10^6kb
Ir hacia el SQL
Esto puede ser bastante lento en la etapa de aprendizaje.
Si elige esta opción, es mejor construir toda la lógica de negocio con procedimientos almacenados
dejando al Asesor Experto sólo dos funciones, enviar una petición al servidor y obtener un resultado completamente terminado
todos los cálculos en el servidor
De hecho, en la web se pueden encontrar muchas descripciones de cómo poner el servidor SQL
( ORACL, SYBASE + CENTOS por ejemplo ) ORACL, SYBASE, MS SQL + WINDOWS máquina independiente
ORACL es un poco más complicado de aprender - menos expertos, menos literatura.
MS SQL - quizás la mayor cantidad de información y más literatura en la web.
no habrá dificultades - hay muchas descripciones en la web y más libros en la tienda.
MSSQL 2012 por sus parámetros está muy cerca de ORACL - ya en 2014.
SQL + LINUX se suele elegir para operar en un entorno de producción - si no se sabe nada de LINUX es mejor utilizar WINDOWS
Globo MSSQL Expres pero las restricciones utilizan 1 núcleo, 1Gb de memoria y 10Gb de base
otros son pagados.
...
Hay muchas secuencias similares de tratos, cada secuencia está ordenada por tiempo.
Las transacciones en las distintas secuencias son diferentes, distribuidas de forma desigual en el tiempo (y de forma diferente en cada secuencia). El número de acuerdos es diferente. Pero todos ellos están en el intervalo de Fecha1 a Fecha2.
La tarea - pasar de D1 a D2 con un paso de M minutos (o mejor - específicamente por puntos de hacer tratos de todas las secuencias), encontrar una secuencia, que es mejor que otros por el criterio K (una tarea separada - no sólo encontrar la mejor secuencia, pero ordenar todo el conjunto por el criterio y la salida de los 10 primeros - pero es un opcional, no se requiere todavía).
...No entiendo dónde.
Hay un criterio - todos - en el intervalo de Fecha1 a Fecha2.
Todo es así.
Y entonces la "fecha correcta" se desplaza al punto de cierre de la operación de la secuencia seleccionada y el algoritmo se repite.
Y así un millón de veces =)
Es decir, se lee el siguiente.
¿Por qué no dividir el archivo en muchos intervalos desde la Fecha1 hasta la Fecha2? Habrá secuencias gastadas que se pueden cerrar, ¿no?
No entiendo dónde.
Este es el criterio: todo está entre Fecha1 y Fecha2.
Es decir, dice lo siguiente.
¿Por qué no dividir el archivo en muchos intervalos desde la Fecha1 hasta la Fecha2? Habrá secuencias usadas que se puedan cerrar, ¿no?
si el problema es este:
dada una fila 1 2 3 4 5 6 7 8 9
dado un ancho de, por ejemplo, 4, hay que recorrer con este ancho toda la fila para encontrar algún valor dentro del ancho (por ejemplo, un mínimo):
primero tienes que encontrar en 1 2 3 4 luego 2 3 4 5 luego 3 4 5 6 luego 4 5 6 7 luego .... etc.
entonces la tarea se resuelve manteniendo el mínimo en la estructura de datos de la cola:
1) la implementación de esto fue sugerida en el curso de video de mails.ru a través de cuatro estructuras de datos de pila
2) He inventado verbalmente una implementación a través de la estructura de datos de la cola y la estructura de datos de la dec, lo más probable es que alguien ya lo haya hecho una vez y tenga su nombre, sólo necesito encontrarlo.