¿Cómo debo aprender programación competitiva cuando soy malo en matemáticas?

¿Por qué está satisfecho con ” no tiene una buena base matemática (de hecho muy mala) “?

En lugar de tratar de ser un programador súper competitivo en 4 años y mantener bajo su nivel de matemáticas, intente aprender las matemáticas necesarias para la informática y la programación competitiva.

Hay muchas maneras de aprender las matemáticas necesarias para la programación competitiva, la forma más fácil es aprender a través de la práctica, quiero decir, intentar muchos problemas, es posible que no los resuelva, luego vea la editorial y las soluciones de otros, también vea estas:
¿Cómo puedo aprender las matemáticas necesarias para la programación de algoritmos?
¿Cuál es la mejor manera de aprender las matemáticas que se necesitan en la programación competitiva?

También la programación competitiva tiene más que ver con algoritmos y estructuras de datos que con las matemáticas, así que no temas esto en absoluto 🙂

También vea estos:

¿Cómo puedo obligarme a aprender algoritmos y programación competitiva si mi matemática apesta?

Al aprender matemáticas lentamente todos los días, durante los próximos 6 meses.

Después de 6 meses, será mejor que su actual y la mayoría de los demás.

Simplemente, no es posible sin las matemáticas en absoluto.

Comience y siga aprendiendo, es solo cuestión de 6 meses, el tiempo pasará en poco tiempo, su aprendizaje será para toda la vida.

