No puedo entender diferentes algoritmos para la programación competitiva debido a las matemáticas ¿qué cursos de matemáticas necesito tomar para ser fuerte en CP?

En realidad, las habilidades matemáticas requeridas en los algoritmos no son matemáticas teóricas ordinarias, son básicamente matemáticas discretas donde tenemos conjeturas, teoremas sobre teoría de números, permutaciones y combinaciones, teoría de conjuntos, trucos para calcular cosas en el menor tiempo posible, etc. Además, debe Mejore también su razonamiento lógico, que es necesario para encontrar soluciones a los problemas rápidamente

En primer lugar, debe tener una base sólida de matemáticas discretas, le recomendaré leer algunos libros, preferiblemente las matemáticas discretas de Pearson. Luego debe comenzar a aprender algoritmos y practicar problemas basados ​​en ellos y pronto podrá aplicarlos siempre que sea posible en poco tiempo. La mejor manera de acostumbrarse a algoritmos importantes es practicando una variedad de preguntas populares como las que se encuentran en SPOJ (no para principiantes), geeksforgeeks, hackerrank, code force, etc., y si encuentra la pregunta muy difícil, es decir, no puede para resolverlo después de dedicar una cantidad de tiempo óptima, debe basarse en un nuevo algoritmo que aún no haya aprendido, por lo que la mejor solución es ver el editorial de esas preguntas o simplemente Google para saber qué algoritmo es y luego aprender sobre eso algo y sus aplicaciones.

Los logaritmos deben enseñarse durante la escuela secundaria, por lo que parece que carece significativamente de alfabetización matemática en comparación con la mayoría de las personas que hacen programación competitiva. Sugeriría tomar algunos cursos gratuitos en línea para que pueda subir su nivel al nivel de la escuela secundaria. (Honestamente, se beneficiará de esto de muchas maneras). En relación con el plan de estudios de la escuela secundaria, hay algunos temas adicionales que los programadores competitivos deben comprender. Creo que estos están cubiertos principalmente en un curso universitario de primer año sobre matemáticas discretas que probablemente ofrecen los departamentos de informática. Estos cursos enseñan aritmética modular, inducción y algunos temas básicos de álgebra abstracta.

Puede necesitar probabilidad, estadísticas y permutación y combinación y los temas que se incluyen en estos tres.

Los buenos cálculos pueden ayudar en la programación dinámica.

More Interesting

¿Cuál es el significado de los lenguajes regulares [matemática] \ omega [/ matemática] en informática?

¿Es necesario asumir que una distribución de claves para el hashing para trabajar con O (1) garantiza que sí lo tiene?

¿Cuántas matemáticas requiere la Olimpiada Internacional de Informática (IOI)?

¿Podría un genio aleatorio resolver el problema P vs NP o pasará a través de avances muy lentos en la ciencia por un grupo de personas que trabajan juntas?

¿Por qué es importante la condición i + j <n en el siguiente código?

¿Por qué los maestros programadores insisten en usar las matemáticas para enseñar a sus estudiantes los conceptos básicos de la programación dado que no se usa tanto a diario?

¿Se conocieron y / o trabajaron juntos Alan Turing (1912-1954) y John von Neumann (1903-1957)?

En matemáticas y ciencias de la computación, ¿cuál es / hay una diferencia entre las funciones calculables y computables?

¿Las matemáticas son importantes en la programación?

Coloque números de cinco bits en los vértices de un hipercubo de 9 dimensiones de modo que, desde cualquier vértice, pueda alcanzar cualquier número en no más de dos movimientos a lo largo de los bordes del hipercubo.

En la universidad, ¿debería centrarme más en la teoría o la aplicación en los campos de la informática y las matemáticas?

¿Cuáles son algunos tipos interesantes de algoritmos / métodos de licitación?

¿Cuál es la diferencia entre teorema y lema?

Mi matemática es pobre. ¿Puedo seguir siendo un buen programador de Java?

Dada una lista de conjuntos de 2 números, ¿cómo divide esta lista por la mitad de modo que la suma de cada uno de los números 1 y 2 para ambas mitades sea aproximadamente par?