Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Algorismes
1. La importància d'escollir l'algorisme
Recordem
Fonaments de la Programació
ALGORISME - Conjunt ordenat de passos que especifiquen la
seqüència detallada d'operacions que s'han de realitzar per a
resoldre el problema
Problema a resoldre
Identificar
dades de partida Escollir
l'algorisme per a ... Obtenir els
resultats esperats
2. La importància d'escollir l'algorisme
Un problema es pot resoldre de “moltes” formes diferents,
Fonaments de la Programació
quins criteris utilitzarem per a escollir entre les diferents
estratègies que permeten transformar les dades de partida en
els resultats esperats?
senzillesa en la solució,
eficiència, (p.e. ordenar 1000 elements amb l'algorisme d'inserció
... necessita més de tres segons i en canvi amb l'algorisme
quicksort ho fa en menys de 1/5 part de segon. Aquesta millora
en el rendiment s’aconsegueix amb una estratègia que necessita
de menys comparacions entre els elements)
Decidir l'ALGORISME per a solucionar el problema és la fase més
important i complexa en el desenvolupament d'aplicacions en el nostre
nivell.
3. La importància d'escollir l'algorisme
Un exemple
Problema a resoldre Avaluació d'un polinomi
Fonaments de la Programació
1 Analitzem el problema proposat
Un polinomi de grau n és una expressió del tipus
Avaluar el polinomi equival a donar valors a x i calcular el resultat f(x)
4. La importància d'escollir l'algorisme
Un exemple
Problema a resoldre Avaluació d'un polinomi
Fonaments de la Programació
2 Dissenyem una solució
Identifiquem les dades de partida
n – el grau del polinomi
a0, a1, ..., an – els coeficients del polinomi
(fixar-se que un polinomi de grau n té n+1 coeficients)
x – el valor en el que s'avaluarà el polinomi
Escollim l'algorisme per aconseguir ...
El resultat esperat i que és f(x)
5. La importància d'escollir l'algorisme
Un exemple
Problema a resoldre Avaluació d'un polinomi
Fonaments de la Programació
2 Dissenyem una solució
Escollim l'algorisme
OPCIÓ 1
Escollim una estratègia aplicant directament la fórmula del polinomi, dissenyem una
iteració on en cada passada calculi un dels termes del polinomi i els acumuli en una variable
auxiliar per aconseguir el resultat.
En la primera iteració calcularem el terme a0 * x0(es redueix a a0), en la iteració i-èssima
calcularem el terme ai * xi, i en l'última iteració calcularem an * xn
Si analitzem la quantitat d'operacions a realitzar
Per cada iteració, on calculem ai * xi, es fan i multiplicacions, per tant per a un polinomi de
n
grau n haurem de calcular i multiplicacions i n sumes
i=1
Per a un polinomi de grau 7 això suposa, 28 multiplicacions i 7 sumes
6. La importància d'escollir l'algorisme
Un exemple
Problema a resoldre Avaluació d'un polinomi
Fonaments de la Programació
2 Dissenyem una solució
Escollim l'algorisme
OPCIÓ 2
Si repassem les operacions que anem fent ens podem adonar que repetim molts càlculs, en
la iteració 4 calculem x4 i en la següent iteració calculem x5.
Ens podem fixar que x5= x4 * x i que el x4 el podem recordar de la iteració anterior i en la
nova només ens cal fer una multiplicació per a trobar el xi corresponent.
Si analitzem la quantitat d'operacions a realitzar en aquest cas trobem que per a un
polinomi de grau n haurem de calcular 2*n-1 multiplicacions i n sumes
Per a un polinomi de grau 7 això suposa, 13 multiplicacions i 7 sumes
Sembla poc estalvi però analitzeu què passa amb valors grans de n
7. La importància d'escollir l'algorisme
Un exemple
Problema a resoldre Avaluació d'un polinomi
Fonaments de la Programació
2 Dissenyem una solució
Escollim l'algorisme
Valor de n número * opció1 número * opció2
15 120 29
35 630 69
80 3240 159
1000 500500 1999
Pista per a calcular el número de multiplicacions de l’opció 1 podem
recordar la fórmula
Ara ja sí trobem diferència en el número de *
Com valorarem quina opció implementar? Doncs dependrà de
l’ordre dels polinomis que el nostre programa haurà d’avaluar.
8. La importància d'escollir l'algorisme
Un exemple
Problema a resoldre Avaluació d'un polinomi
Fonaments de la Programació
Podem millorar encara més aquesta estratègia?
Doncs sí. Hi ha l’algorisme de Horner que ens permet avaluar un polinomi
de grau n amb només n sumes i n multiplicacions. L'estratègia es basa en
considerar el polinomi a avaluar segons:
Per a complementar la sessió es demana:
(i) Buscar informació sobre aquesta nova estratègia i comprovar el
número d’operacions a fer
(ii) Implementar els programes que corresponen a les tres opcions