¿Cuál es la diferencia entre algoritmos y funciones?

Su pregunta puede interpretarse en el contexto de la informática o las matemáticas.

La versión informática de la pregunta, como señaló Alfred Dominic Vella en esta página, se respondió bien en ¿Cuál es la diferencia entre un algoritmo y una función?

Sin embargo, su pregunta está etiquetada como una pregunta matemática. En matemáticas, la característica clave de una Función (matemáticas) es que es una relación donde “cada entrada está relacionada con exactamente una salida”. Sin embargo, un Algoritmo es una noción más general para cualquier secuencia de operaciones bien definida, que no necesita tener una sola salida para una entrada dada.

Según la función (matemática) “Una función puede definirse por cualquier condición matemática que relacione cada argumento (valor de entrada) con el valor de salida correspondiente. Si el dominio es finito, una función f puede definirse simplemente tabulando todos los argumentos x y sus valores de función correspondientes f (x). Más comúnmente, una función se define mediante una fórmula, o (más generalmente) un algoritmo, una receta que indica cómo calcular el valor de f (x) dado cualquier x en el dominio … Hay muchas otras formas de definir funciones “.

Entonces, para relacionar los dos conceptos juntos, un algoritmo es solo una forma de especificar una función, pero un algoritmo puede hacer más que especificar funciones, ya que el resultado de un algoritmo no siempre calcula una función. Entonces puedes tener:

  • un algoritmo que computa una función
  • un algoritmo cuya salida no calcula una función, por ejemplo, al producir más de una salida posible para la misma entrada
  • una función calculada por un algoritmo
  • una función definida por algo diferente a un algoritmo, como una fórmula

Una fórmula no es un algoritmo, ya que solo especifica una relación estática entre variables, y no el proceso paso a paso de calcular una solución.

Una de las diferencias es que diferentes algoritmos pueden calcular la misma función.

Por ejemplo, considere estos dos algoritmos que toman la entrada [math] x [/ math]. Para el primer algoritmo, doble [matemática] x [/ matemática] y agregue [matemática] 2 [/ matemática] al resultado. Para el segundo algoritmo, agregue [math] 1 [/ math] a [math] x [/ math] y luego duplique el resultado. Ambos calculan la misma función.

Hay otras diferencias Por ejemplo, los algoritmos pueden tener efectos secundarios donde los efectos secundarios son cualquier cosa que no sean sus salidas. Las funciones generalmente están destinadas a no tener ningún efecto secundario.

Normalmente, tanto los algoritmos como las funciones están destinados a ser deterministas, pero puede debilitar ambos conceptos para incluir algoritmos o funciones no deterministas que incluyan aspectos aleatorios.

A veces, un algoritmo no se detiene en algunas entradas. Eso correspondería a aquellas entradas que no están en el dominio de la función que calcula el algoritmo.

Respuesta corta:

función: qué calcular

algoritmo: cómo calcularlo

Supongo que el contexto para esta pregunta es en realidad computacional, aunque falta esa etiqueta. Estoy tomando “función” en el sentido matemático, es decir, un mapeo de un dominio a un rango. Dados los datos de entrada en el dominio, ¿cuál es el resultado en el rango al que se asigna la función? Los algoritmos se pueden usar para calcular dichos resultados a partir de un mapeo funcional.

Si la pregunta pretende “función” en el sentido de una subrutina invocable en un programa de computadora, entonces simplemente puede considerarse como una de las formas en que se implementan los algoritmos de computadora.

Estoy respondiendo a una solicitud de respuesta; pero la pregunta no está bien planteada, y podría haber otras posibles interpretaciones. Sin embargo, lo anterior es mi mejor conjetura sobre lo que constituiría una respuesta directa razonablemente simple. Sugiero que el interlocutor lea más sobre algoritmos y funciones.

Aunque son similares en concepto, son muy diferentes.

Una función es un mapeo de un dominio a un codominio. En informática a menudo pensamos en una función como un procedimiento que devuelve un valor. Las funciones son abstractas y pueden ser implementaciones, pero el objetivo principal es que, dado un valor, se devuelve otro.

Un algoritmo es un conjunto de acciones que son un conjunto de reglas que se siguen y llegan a su fin. Es posible que un algoritmo no devuelva un valor, pero debe detenerse. Es un concepto abstracto más que una implementación.

La pregunta se ha hecho en stackoverflow

¿Cuál es la diferencia entre un algoritmo y una función?

A2A. ¿Te refieres a funciones matemáticas? Si ese es el caso, no veo dónde radica la confusión. Una función matemática toma un conjunto de parámetros de entrada y genera un único valor de retorno. Los algoritmos, por otro lado, son los pasos involucrados en el cumplimiento de una tarea. Una función es inmutable, mientras que los algoritmos se pueden optimizar.
Si te refieres a funciones en programación, entonces esas funciones pueden ser la implementación de un algoritmo. Avísame en los comentarios si tienes algo definido en mente.

Lo que sigue es una explicación no técnica ‘Feynmanian’ (como si fuera un 5yo) …

El matrimonio es un caso especial de relación existente entre entidades únicas en determinadas condiciones. Para mantener estas condiciones, se deben realizar ciertas acciones. Las acciones operan con instrucciones dadas de tal manera que para que la relación persista deben ser ejecutadas de manera precisa y repetida, por lo que los matrimonios tienden a establecerse en una rutina predecible o “ritmo”.

Estas instrucciones, por lo tanto, si bien no son la relación en sí, inducen las acciones que determinan la condición de la relación, de modo que si no se siguen correctamente, la pareja ‘actúa’, la relación se vuelve ‘disfuncional’ y el ‘matrimonio’ ​​se disuelve.

Además, la acción no solo ocurre dentro de la relación, sino que también se puede actuar sobre la relación, y dichas acciones también siguen instrucciones que pueden o no pertenecer a la relación.

Una función, por lo tanto, es el nombre dado a una condición particular para una relación especial entre entidades únicas, y un algoritmo es uno de los muchos conjuntos de instrucciones para hacer algo para, o para, esta condición (y, por lo tanto, la relación). dentro o fuera

Por lo tanto, si bien esta relación especial es única, y existen varias condiciones bajo las cuales la relación pertenece, hay una cantidad de instrucciones para cualquier cantidad de acciones potenciales.

Moraleja de la historia = haz lo que dice tu pareja y saca la basura 😉

Algoritmo = “cómo” haces algo. ¿Cuáles son los pasos específicos para calcular lo que necesita / desea?

Función / Método = una forma simple de agrupar sus algoritmos para que pueda llamarlos fácilmente para calcular el resultado

Ejemplo super simple:

Algoritmo: ¿Es un número dado par o impar? Deje X = algún número. Deje que bIsOdd sea igual a un booleano para decirnos si es extraño o no. Algunos pseudocódigo:

Si X módulo 2 == 0, entonces bIsOdd = false más devuelve verdadero

Función: Digamos que nombramos nuestra función IsNumberOdd (int num). El contenido de esta función contendrá los pasos del algoritmo anterior y simplemente podemos “llamarlo” cuando lo necesitemos. Este es un ejemplo trivial, pero puede extrapolar a algoritmos más complejos.

Las funciones son una forma de agrupar algoritmos para facilitar el acceso. Los algoritmos son cómo se hace la computación real cuando se llama a la función.