¿Qué tipos de matemáticas son las más destacadas en informática?

Así que siento que mucha gente se está centrando en cómo las computadoras pueden calcular las cosas. Eso no me emociona. La pregunta no es acerca de “cómo hacen las computadoras las matemáticas” sino “cómo intentan las personas aprovechar las matemáticas para hacer cosas geniales con las computadoras”. Esa es la pregunta que estoy respondiendo.

  1. Matemática discreta: esto es ante todo. Cosas como la combinatoria, la teoría de grafos, la lógica, son cruciales para la informática. En última instancia, estamos trabajando en máquinas discretas (incluso las teóricas, como las máquinas de Turing o el cálculo Lambda de Church) y, en el mejor de los casos, podemos hablar sobre aproximaciones de cosas continuas. Aún así, esto no significa que no podamos usar la continuidad como un buen modelo, como en
  2. Análisis real: si toma un curso de algoritmos (fundamentalmente un esfuerzo discreto), sus análisis de tiempo serán en términos de notación “big-oh”; en última instancia, así es como las funciones actúan asintóticamente a medida que sus entradas abarcan todos los valores posibles. Si bien esto es, en última instancia, de naturaleza discreta, es útil utilizar el cálculo / análisis real e integrar nuestras funciones para analizar en un continuo (como [math] \ mathbb R [/ math]).
  3. Teoría del múltiple: los múltiples son una rama de la topología y la geometría. Estos aparecen en una gran cantidad de teoría del aprendizaje automático, ya que los algoritmos involucrados están descubriendo implícitamente un [matemático] n [/ matemático] múltiple en algún espacio ambiental. No soy un chico de ML, así que no puedo decirte más que eso, pero esta es un área activa de investigación.
  4. Topología: más general que la teoría múltiple, la topología tiene algunas aplicaciones sorprendentes en la teoría de la computación; en combinatoria; en redes (y también en aprendizaje automático, como arriba).
  5. Estadísticas y teoría de la probabilidad: de nuevo, ML. También las estadísticas son el rey para el análisis empírico
  6. Álgebra abstracta: esto aparece en todas partes. El estudio del diseño del lenguaje de programación, por ejemplo, modela algunas propiedades agradables (como el sistema de tipos) algebraicamente. Tome un sistema de tipos con una relación básica de subtipo y suponga que hay algún “tipo más grande” (llamado unión o límite superior mínimo de todos los demás elementos; piense en Object en Java). Esto forma un entramado de unión bajo la operación de supertipo menos común: tipos dados [matemática] T_1, T_2 [/ matemática] decimos que [matemática] T = T_1 \ vee T_2 [/ matemática] if [matemática] T_1 <: T [/ matemática] y [matemática] T_2 <: T [/ matemática] y que cualquier otra [matemática] T '[/ matemática] que satisfaga esto también satisfizo [matemática] T <: T' [/ matemática]. Mira en celosías para más información sobre esto; es bastante sencillo pero un poco formal.

    Otro lugar donde aparecen las tonterías algebraicas es en la gestión matemática del estado de la computación. Esto es realmente muy difícil de modelar bien. Lo que implementaron lenguajes como Haskell fue una mónada: una envoltura que se basa (libremente) en la noción categórica de una mónada fuerte. Básicamente, una mónada tiene dos operaciones: le permite inyectar un valor en la mónada y le permite tomar mónadas con valores y convertirlos en la misma mónada con un nuevo valor (posiblemente de un nuevo tipo); Además, estas operaciones tienen que satisfacer algunas leyes básicas de cordura que intuitivamente pensarías que son ciertas pero para las cuales ciertos casos degenerados pueden conjurarse para violar si una persona verdaderamente vil y horrible tuviera que pensar en ello …

  7. Teoría de la computación y la complejidad: la computación es discreta pero es una pequeña teoría agradable en sí misma. La complejidad (también discreta) se ha convertido en un tema muy interesante y difícil (ver P = NP).
    Este es un tipo de matemática muy centrada en el CS que a menudo se inspira en diversos orígenes.
  8. Teoría de números: la criptografía, esa cosa que hace posible sus compras en Amazon, depende completamente de la teoría de números. Mira en RSA, por ejemplo
  9. Álgebra lineal: pertenece al primer puesto de la lista y podría decirse que es un subcampo de álgebra abstracta. El álgebra lineal se puede usar para gráficos; para grandes conjuntos de datos; para algoritmos de compresión; para encriptación (AES); para codificación de información (búsqueda de matrices dispersas, etc.).

