Sono la stessa cosa?Qual è la differenza tra un algoritmo e una funzione?
risposta
No.
Una funzione è un blocco di codice in un programma per computer.
Un algoritmo è un concetto astratto che descrive come risolvere un problema.
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
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
@runeks, considerando che si tratta di un sito Web per domande relative alla programmazione, ritengo che questo fatto sia irrilevante. – riwalk
Un algoritmo è un insieme di istruzioni.
Nella programmazione per computer, una funzione è un'implementazione di un algoritmo.
un _set_ è una parola ambigua qui, anche se probabilmente può essere chiarito. –
Un algoritmo descrive l'idea generale, mentre una funzione è una reale implementazione operativa di tale idea.
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.
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.
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
questa è la risposta migliore. –
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:
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.
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. }
L'algoritmo potrebbe essere solo pseudocodice. –
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.
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;)).
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)
- 1. Qual è la differenza tra un algoritmo e un metodo
- 2. Qual è la differenza tra una subroutine e una funzione?
- 3. Qual è la differenza tra funzione e funzione
- 4. Qual è la differenza tra la funzione() {}() e function() {}()
- 5. Qual è la differenza tra una chiusura e un modulo?
- 6. Qual è la differenza tra dict() e {}?
- 7. Qual è la differenza tra una discussione e un gestore
- 8. Qual è la differenza tra una chiave e un KeySpec?
- 9. Qual è la differenza tra una chiamata di funzione e un riferimento alla funzione?
- 10. qual è la differenza tra:.! e: r !?
- 11. Qual è la differenza tra una funzione membro const e una funzione membro non const?
- 12. Qual è la differenza tra una Seam e una Mock?
- 13. Qual è la differenza tra una monade e una chiusura?
- 14. Qual è la differenza tra una filettatura e una fibra?
- 15. Qual è la differenza tra una classe e una libreria?
- 16. Qual è la differenza tra Verilog! e ~?
- 17. Qual è la differenza tra {0} e ""?
- 18. Qual è la differenza tra una tupla e una compressa_pair?
- 19. Qual è la differenza tra una "funzione", un "metodo" e un "metodo associato" in Python 3?
- 20. Qual è la differenza tra ("") e (null)
- 21. Qual è la differenza tra = e: =
- 22. Qual è la differenza tra .ToString() e + ""
- 23. Qual è la differenza tra? : e ||
- 24. qual è la differenza tra [[], []] e [[]] * 2
- 25. Qual è la differenza tra $ e $$?
- 26. Qual è la differenza tra " " e ""?
- 27. Qual è la differenza tra `##` e `hashCode`?
- 28. Qual è la differenza tra {0} e +?
- 29. Qual è la differenza tra un helper e un parziale?
- 30. Qual è la differenza tra un JavaBean e un POJO?
Qual è la differenza tra una ricetta e una deliziosa torta? –
qual è la differenza tra una mela e una pagnotta di pane? –