Comience navegando por estos:

  1. Matemáticas básicas detrás de la complejidad del algoritmo por Manohar Reddy Poreddy sobre algoritmos y más
  1. Actualización 1: para comprender lo anterior, debe saber a continuación:
  1. logaritmos (log A base B), potencias de N, comparaciones de números (>, <==)
  • Matemáticas para Topcoders
    1. Actualización 2 : para comprender lo anterior, debe saber a continuación:
    1. Números primos, MCD (máximo común divisor). Diferentes formas básicas como binario, decimal, hexadecimal. Conversión entre diferentes bases. Fracciones como 1/2, 1/3, 1/4, etc. Número complejo de forma x + iy, suma, multiplicación.
    2. Puede omitir la parte de Geometría, no se hace tanto en las preguntas.
  • Vuelva a leer cualquier cosa relacionada con los números, solo las matemáticas básicas de la escuela son lo suficientemente buenas, como a continuación:
    1. tipos de números: reales, enteros, etc.
    2. que es rango y dominio
    3. multiplicación de matrices
    4. mcm
    5. mcd
    6. número par
    7. número impar
    8. número primo
    9. ecuaciones cuadráticas
    10. poder de 2
    11. factorial
    12. fórmula nCr
    13. fórmula nPr
    14. aptitud (raramente usado, velocidad = distancia / tiempo, pero es bueno saberlo, útil también en la vida real)
    15. probabilidad (muy raramente utilizada)
    16. geometría (muy raramente utilizada, como intersección de líneas, áreas, etc.)
    1. Los enlaces anteriores señalan lo mismo que se usan en CP.
    2. De hecho, la mayoría de las veces usé solo lo anterior, nada más.

    Actualización 3:

    La mayoría de las personas (incluyéndome a mí) luchan después de descender por debajo del rango 1000, mientras que quedan muchas preguntas que pueden responderse. Esto se debe en parte a que al menos 1/8 de las preguntas incluyen matemáticas de alguna forma.

    En general, las preguntas pueden tener una puntuación de 30 o 40, pero algunas preguntas de matemática pura sobre probabilidad son de 150 puntos. He visto esas preguntas, por lo que si usted es experto en matemáticas, será útil. No, no resolví la pregunta de 150 puntos en mi Top 100, aunque pasé un día entero en el mismo. Además, no resolví muchas preguntas sobre matemáticas, si pudiera resolverlas, es posible pasar al menos al rango 75, solo resolviendo puede haber entre 5 y 10 problemas más.

    Volver a: Recursos CS y CP todo en uno por Manohar Reddy Poreddy en AlgorithmsAndMore

    Bien. No necesita leer las matemáticas de 11 ° y 12 ° grado. Lo que debe leer es teoría de números, combinatoria. Hay buenos artículos sobre el traspaso de teoría de números y Topcoders.

    Teoría de los números – 1 – Prateek Garg

    Teoría de los números – II – hackerearthbot

    Teoría de los números – III – Boris Sokolov

    Basic Number Theory-1 Tutoriales y notas | Matemáticas | HackerEarth

    Conceptos básicos de Combinatoria Tutoriales y notas | Matemáticas | HackerEarth

    Tutoriales y notas de inclusión-exclusión | Matemáticas | HackerEarth

    Después de leer estos artículos, revise problemas de muestra y practique tanto como pueda.

    Creo que esto te ayuda 🙂

    Edición 1: Olvidé proporcionar el enlace del codificador superior. Asi que aqui esta

    Matemáticas para Topcoders

    Sí señor, tienes razón. Quiero decir que las matemáticas son muy buenas en la vida humana, y tener un buen dominio para resolver problemas matemáticos exige la experiencia previa y mucha práctica, trabajo duro, etc.

    En mi caso, era muy pobre en matemáticas cuando estaba en cuarto . En quinto , mi profesor de matemáticas me golpeó mucho. Finalmente mejoré mis matemáticas en la octava clase y obtuve buenos resultados en los exámenes.

    Mi maestra me dijo que el noveno es la base para el 10 y el 11 . El 11 es la base para el 12 y para estudios posteriores.

    Significa que si alguien ha trabajado duro en matemáticas cuando estaba en noveno , décimo , undécimo , duodécimo , entonces seguramente puedo decir que no habrá ningún problema para resolver los problemas de matemáticas. Pueden entender fácilmente los problemas y resolverlos.

    Mi último punto es sobre los problemas relacionados con la aptitud. Los problemas planteados en CAT , XAT , eLitmus , etc. son las matemáticas de nivel real y superior que las que estudiamos en el noveno al duodécimo . Como el objetivo principal de las preguntas es evaluar nuestra capacidad de pensamiento y aplicar las lógicas para resolverlas lo más rápido posible.

    Nota :

    Las matemáticas de la clase 9 , 10 , 11 y 12 son muy, muy buenas. Deberíamos tener un buen dominio de las matemáticas de estas clases si queremos tener las matemáticas con nosotros en el futuro.

    Deberíamos tratar de desarrollar nuestras propias ideas para resolver problemas rápidamente. Respetado Newton , Ramanujan eran geniales porque estaban buscando mentalidad.

    Deberíamos seguirlos.

    Creo que no puede sobresalir en la programación competitiva sin tener una sólida formación en matemáticas, pero no haber recibido ninguna educación formal en matemáticas no es un problema cuando hay tantos recursos disponibles en la web.

    ¿Entero de 32 bits significa algo para ti? Quiero decir, ¿realmente entiendes la siguiente declaración?

    La entrada es un número entero, N tal que 0

    Si su respuesta es NO, aprenda sobre los diferentes sistemas numéricos y sus representaciones. La entrada podría ser tan grande que una variable entera de 64 bits (tipo de datos largo en Java) no podría mantener esa constante. Como eres un desarrollador de Java, creo que debes haber escuchado sobre la clase BigInteger. Aquellos que codifican en C / C ++ (como yo) generalmente tienen que diseñar un algoritmo para almacenar números tan grandes, usando una matriz para almacenar cada uno de ellos. dígitos

    A veces pueden dar una constante, digamos CONST 10 ^ 10 + 7 y pedirle que imprima el resultado% CONST. Si intenta un enfoque ingenuo calculando primero el resultado y luego realizando la operación de módulo, es posible que obtenga WA o Respuesta incorrecta. La razón es que su resultado podría ser mayor que un entero de 64 bits. La propiedad distributiva del módulo podría ser útil en tales casos. Eso es matemática. Vea, debe intentar hacer algunas compensaciones entre la memoria y el tiempo para finalmente lograr que un AC tenga buenos problemas. Siento que no es una buena práctica usar BigInteger cada vez .

    Debes haber escuchado acerca de la programación dinámica y, tal vez, de la memorización también.

    “Uno que no recuerda su pasado está condenado a repetirlo

    – Programación dinámica ”

    Leí esta cita en una plataforma competitiva hace unos meses. Explica DP de una manera simple. Memoization es un término que describe una técnica de optimización en la que almacena en caché los resultados calculados previamente y devuelve el resultado en caché cuando se necesita el mismo cálculo nuevamente. El PD con la memorización es una técnica muy poderosa. Esto requerirá matemáticas. Los problemas PD también se resuelven haciendo tablas , y eso también generalmente involucra matemáticas.

    Las estructuras de datos como Gráficos (y árboles) son simplemente matemáticas de nivel secundario / universitario. Los algoritmos son técnicas matemáticas. Hay algunas cosas llamadas “Análisis asintótico” que nuevamente requieren una buena comprensión de las funciones y gráficos. En realidad, puede estimar si su el código / algoritmo se ejecutará en las limitaciones de tiempo dadas o no, haciendo el análisis asintótico antes de enviar la solución.

    Solo quería darte una idea de lo importante que son las matemáticas cuando se trata de CP. No es necesario ser matemático, pero no creo que haya un excelente programador competitivo que probablemente no sea bueno en matemáticas.

    Te recomiendo que hagas este curso completo en MIT OpenCourseware:

    Matemáticas para la informática

    Lea las respuestas en este hilo: Matemáticas para informática

    Puede encontrar útiles estos tutoriales de TopCoder: Tutoriales de ciencia de datos

    Si es posible, siga esta guía:

    Estudiantes – Guía para el desarrollo técnico – Google Careers

    Tiene enlaces a algunos excelentes cursos en la web, puede ir específicamente a los cursos de matemáticas discretas.

    Espero que esto ayude.

    “¿Qué debo hacer para sobresalir en la programación competitiva dada esta restricción”

    Es una restricción en tu MENTE.

    Si eres débil en matemáticas y quieres ser bueno en CP, entonces comienza a aprender matemáticas. Es tan simple como eso. Eres débil en matemáticas porque nunca lo estudiaste.

    Hay miles de libros por ahí, elige los relevantes, comienza a aprender de ellos. Si realmente te apasiona la PC, haz todo lo NECESARIO para sobresalir en ella.

    Lea las respuestas de las siguientes preguntas y comience a practicar matemáticas hoy.

    ¿Cuáles son algunos temas imprescindibles en matemáticas discretas y probabilidad de programación competitiva?

    ¿Cuál es la base matemática necesaria para la programación competitiva?

    Busque en google y encontrará más.

    Debe comprender que para convertirse en un programador competitivo muy bueno , las matemáticas son necesarias .

    Algunos buenos libros en mi opinión: –

    1) Combinatorics- Introductory Combinatorics (5th Edition): Richard A. Brualdi: 9780136020400: Amazon.com: Libros

    2) Probability- Amazon.com: A First Course in Probability (9th Edition) (9780321794772): Sheldon Ross: Books

    3) Geometría- Amazon.com: Geometría computacional: Algoritmos y aplicaciones (9783540612704): Mark de Berg, Marc van Kreveld, Mark Overmars, Otfried Schwarzkopf: Libros

    4) Teoría de números: teoría de números para computación: Song Y. Yan, ME Hellmann: 9783540430728: Amazon.com: Libros

    5) Álgebra lineal – Álgebra lineal y sus aplicaciones, 4ª edición: Gilbert Strang: 9780030105678: Amazon.com: Libros

    Comience a practicar estos libros hoy, y lo más importante de todo, aprenda haciendo preguntas. Debería visitar el Proyecto Euler para una buena pregunta matemática.

    Pruebe también la pregunta sobre codeforces y codechef en general para CP

    PD: si estás buscando respuestas que te digan cómo ser bueno en CP sin estudiar matemáticas … entonces estás navegando en el barco equivocado, amigo.

    Feliz codificación 🙂

    Algunas personas son definitivamente mejores para resolver problemas matemáticos que otras. Dicho esto, su capacidad para resolver habilidades matemáticas es mutable: puede cambiarla (hasta cierto punto).

    Si está “por encima del promedio en la programación de estructuras de datos”, ya sabe cómo aprender un concepto y comprenderlo lo suficiente como para resolver algunos problemas. Las matemáticas que he visto en los concursos de programación no son muy avanzadas, solo tomó un tiempo acostumbrarse. Puede que tenga problemas con la búsqueda de ciclos, pero aparte de eso, no tendrá problemas con la programación competitiva.

    Antes que nada, quiero decirte eso, lo mismo para ti

    Bcos, a mí tampoco me gustaban las matemáticas …

    Pero mientras seguimos con la codificación competitiva, las matemáticas también son importantes … Pero esa es la parte de la codificación competitiva …

    Así que no tienes que preocuparte por eso …

    Conocer las matemáticas es útil en la codificación competitiva al encontrar la manera simple de resolver el problema …

    De lo contrario, puede resolver los problemas en la codificación competitiva …

    Así que sé feliz y comienza a codificar en los concursos de HackerRank …

    Esto seguramente te ayudará …

    Gracias…. 🙂

    Si realmente quieres aprender programación y te apasiona, intenta leer artículos sobre GeeksforGeeks | Un portal informático para geeks sobre diferentes temas relacionados con algoritmos y matemáticas. Estos artículos pueden ayudarlo a comprender claramente los diferentes conceptos.

    Sí, debe aprender programación competitiva a pesar de que no sabe mucho de matemáticas, ya que no tiene que hacer muchas matemáticas en programación competitiva.

    Entonces comience la programación competitiva, preferiblemente con HackerRank

    Creo que este es el concepto erróneo más común entre los principiantes, piensan que las matemáticas de los días 11 y 12 son necesarias incluso para sumergirse en la programación competitiva. Pero están equivocados, sorpresa. Sí, si quieres ser bueno programando, entonces codifica, codifica y codifica.

    Si eres un principiante en programación competitiva, entonces la plataforma de práctica parece ser la mejor opción. Hay una sección de la escuela, puede comenzar aquí, luego pasar a las secciones de nivel superior. También puede ser útil consultar temas de programación competitivos.

    More Interesting

    Cómo comprender completamente los condicionales en matemáticas discretas

    ¿Cuántas veces es más rápida la búsqueda binaria que la búsqueda secuencial cuando se busca el elemento 592 en una lista de 1024 elementos?

    ¿Existe alguna analogía en la vida real con el concepto de expresiones regulares?

    ¿Para qué se usan los cierres de relaciones binarias (teoría de conjuntos)?

    ¿Cómo escribimos código para verificar si el año es bisiesto o no en Verilog, sin usar el operador de módulo?

    ¿Cómo funciona la pila de recursión en la generación de una cadena binaria de n bits?

    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?

    Quiero aprender matemáticas programando. ¿Cuáles son los proyectos de programación simples pero geniales que requerirían conocimiento de álgebra, cálculo, probabilidad, etc.?

    ¿Existe la probabilidad en la computadora?

    ¿Cómo se puede encontrar el logaritmo de base 10 de un número de hasta 5 decimales con solo usar las cuatro operaciones básicas (+, -, *, /) con la ayuda de una calculadora?

    Si [matemática] f (5) = 12 [/ matemática] y [matemática] f (10) = 18 [/ matemática] ¿qué significa [matemática] f (20) =? [/ Matemática] Cuándo (a) [matemática] f [/ math] es una función exponencial y (b) [math] f [/ math] es una función de potencia?

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

    ¿Cuál es el proceso de traducción de un lenguaje de programación para representar números o bits?

    ¿Qué subcategorías de informática teórica te entusiasman más en términos de potencial de investigación y por qué?

    ¿Cuál es la complejidad temporal de un programa que calcula el número n de Fibonacci mediante la memorización?