Algoritmo: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Fix nota disambigua |
→Proprietà fondamentali degli algoritmi: Corretto errore sintattico, compiuto per distrazione da frase lunga. Etichette: Modifica da mobile Modifica da web per mobile |
||
Riga 45:
Così, ad esempio, "rompere le uova" può essere considerato legittimamente un passo elementare di un "algoritmo per la cucina" (ricetta), ma non potrebbe esserlo anche "aggiungere sale quanto basta" dato che l'espressione "quanto basta" è ambigua, e non indica con precisione quali passaggi servano per determinare la quantità necessaria.
Un passo come "preparare un pentolino di crema pasticcera" non può considerarsi legittimo perché ulteriormente scomponibile in sotto-operazioni (accendere il fuoco, regolare la fiamma, mettere il pentolino sul fornello, ecc.) e anche perché contenente ambiguità (non specifica quanto grande deve essere il pentolino, quanto deve essere riempito di crema e così via). Al contrario, "continuare a mescolare a fuoco vivo fino a quando il composto non assume colore bruno" è un'istruzione accettabile di tipo ''iterativo'', che comporta un numero finito di operazioni (le rimestate) sebbene tale numero non sia conoscibile a priori, perché dipendente da ciò che è chiamato ''input'' (il grado di umidità della farina nel composto, il vigore della fiamma, ecc.). All'istruzione non elementare di preparazione della crema potrebbe, però, essere associato
L'algoritmo viene generalmente descritto come "procedimento di risoluzione di un problema". In questo contesto, i "problemi" che si considerano sono quasi sempre caratterizzati da ''dati di ingresso'' ([[input]]) variabili, su cui l'algoritmo stesso opererà per giungere fino alla soluzione. Per esempio, il calcolo del massimo comune divisore fra due numeri è un esempio di "problema", e i suoi ''dati di ingresso'', variabili di volta in volta, sono i due numeri in questione. A un non matematico questa potrebbe apparire come una "famiglia di problemi" (il problema di calcolare il massimo comune divisore fra 10 e 15, il problema di calcolarlo fra 40 e 60, fra 35 e 95, e così via). Il matematico e l'informatico identificano con la parola "problema" l'intera famiglia e con "istanza" o "x" ciascuno dei quesiti specifici ottenuti fissando due particolari valori. Data questa premessa, un algoritmo risolve un problema se per qualunque istanza del problema esso produce in un tempo finito la soluzione desiderata, ovvero un certo risultato o dato in uscita ([[output]]) a partire da dei dati in ingresso ([[input]]).
|