2010-08-02 28 views

Respuesta

25

No.

Una función es un bloque de código en un programa de ordenador.

Un algoritmo es un concepto abstracto que describe cómo resolver un problema.

+1

desafortunadamente no hay una definición formal y precisa de algoritmo. Según la tesis de Church-Turing, existe una definición universalmente aceptada que es informal. Incluso CLRS comienza diciendo "informalmente un algoritmo es ...". Incluso esta respuesta dice "concepto abstracto", que es bastante ambiguo. – DarthVader

+2

Yo diría que una función es un concepto matemático, y no necesariamente relacionado con un programa de computadora, aunque también usamos algo llamado funciones en programación de computadora. Hasta donde yo sé, la función matemática, como concepto, se introdujo mucho antes de que existiera la programación informática con funciones. – runeks

+4

@runeks, considerando el hecho de que este es un sitio web para preguntas relacionadas con la programación, consideraría ese hecho bastante irrelevante. – riwalk

5

Un algoritmo es un conjunto de instrucciones.

En la programación de computadoras, una función es una implementación de un algoritmo.

+0

un _set_ es una palabra ambigua aquí, aunque probablemente se pueda aclarar. –

3

Un algoritmo describe la idea general, mientras que una función es una implementación de trabajo real de esa idea.

2

Podría ser una cuestión casi filosófica, pero un algoritmo es la respuesta (o cómo hacerlo) a un problema en el que una función no responde necesariamente a un problema en sí mismo.

Lo que quiere hacer normalmente es dividir su algoritmo en varias funciones que cada uno tiene su propio objetivo, que, al final, logrará el problema en cuestión, cuando se utilizan juntos.

Ex: desea ordenar una lista de números. El algoritmo utilizado sería, por ejemplo, el algoritmo Merge-sort. Ese algoritmo específico en realidad está compuesto por más de una función, una que dividirá su matriz, otra para verificar la igualdad, otra para fusionar todo nuevamente, y así sucesivamente.

13

En matemáticas, una función es "una relación matemática tal que cada elemento de un conjunto dado (el dominio de la función) se asocia con un elemento de otro conjunto (el rango de la función)" (fuente - google. com, define: función).

En informática, una función es una pieza de código que opcionalmente toma parámetros, opcionalmente da un resultado y opcionalmente tiene un efecto secundario (dependiendo del idioma, algunos idiomas prohíben los efectos secundarios). Debe tener una implementación de máquina específica para poder ejecutar.

El término de informática surgió del término matemático, que es la implementación de la máquina del concepto matemático.

Un algoritmo es "una regla precisa (o conjunto de reglas) que especifica cómo resolver un problema" (fuente - google.com, definir: algoritmo). Un algoritmo puede definirse fuera de la informática y no tiene una implementación definitiva de la máquina. Puede "implementarlo" escribiéndolo a mano :)

La diferencia clave aquí es que, en ciencias de la computación, un algoritmo es abstracto y no tiene una implementación definitiva de la máquina. Una función es concreta y tiene una implementación de máquina.

+0

Eso no es necesariamente cierto. "función" puede significar una unidad de código tal como se implementa en un idioma particular. También puede significar una definición abstracta y funcional de computación, basada en el modelo del cálculo lambda. – Peeja

+0

esta es la mejor respuesta. –

-1

Un algoritmo generalmente se refiere al método o proceso utilizado para terminar con el resultado después del procesamiento matemático. Una función es una subrutina utilizada para evitar escribir el mismo código una y otra vez. Son diferentes en sus usos. Por ejemplo, puede haber un algoritmo que se utiliza para cifrar datos y una función para publicar códigos en una página web.

Aquí es alguna referencia además:

http://en.wikipedia.org/wiki/Algorithm

http://en.wikipedia.org/wiki/Function_(computer_science)

4

Un algoritmo es una serie de pasos (un proceso) para realizar un cálculo, mientras que una función es la relación matemática entre parámetros y resultados.

Una función en la programación es diferente del significado matemático típico de la función porque es un conjunto de instrucciones que implementan un algoritmo para calcular una función.

1

Un algoritmo es la implementación de una función.

En algunos casos, el algoritmo es trivial:

Función: Suma de dos números. Algoritmo: int sum(int x, int y){ return x+y; }

En otros casos, no lo es:

Función: Mejor movimiento de ajedrez. Algoritmo: Move bestChessMove(State gameState){ //I don't know the algorithm. }

+1

El algoritmo puede ser solo pseudocódigo. –

2

Una función matemática es la interfaz o especificación de las entradas y salidas de un algoritmo.

Un algoritmo es la receta precisa que define los pasos que pueden implementar una función.

Confusamente, los diseñadores de lenguaje informático difunden esta distinción mediante el uso del concepto function, func, method, etc., para hablar sobre ambos conceptos.

Por lo tanto, la distinción es una especificación vs. definición.

También hay una distinción semántica: un algoritmo busca proporcionar una solución a un problema. Está orientado a objetivos. Una función simplemente es - no hay un componente teleológico esencial.

-1

Una función es una representación simbólica donde un método son los pasos mecánicos necesarios para obtener la respuesta.

Supongamos que esta función:

f(x) = x^ 2 

Ahora bien, si te digo que contar f(5000) que tiene que hacer las cosas que esta función no dice. Como por ejemplo cómo multiplicar. Entonces realmente estos son solo símbolos.

Pero si tengo un método pitón por ejemplo:

x = math.pow(500, 2) # or whatever it is 

Luego, en este caso los pasos propios de cada operación están totalmente definidos (en las bibliotecas;)).

0

El algoritmo es una secuencia de instrucciones (posiblemente informal pero necesariamente precisa). La función es una regla formal que asocia alguna entrada con una salida específica.Las funciones implementan y formalizan algoritmos. P.ej. podemos formalizar "ir de A a B" como go(a)=b o go(x,a)=b (w/x el que va), etc. De acuerdo con Wikipedia,

Un algoritmo es un método eficaz que puede ser expresado dentro de un finito cantidad de espacio y tiempo y en un lenguaje formal bien definido para calcular una función.

Por lo tanto se puede decir que "ir (ing) de A a B" es un método eficaz para el cálculo de go(a)=b (si lo desea)

Cuestiones relacionadas