16Aug
A meno che tu non sia interessato alla matematica o alla programmazione, la parola "algoritmo" potrebbe essere greca per te, ma è uno degli elementi costitutivi di tutto ciò che stai usando per leggere questo articolo. Ecco una rapida spiegazione di cosa sono e come funzionano.
Disclaimer: non sono un insegnante di matematica o informatica, quindi non tutti i termini che uso sono tecnici. Questo perché sto cercando di spiegare tutto in inglese semplice perché le persone non si sentono a proprio agio con la matematica. Detto questo, ci sono alcuni aspetti matematici, e questo è inevitabile. Geek matematici, sentiti libero di correggere o meglio spiegare nei commenti, ma per favore, tienilo semplice per il matematicamente disincantato tra noi.
Immagine di Ian Ruotsala
Cos'è un algoritmo?
La parola 'algoritmo' ha un'etimologia simile a 'algebra', tranne che si riferisce al matematico arabo stesso, al-Khwarizmi( solo un bocconcino interessante).Un algoritmo, per i non programmatori tra di noi, è un insieme di istruzioni che accettano un input, A e forniscono un output, B, che modifica i dati coinvolti in qualche modo. Gli algoritmi hanno una vasta gamma di applicazioni. In matematica, possono aiutare a calcolare le funzioni da punti in un set di dati, tra cose molto più avanzate. Oltre al loro uso nella programmazione stessa, svolgono ruoli importanti in cose come la compressione dei file e la crittografia dei dati.
Una serie di istruzioni di base
Diciamo che il tuo amico ti sta incontrando in un negozio di alimentari e tu lo stai guidando verso di te. Dici cose come "entra attraverso le porte sul lato destro", "passa la sezione dei pesci a sinistra" e "se vedi il caseificio, mi hai superato". Gli algoritmi funzionano così.Possiamo utilizzare un diagramma di flusso per illustrare le istruzioni in base a criteri che conosciamo in anticipo o scoprire durante il processo.
( immagine intitolata "Routine per l'Icebreaking" EDIT: cortesia di Trigger e Freewheel)
Da START, si avanza lungo il percorso e, a seconda di cosa succede, si segue il "flusso" fino al risultato finale. I diagrammi di flusso sono strumenti visivi che possono più facilmente rappresentare una serie di istruzioni utilizzate dai computer. Allo stesso modo, gli algoritmi aiutano a fare lo stesso con più modelli basati sulla matematica. Grafici
Utilizziamo un grafico per illustrare i vari modi in cui possiamo dare indicazioni.
Possiamo esprimere questo grafico come una connessione tra tutti i suoi punti. Per riprodurre questa immagine, possiamo dare una serie di istruzioni a qualcun altro.
Metodo 1
Possiamo rappresentare questo come una serie di punti e l'informazione seguirà la forma standard di graph ={ (x1, y1),( x2, y2),. ..,( xn, yn)}.Grafico
={ (0,0),( 3,0),( 3,3),( 5,5),( 7,10),( 8,7),( 9,4),( 10,1)}
È piuttosto semplice tracciare ciascun punto, uno dopo l'altro, e collegarli al punto precedente. Tuttavia, immagina un grafico con un migliaio di punti o più segmenti tutti andando in ogni direzione. Quella lista avrebbe molti dati, giusto? E poi dover collegare ognuno, uno alla volta, può essere un dolore.
Metodo 2
Un'altra cosa che possiamo fare è dare un punto di partenza, la pendenza della linea tra esso e il punto successivo, e indicare dove aspettarsi il prossimo punto usando la forma standard di graph ={ (punto iniziale}, [m1, x1, h1],. .., [mn, xn, hn]}. Qui, la variabile 'm' rappresenta la pendenza della linea, 'x' rappresenta la direzione per contare in( se x o y), e 'h'ti dice quanti contare in detta direzione. Puoi anche ricordare di tracciare un punto dopo ogni movimento. Grafico
={ (0,0), [0, x, 3], [0, y, 3], [1, x, 2], [2,5, x, 2], [-3, x, 1], [-3, x, 1], [-3, x, 1]}
Finirai constesso grafico: puoi vedere che gli ultimi tre termini di questa espressione sono gli stessi, quindi potremmo essere in grado di ridurlo semplicemente dicendo "ripeti tre volte" in qualche modo. Diciamo che ogni volta che vedi la variabile 'R'appare, significa ripetere l'ultima cosa: possiamo fare questo: grafico
={ (0,0), [0, x, 3], [0, y, 3], [1, x, 2],[2.5, x, 2], [-3, x, 1], [R = 2]}
Cosa succede se i singoli punti non contano veramente, e solo il grafico stesso? Possiamo consolidare le ultime tre sezioni in questo modo:
graph ={ (0,0), [0, x, 3], [0, y, 3], [1, x, 2], [2.5, x, 2], [-3, x, 3]}
Accorcia un po 'le cose da dove erano prima.
Metodo 3
Proviamo a farlo in un altro modo.
y = 0, 0≤x≤3
x = 0, 0≤y≤3
y = x, 3≤x≤5
y = 2,5x-7,5, 5≤x≤7
y = -3x + 29, 7≤x≤8
y = -3x + 29, 8≤x≤9
y = -3x + 29, 9≤x≤10
Qui lo abbiamo in termini algebrici puri. Ancora una volta, se i punti non contano e solo il grafico lo fa, possiamo consolidare gli ultimi tre elementi.
y = 0, 0≤x≤3
x = 0, 0≤y≤3
y = x, 3≤x≤5
y = 2,5x-7,5, 5≤x≤7
y = -3x + 29, 7≤x≤10
Ora, quale metodo scegli dipende dalle tue abilità.Forse sei bravo con la matematica e la grafica, quindi scegli l'ultima opzione. Forse sei bravo a navigare, quindi scegli la seconda opzione. Nel regno dei computer, tuttavia, stai facendo molti diversi tipi di compiti e l'abilità del computer non cambia davvero. Pertanto, gli algoritmi sono ottimizzati per le attività che completano.
Un altro punto importante da notare è che ogni metodo si basa su una chiave. Ogni set di istruzioni è inutile a meno che tu non sappia cosa fare con loro. Se non sai che dovresti tracciare ogni punto e connettere i punti, la prima serie di punti non significa nulla. A meno che tu non sappia cosa significhi ciascuna variabile nel secondo metodo, non saprai come applicarli, proprio come la chiave di un cifrario. Quella chiave è anche parte integrante dell'utilizzo di algoritmi e, spesso, tale chiave si trova nella comunità o tramite uno "standard".
Compressione file
Quando si scarica un file. zip, si estrae il contenuto in modo da poter utilizzare qualsiasiè dentro di esso. Oggigiorno, la maggior parte dei sistemi operativi può immergersi nei file. zip come se fossero normali cartelle, facendo tutto in background. Sulla mia macchina Windows 95 oltre un decennio fa, dovevo estrarre tutto manualmente prima che potessi vedere qualcosa di più dei nomi dei file all'interno. Questo perché ciò che è stato memorizzato sul disco come file. zip non era in una forma utilizzabile. Pensa a un divano estraibile. Quando vuoi usarlo come letto, devi rimuovere i cuscini e aprirlo, occupando più spazio. Quando non ne hai bisogno, o vuoi trasportarlo, puoi ripiegarlo.
Gli algoritmi di compressione sono regolati e ottimizzati in modo specifico per i tipi di file a cui sono destinati. I formati audio, ad esempio, utilizzano ciascuno un modo diverso di memorizzare i dati che, decodificati dal codec audio, daranno un file audio simile alla forma d'onda originale. Per ulteriori informazioni su tali differenze, consulta il nostro precedente articolo, Quali sono le differenze tra tutti questi formati audio? I formati audio senza perdita di dati e i file. zip hanno una cosa in comune: entrambi producono i dati originali nella loro forma esatta dopo il processo di decompressione. I codec audio con perdita di dati utilizzano altri mezzi per risparmiare spazio su disco, ad esempio frequenze di taglio che non sono in grado di essere ascoltate dalle orecchie umane e di attenuare la forma d'onda nelle sezioni per eliminare alcuni dettagli. Alla fine, mentre potremmo non essere in grado di sentire davvero la differenza tra una traccia MP3 e una traccia CD, c'è sicuramente un deficit di informazioni nella prima.
Crittografia dati Gli algoritmi
vengono anche utilizzati per proteggere dati o linee di comunicazione. Anziché archiviare i dati in modo che utilizzi meno spazio su disco, viene archiviato in un modo non rilevabile da altri programmi. Se qualcuno ruba il tuo disco rigido e inizia a scansionarlo, può raccogliere i dati anche quando si eliminano i file perché i dati stessi sono ancora lì, anche se la posizione di inoltro non è più disponibile. Quando i dati vengono crittografati, tutto ciò che è memorizzato non sembra quello che è.Di solito sembra casuale, come se la frammentazione si fosse accumulata nel tempo.È inoltre possibile memorizzare i dati e visualizzarli come un altro tipo di file. File di immagini e file musicali sono perfetti per questo, in quanto possono essere piuttosto grandi senza destare sospetti, ad esempio. Tutto ciò viene fatto usando algoritmi matematici, che prendono una sorta di input e lo convertono in un altro, molto specifico tipo di output. Per ulteriori informazioni su come funziona la crittografia, consulta HTG Explains: Che cos'è la crittografia e come funziona? Gli algoritmi
sono strumenti matematici che forniscono una varietà di usi nell'informatica. Lavorano per fornire un percorso tra un punto iniziale e un punto finale in modo coerente e forniscono le istruzioni per seguirlo. Sapere più di ciò che abbiamo evidenziato? Condividi le tue spiegazioni nei commenti!