Al obtener un título en ciencias de la computación, generalmente toma muchos cursos de cálculo, alguna forma de matemática discreta y (muy probablemente) un curso de análisis real.

Siendo realistas, la mayoría de las personas en el campo de CS no usan el cálculo muy a menudo en su trabajo diario. Matemáticas discretas, álgebra booleana (y lógica) son la parte más importante del desarrollo de software regular. Ser capaz de gestionar operadores booleanos es útil para crear sentencias de ramificación sólidas en la programación regular y ayuda a desarrollar un algoritmo más limpio.

Si trabaja con el aprendizaje automático y la inteligencia artificial, la probabilidad, las estadísticas y el álgebra lineal son muy importantes.

Las matemáticas discretas de alto nivel y la teoría de números (el pequeño teorema de Fermat específicamente) son extremadamente importantes en los estudios de criptografía y la seguridad de RSA.

Si está trabajando a bajo nivel (con temas como arquitectura de computadoras y programación de sistemas), tener habilidades fuertes con álgebra booleana es extremadamente útil en el diseño de circuitos y trabajar con sistemas operativos y compiladores.

En general, el análisis algorítmico es extremadamente importante en CS. Esto no es realmente un tipo de materia de matemática pura, pero en Purdue, hay un curso completo dedicado a las pruebas de matemática que rodean, analizan la complejidad del algoritmo y diseñan algoritmos. Por lo que he escuchado (aún no he tomado esa clase), el análisis de algoritmos es la clase CS más importante que cualquiera podría tomar dada la importancia y la importancia de los conceptos en la industria y la investigación.

La respuesta de Benjamin Kushigian también es extremadamente exhaustiva, dio en el clavo en términos de matemática pura en CS.

