2010-08-02 28 views

risposta

25

No.

Una funzione è un blocco di codice in un programma per computer.

Un algoritmo è un concetto astratto che descrive come risolvere un problema.

+1

sfortunatamente non esiste una definizione formale e precisa dell'algoritmo. Con la tesi di Church-Turing, c'è una definizione universalmente accettata che è informale. Anche il CLRS inizia col dire "Informalmente un algoritmo è ...". Anche questa risposta afferma "concetto astratto" che è piuttosto ambiguo. – DarthVader

+2

Direi che una funzione è un concetto matematico, e non necessariamente correlato a un programma per computer, sebbene usiamo anche qualcosa chiamato funzioni nella programmazione del computer. Per quanto ne so, la funzione matematica - come concetto - è stata introdotta molto prima che esistesse la programmazione con le funzioni del computer. – runeks

+4

@runeks, considerando che si tratta di un sito Web per domande relative alla programmazione, ritengo che questo fatto sia irrilevante. – riwalk

5

Un algoritmo è un insieme di istruzioni.

Nella programmazione per computer, una funzione è un'implementazione di un algoritmo.

+0

un _set_ è una parola ambigua qui, anche se probabilmente può essere chiarito. –

3

Un algoritmo descrive l'idea generale, mentre una funzione è una reale implementazione operativa di tale idea.

2

Potrebbe trattarsi di una questione quasi filosofica, ma io dico che un algoritmo è la risposta (o l'how-to) a un problema a portata di mano in cui una funzione non risponde in modo autonomo a un problema in sé.

Quello che si vuole fare normalmente è dividere l'algoritmo in una funzione di separazione che ognuno ha il proprio obiettivo, che, alla fine, raggiungerà il problema a portata di mano, se usato insieme.

Es: Si desidera ordinare un elenco di numeri. L'algoritmo utilizzato sarebbe ad esempio l'algoritmo Merge-sort. Quell'algoritmo specifico è in realtà composto da più di una funzione, una che dividerà la tua matrice, un'altra per controllare l'uguaglianza, un'altra per fondere tutto di nuovo insieme, e così via.

13

In matematica, una funzione è "una relazione matematica tale che ogni elemento di un determinato set (il dominio della funzione) è associato a un elemento di un altro set (l'intervallo della funzione)" (source - google. com, define: function).

In informatica, una funzione è un pezzo di codice che opzionalmente accetta parametri, fornisce facoltativamente un risultato e opzionalmente ha un effetto collaterale (a seconda della lingua - alcune lingue proibiscono effetti collaterali). Deve avere un'implementazione specifica della macchina per poter essere eseguita.

Il termine di informatica è venuto fuori dal termine matematico, essendo l'implementazione della macchina del concetto matematico.

Un algoritmo è "una regola precisa (o un insieme di regole) che specifica come risolvere alcuni problemi" (source - google.com, define: algorithm). Un algoritmo può essere definito al di fuori dell'informatica e non ha un'implementazione definitiva della macchina. Puoi "implementarlo" scrivendolo a mano :)

La differenza fondamentale qui è che, in informatica, un algoritmo è astratto e non ha un'implementazione definitiva della macchina. Una funzione è concreta e ha un'implementazione della macchina.

+0

Questo non è necessariamente vero. "funzione" può significare un'unità di codice implementata in una particolare lingua. Può anche significare una definizione astratta e funzionale del calcolo, basata sul modello del calcolo lambda. – Peeja

+0

questa è la risposta migliore. –

-1

Un algoritmo di solito si riferisce al metodo o processo utilizzato per terminare con il risultato dopo l'elaborazione matematica. Una funzione è una subroutine utilizzata per evitare di scrivere lo stesso codice più e più volte. Sono diversi nei loro usi. Ad esempio, potrebbe esserci un Algoritmo che viene utilizzato per la crittografia dei dati e una funzione per la pubblicazione di codice in una pagina Web.

Ecco qualche ulteriore riferimento:

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

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

4

Un algoritmo è una serie di passaggi (un processo) per eseguire un calcolo, mentre una funzione è la relazione matematica tra parametri e risultati.

Una funzione in programmazione è diversa dal tipico significato matematico della funzione perché è un insieme di istruzioni che implementano un algoritmo per il calcolo di una funzione.

1

Un algoritmo è l'implementazione di una funzione.

In alcuni casi, l'algoritmo è banale:

Funzione: Somma di due numeri. Algoritmo: int sum(int x, int y){ return x+y; }

In altri casi, non è così:

Funzione: Best mossa di scacchi. Algorithm: Move bestChessMove(State gameState){ //I don't know the algorithm. }

+1

L'algoritmo potrebbe essere solo pseudocodice. –

2

Una funzione matematica è l'interfaccia o la specifica degli ingressi e delle uscite di un algoritmo.

Un algoritmo è la ricetta precisa che definisce i passaggi che possono implementare una funzione.

Confusamente, i progettisti di linguaggi informatici diffondono questa distinzione utilizzando il concetto function, func, method, ecc. Per parlare di entrambi i concetti.

Quindi la distinzione è una delle specifiche rispetto alla definizione.

C'è anche una distinzione semantica: un algoritmo cerca di fornire una soluzione a un problema. È orientato all'obiettivo. Una funzione semplicemente è - non esiste una componente teleologica essenziale.

-1

Una funzione è una rappresentazione simbolica dove un metodo è i passaggi meccanici necessari per ottenere la risposta.

Supponiamo questa funzione:

f(x) = x^ 2 

Ora, se ti dico di contare f(5000) devi fare le cose che questa funzione non lo dice. Come per esempio come moltiplicare. Quindi davvero questi sono solo simboli.

Ma se ho un metodo pitone per esempio:

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

Quindi in questo caso le stesse operazioni per ogni operazione sono totalmente definiti (nelle librerie;)).

0

Algorithm è una sequenza di istruzioni (possibilmente informale ma necessariamente precisa) . La funzione è una regola formale che associa un input con un output specifico.Le funzioni implementano e formalizzano gli algoritmi. Per esempio. siamo in grado di formalizzare "andare da A a B", come go(a)=b o go(x,a)=b (w/x colui che va), ecc Secondo Wikipedia,

Un algoritmo è un metodo efficace che può essere espresso entro un finita quantità di spazio e tempo e in una lingua formale ben definita per il calcolo di una funzione.

Così si può dire che "andare (ING) da A a B" è un metodo efficace per il calcolo go(a)=b (se si desidera)

Problemi correlati