En el orden de la ubicuidad de mis experiencias:
1. Lógica matemática (en todas partes)
2. Teoría de la probabilidad (inevitable en informática teórica y aprendizaje automático)
3. Álgebra lineal (Visión por computadora, aprendizaje automático; los problemas de álgebra lineal son de interés para las personas que estudian algoritmos y teoría de la complejidad)
4. Cálculo (análisis de algoritmos, aprendizaje automático, procesamiento de señales y otras cosas en el lado EE de las cosas)
5. Teoría de grafos (los problemas teóricos de grafos o problemas reducibles a ellos aparecen a menudo).
6. Análisis numérico (la aproximación es poderosa. Lógica matemática (en todas partes)
7. Teoría de la optimización (aprendizaje automático)

Otros temas como topología general y algebraica (sistemas distribuidos y teoría algorítmica de juegos), análisis básico y teoría de la medida (teoría algorítmica de juegos y aprendizaje automático), geometría algebraica y teoría de representación (teoría de la complejidad, especialmente problemas de wrt del álgebra lineal) y diferencial La topología (aprendizaje automático) surge en casos particulares, pero aparece de manera tan incidental que aprender estas áreas de las matemáticas por otra cosa que no sea por su propio bien no sería particularmente productivo.

Todos ellos. Cada área de las matemáticas puede y ha sido utilizada en informática. ¿Ese nuevo campo del que no hemos escuchado porque solo será inventado por el próximo Newton en unos 30 años? No tengo idea de cuál es ese campo, pero puedo prometer que será parte de algún programa de computadora unos meses / años después.

La informática es matemática. El departamento de matemáticas se consideraba un refugio seguro en los días en que todavía se lo veía como algo que no era digno de su propio grado.

Ahora permítanme ir a una tangente (eso es algo matemático por cierto), porque quienes hacen este tipo de preguntas tienden a ser mathófobos (como lo era antes). Si esto no se aplica a usted, simplemente ignore lo que sigue. Ya he respondido la pregunta principal de todos modos.

Entonces, aquí están las buenas noticias. Si necesita aprender algo matemático para un programa, tiene la biblioteca más grande de la historia literalmente a su alcance, y no necesita aprenderlo todo linealmente. ¿Necesita saber cómo encontrar la distancia entre dos puntos (nuevamente)? Probablemente ya recuerde los conceptos básicos de trazar coordenadas cartesianas, así que omita todo eso y vaya directo al grano (spoiler: es el teorema de Pitágoras reescrito). ¿Quiere aprender sobre la desviación estándar de algún algoritmo predictivo que quiera escribir? Hay toneladas de sitios web que lo explicarán paso a paso sin ningún símbolo sigma arcaico.

A medida que aprende estos conceptos, ya sea de nuevo o por primera vez, ahora tiene algo para aplicarlos a lo que ya está interesado. Ya no será una memorización memorizada, sino que comenzará a construir una comprensión intuitiva de por qué funciona, y tal vez incluso aprecies la belleza y la elegancia de algo que alguna vez consideraste como una fórmula más de los miles que tus maestros acumulaban sobre ti.

Además, si ya conoce algunos conceptos básicos de programación, ya comprende algunos conceptos matemáticos sin siquiera saberlo. ¿El símbolo sigma que mencioné anteriormente? Eso es básicamente una iteración “for i in set” sobre una matriz / lista / conjunto. Simplemente dice “para cada número en este conjunto de números, haga esto y devuelva la suma”.

Entonces, ¿cuáles son todas las áreas de las matemáticas utilizadas en informática? Todas las áreas de matemáticas. Pero no dejes que eso te desanime.

En Stanford hay dos cursos de pregrado que son cursos básicos para ser admitidos en el programa MSCS. Son CS 103 (MIT 6.041J) y CS 109 (MIT 6.041SC), secuencias de un año.

CS103: Fundamentos matemáticos de la informática. CS103 dará a los estudiantes los fundamentos matemáticos necesarios para la informática. Los temas incluyen técnicas de prueba y lógica; inducción; conjuntos, funciones y relaciones; una introducción a los idiomas formales; DFA, NFA y expresiones regulares; Gramáticas sin contexto, máquinas de Turing y NP-Completeness.
MIT 6.042J Matemáticas para informática

CS109: Introducción a la probabilidad para informáticos. Los temas incluyen: conteo y combinatoria, variables aleatorias, probabilidad condicional, independencia, distribuciones, expectativa, estimación puntual y teoremas de límites. Aplicaciones de la probabilidad en informática, incluido el aprendizaje automático y el uso de la probabilidad en el análisis de algoritmos.
MIT 6.041SC Análisis de sistemas probabilísticos y probabilidad aplicada

Para obtener más cursos básicos, consulte Autoestudio para los cursos de la Fundación MSCS de Stanford. por J. Lee Anthony sobre Cómo ingresar a la Universidad de su elección.

Casi cualquier tipo de matemática que se te ocurra se ha enviado a una computadora. El álgebra básica comprende la mayor parte, pero el campo de la informática está profundamente arraigado en los conceptos matemáticos. Cada vez que se trata de grandes cantidades de datos o fórmulas complejas (para qué se inventaron las computadoras), se enfrentará a cualquier tipo de matemática.

Mucho depende de cuán profundo quieras llegar. ¿Quieres mejorar el rendimiento de internet? Vas a entrar en algunas matemáticas profundas. ¿Quieres renderizar una fuente? Nuevamente, funciones complejas para que suceda rápido.

– lógica booleana

– teoría de la categoría

– álgebra lineal

– cálculo lambda

– teoría de la computabilidad y complejidad

– Teoría de grafos

– pruebas inductivas

– la matemática detrás de muchas cosas innovadoras, por ejemplo, CSP, comunicación de procesos en serie

– La mayoría de los documentos de CS, especialmente los más teóricos, introducen la notación matemática, se expresan en teoremas, por lo que una buena manera de decir que esto no es solo que CS usa las matemáticas, sino que CS es matemática aplicada.

Se pueden usar todo tipo de matemáticas en comp sci. La informática básica obviamente requiere aritmética, y algunos programas más complejos pueden requerir geometría y álgebra. En la informática de más alto nivel, que generalmente es empleada por ingenieros y científicos de alto rango, las estadísticas se usan muy a menudo, y muchas veces los algoritmos se escriben para derivar estadísticas de experimentos, o en ocasiones comprender estadísticas para que puedan ser útiles para el científico. . Si está buscando encontrar un área específica de matemática más utilizada, aquí hay una clasificación de lo que encontré.

1. Teoría de conjuntos (cae bajo Alg. Abstracto) [Muy Muy Importante]
2. Probabilidad [Muy Muy Importante]
3. Teoría de grafos [Muy Muy Muy Importante]
4. Álgebra abstracta [Anillo, campos, Conjuntos]
5. Teoría de los números [Muy importante]
6. Optimizaciones convexas [Importante desde la investigación prospectiva]
7. Estadísticas [Importante de la investigación prospectiva]
8. Lógica proposicional y pruebas.
9. Conteo o permutaciones y combinación
10. Álgebra lineal y algo de trigonometría [Requerido para gráficos por computadora o GameDev]
11. Geometría computacional [Importante desde la investigación prospectiva]

1, matemáticas discretas
2, probabilidad
3, estadísticas
4, cálculo
5, álgebra lineal

Los menos importantes:
6, análisis numérico
7, análisis funcional
8, optimización combinatoria
9, teoría de números
10, proceso estocástico
11, geometría diferencial

Para un curso de informática mucho. espere cursos de cálculo de alto nivel y matemáticas avanzadas. Deben tener algunos aros para saltar para mostrar que puedes aprender.

Para el trabajo en informática, probablemente no tanto. La mayoría del software hace poco más de lo que encuentra una calculadora haciendo.

dblRateofChange = (intUserInput * intUserInput) / (intProgramSlope)

tipo de cosas … zzzzzzz

mira esto es la mayoría de las matemáticas que me pagaron $ 2000 por un día para escribir … no exactamente E = MC2 … zzzzzzzzzzzzzz

Plot (Main, “”, IIf (C> O, colorGreen, colorRed), styleBar);
if (DrawAllLines)
para (i = 2; i <= Líneas + 1; i ++)
{
if (DrawS! = “Off”)
{
x0 = GetXSupport (Soporte1, Porcentaje, i);
x1 = GetXSupport (Soporte2, Porcentaje, i-1);
y0 = GetYSupport (Soporte1, Porcentaje, i);
y1 = GetYSupport (Soporte2, Porcentaje, i-1);
x = LineArray (x0, y0, x1, y1, 1);
if (AllOrUpS) ConS = StrToNum (NumToStr (y0 si (Con y ConS)
Plot (x, “”, IIf (LastValue (C) styleLine | styleThick);
}
if (DrawR! = “Desactivado”)
{
x0 = GetXResistance (Resistance1, Porcentaje, i);
x1 = GetXResistance (Resistance2, Porcentaje, i-1);
y0 = GetYResistance (Resistance1, Porcentaje, i);
y1 = GetYResistance (Resistance2, Porcentaje, i-1);
x = LineArray (x0, y0, x1, y1, 1);
if (AllOrDownR) ConR = y0> y1;
si (Con y ConR)
Plot (x, “”, IIf (LastValue (C)
styleLine | styleThick);
}
}
más
{
if (DrawS! = “Off”)
{
x0 = GetXSupport (Soporte1, Porcentaje, Líneas + 1);
x1 = GetXSupport (Soporte2, Porcentaje, Líneas);
y0 = GetYSupport (Soporte1, Porcentaje, Líneas + 1);
y1 = GetYSupport (Soporte2, Porcentaje, Líneas);
x = LineArray (x0, y0, x1, y1, 1);
Sup = LastValue (LinRegSlope (x, Líneas + 1));
if (AllOrUpS) ConS = y0 si (Con y ConS)
Plot (x, “”, IIf (LastValue (C)
styleLine | styleThick);
}
if (DrawR! = “Desactivado”)
{
x0 = GetXResistance (Resistance1, Porcentaje, Líneas + 1);
x1 = GetXResistance (Resistance2, Porcentaje, Líneas);
y0 = GetYResistance (Resistencia1, Porcentaje, Líneas + 1);
y1 = GetYResistance (Resistance2, Porcentaje, Líneas);
x = LineArray (x0, y0, x1, y1, 1);
Res = LastValue (LinRegSlope (x, Líneas + 1));
if (AllOrDownR) ConR = y0> y1;
si (Con y ConR)
Plot (x, “”, IIf (LastValue (C)
styleLine | styleThick);
}
str = “\ nR Slope = (” + Res + “), S Slope = (” + Sup + “)”;
}

Todas las áreas de las matemáticas se pueden usar en informática. Si está trabajando con ingenieros y científicos, aún más. Pero considero que las matemáticas discretas, incluida la teoría de grafos y el análisis numérico, son las más valiosas. Para la mayoría de la programación empresarial, las estadísticas y el álgebra son suficientes.

Además de aritmética y álgebra para conceptos generales de informática:

  1. Lógica matemática para electrónica digital y programación.
  2. Álgebra lineal, trigonometría, geometría para procesamiento de imágenes y gráficos por computadora.
  3. Cálculo para procesamiento de señal digital
  4. Estadísticas de Inteligencia Artificial

Aquí hay algunas áreas adicionales de matemáticas,

Combinatoria, probabilidad, estadística inferencial, etc.

Para una respuesta completa: ¿Qué tipo de matemática es importante para la informática?

Matemáticas discretas: aquí se encuentran la mayoría de los subconjuntos cruciales de Matemáticas para CS (teoría de conjuntos). Tales como probabilidad, combinatoria, lógica, teoría de números.

Y algo de álgebra lineal …

La mayoría de las escuelas querrán agregar Cálculo al currículo, pero puedes vivir sin él.

Permítanme agregar mi propia lista de matemáticas esenciales para un título en Informática:
1) cálculo
2) Teoría de conjuntos y lógica matemática
3) Análisis numérico
4) Estadística y probabilidad
5) Álgebra Lineal
6) Geometría analítica
7) Combinatoria y Matemáticas Discretas

La respuesta es matemática funcional. Todas las funciones, gráficos, matemáticas recursivas se utilizan principalmente en informática. Las matemáticas básicas también son importantes. Y también depende de lo que quieras hacer con la informática.

Matemática discreta (teoría de grafos principalmente); También es útil conocer el álgebra lineal y el análisis numérico. Depende de en qué área de informática trabaje.

Las matemáticas discretas son directas a la informática en algoritmos y estructuras de datos. Todavía te beneficias contextualmente con otros estudios de matemáticas. Pero es posible que no alimenten su balance final. No sin alguna aplicación para salvarlos.

Esa matemática se llama matemática binaria. La computadora solo puede entender dos dígitos, 0 y 1.

Se puede utilizar cualquier parte de las matemáticas en Ciencias de la Computación, dependiendo de en qué área esté trabajando.