SlideShare a Scribd company logo
http://codemooc.org/algoritmi/
Algo 05.03
Dignità di algoritmo
alessandro bogliolo
Algo 05.03
alessandro.bogliolo@uniurb.it
Correttezza
diunalgoritmo
dati
risultati
Istanza di input
Output
Pre-condizione
Post-condizione
FF calcolabile
Risultato corretto in tempo finito
∀
Algo 05.03
alessandro.bogliolo@uniurb.it
Dimostrazionematematica
𝑠1 = 𝑎
𝑠2 = 𝑠1 + 𝑏 = 𝑎 + 𝑏
Algo 05.03
alessandro.bogliolo@uniurb.it
Dimostrazione
perinvariantediciclo
𝑖 𝑘 = 𝑘
𝑠 𝑘 = 𝑘 + ⋯ + 2 + 1
𝑖 𝑘+1 = 𝑖 𝑘 + 1 = 𝑘 + 1
𝑠 𝑘+1 = 𝑘 + 1 + 𝑠 𝑘 = 𝑘 + 1 + … + 2 + 1
Algo 05.03
alessandro.bogliolo@uniurb.it
Dimostrazione
perinduzione 𝑓𝑎𝑐𝑡 = 1
𝑓𝑎𝑐𝑡 = 𝑁 ∙ 𝑓𝑎𝑡𝑡𝑜𝑟𝑖𝑎𝑙𝑒(𝑁 − 1)
𝑓𝑎𝑡𝑡𝑜𝑟𝑖𝑎𝑙𝑒 𝑁 = 𝑁! = 𝑁 ∙ 𝑁 − 1 ∙ ⋯ ∙ 3 ∙ 2 ∙ 1
Post-condizione
Se N=1
Se N>1
= 𝑁 ∙ 𝑁 − 1 ∙ 𝑁 − 2 ∙ ⋯ ∙ 3 ∙ 2 ∙ 1

More Related Content

More from Alessandro Bogliolo

BIBMOOC 04.02 - Marketing culturale - Anna Busa
BIBMOOC 04.02 - Marketing culturale - Anna BusaBIBMOOC 04.02 - Marketing culturale - Anna Busa
BIBMOOC 04.02 - Marketing culturale - Anna Busa
Alessandro Bogliolo
 
BIBMOOC 3.2 - Coding unplugged fai-da-te
BIBMOOC 3.2 - Coding unplugged fai-da-teBIBMOOC 3.2 - Coding unplugged fai-da-te
BIBMOOC 3.2 - Coding unplugged fai-da-te
Alessandro Bogliolo
 
BIBMOOC 03.01 - Programmazione visuale a blocchi
BIBMOOC 03.01 - Programmazione visuale a blocchiBIBMOOC 03.01 - Programmazione visuale a blocchi
BIBMOOC 03.01 - Programmazione visuale a blocchi
Alessandro Bogliolo
 
BIBMOOC 02.01 - Esecutore ideale e istruzioni elementari
BIBMOOC 02.01 - Esecutore ideale e istruzioni elementariBIBMOOC 02.01 - Esecutore ideale e istruzioni elementari
BIBMOOC 02.01 - Esecutore ideale e istruzioni elementari
Alessandro Bogliolo
 
BIBMOOC 02.02 - Sequenze di istruzioni ripetizione e condizioni
BIBMOOC 02.02 - Sequenze di istruzioni ripetizione e condizioniBIBMOOC 02.02 - Sequenze di istruzioni ripetizione e condizioni
BIBMOOC 02.02 - Sequenze di istruzioni ripetizione e condizioni
Alessandro Bogliolo
 
BIBMOOC 01.03 - Le biblioteche e la loro funzione sociale - Chiara Faggiolani
BIBMOOC 01.03 - Le biblioteche e la loro funzione sociale - Chiara FaggiolaniBIBMOOC 01.03 - Le biblioteche e la loro funzione sociale - Chiara Faggiolani
BIBMOOC 01.03 - Le biblioteche e la loro funzione sociale - Chiara Faggiolani
Alessandro Bogliolo
 
BIBMOOC 1.2 - Coding e pensiero computazionale
BIBMOOC 1.2 - Coding e pensiero computazionaleBIBMOOC 1.2 - Coding e pensiero computazionale
BIBMOOC 1.2 - Coding e pensiero computazionale
Alessandro Bogliolo
 
BIBMOOC 1.1 - Informazione e rappresentazioni digitali
BIBMOOC 1.1 - Informazione e rappresentazioni digitaliBIBMOOC 1.1 - Informazione e rappresentazioni digitali
BIBMOOC 1.1 - Informazione e rappresentazioni digitali
Alessandro Bogliolo
 
CodyTrip a BTO2021
CodyTrip a BTO2021CodyTrip a BTO2021
CodyTrip a BTO2021
Alessandro Bogliolo
 
AIMOOC 7.3 - Per una IA etica - Claudia Chiavarino
AIMOOC 7.3 - Per una IA etica - Claudia ChiavarinoAIMOOC 7.3 - Per una IA etica - Claudia Chiavarino
AIMOOC 7.3 - Per una IA etica - Claudia Chiavarino
Alessandro Bogliolo
 
AIMOOC 7.2 - La strategia europea per l'I.A. - Lucilla Sioli
AIMOOC 7.2 - La strategia europea per l'I.A. - Lucilla SioliAIMOOC 7.2 - La strategia europea per l'I.A. - Lucilla Sioli
AIMOOC 7.2 - La strategia europea per l'I.A. - Lucilla Sioli
Alessandro Bogliolo
 
AIMOOC 5.5 - Programmazione o addestramento? - Alessandro Bogliolo
AIMOOC 5.5 - Programmazione o addestramento? - Alessandro BoglioloAIMOOC 5.5 - Programmazione o addestramento? - Alessandro Bogliolo
AIMOOC 5.5 - Programmazione o addestramento? - Alessandro Bogliolo
Alessandro Bogliolo
 
AIMOOC 1.5 - La coscienza - Mario Rosanova
AIMOOC 1.5 - La coscienza - Mario RosanovaAIMOOC 1.5 - La coscienza - Mario Rosanova
AIMOOC 1.5 - La coscienza - Mario Rosanova
Alessandro Bogliolo
 
AIMOOC 5.4 - L'intelligenza della forza bruta - Alessandro Bogliolo
AIMOOC 5.4 - L'intelligenza della forza bruta - Alessandro BoglioloAIMOOC 5.4 - L'intelligenza della forza bruta - Alessandro Bogliolo
AIMOOC 5.4 - L'intelligenza della forza bruta - Alessandro Bogliolo
Alessandro Bogliolo
 
AIMOOC 5.3 - Il libero arbitrio dell'esecutore ideale - Alessandro Bogliolo
AIMOOC 5.3 - Il libero arbitrio dell'esecutore ideale - Alessandro BoglioloAIMOOC 5.3 - Il libero arbitrio dell'esecutore ideale - Alessandro Bogliolo
AIMOOC 5.3 - Il libero arbitrio dell'esecutore ideale - Alessandro Bogliolo
Alessandro Bogliolo
 
AIMOOC 4.3 - Conoscenza e comunicazione fra neuroni - Stefano Sartini
AIMOOC 4.3 - Conoscenza e comunicazione fra neuroni - Stefano SartiniAIMOOC 4.3 - Conoscenza e comunicazione fra neuroni - Stefano Sartini
AIMOOC 4.3 - Conoscenza e comunicazione fra neuroni - Stefano Sartini
Alessandro Bogliolo
 
AIMOOC 1.3 - Memoria di lavoro e funzioni esecutive - Manuela Berlingeri
AIMOOC 1.3 - Memoria di lavoro e funzioni esecutive - Manuela BerlingeriAIMOOC 1.3 - Memoria di lavoro e funzioni esecutive - Manuela Berlingeri
AIMOOC 1.3 - Memoria di lavoro e funzioni esecutive - Manuela Berlingeri
Alessandro Bogliolo
 
AIMOOC 5.2 - Adattamento al contesto - Alessandro Bogliolo
AIMOOC 5.2 - Adattamento al contesto - Alessandro BoglioloAIMOOC 5.2 - Adattamento al contesto - Alessandro Bogliolo
AIMOOC 5.2 - Adattamento al contesto - Alessandro Bogliolo
Alessandro Bogliolo
 
AIMOOC 4.2 - Machine Learning - Valerio Freschi
AIMOOC 4.2 - Machine Learning - Valerio FreschiAIMOOC 4.2 - Machine Learning - Valerio Freschi
AIMOOC 4.2 - Machine Learning - Valerio Freschi
Alessandro Bogliolo
 
AIMOOC 2.1 - Alan Turing - Vincenzo Fano
AIMOOC 2.1 - Alan Turing - Vincenzo FanoAIMOOC 2.1 - Alan Turing - Vincenzo Fano
AIMOOC 2.1 - Alan Turing - Vincenzo Fano
Alessandro Bogliolo
 

More from Alessandro Bogliolo (20)

BIBMOOC 04.02 - Marketing culturale - Anna Busa
BIBMOOC 04.02 - Marketing culturale - Anna BusaBIBMOOC 04.02 - Marketing culturale - Anna Busa
BIBMOOC 04.02 - Marketing culturale - Anna Busa
 
BIBMOOC 3.2 - Coding unplugged fai-da-te
BIBMOOC 3.2 - Coding unplugged fai-da-teBIBMOOC 3.2 - Coding unplugged fai-da-te
BIBMOOC 3.2 - Coding unplugged fai-da-te
 
BIBMOOC 03.01 - Programmazione visuale a blocchi
BIBMOOC 03.01 - Programmazione visuale a blocchiBIBMOOC 03.01 - Programmazione visuale a blocchi
BIBMOOC 03.01 - Programmazione visuale a blocchi
 
BIBMOOC 02.01 - Esecutore ideale e istruzioni elementari
BIBMOOC 02.01 - Esecutore ideale e istruzioni elementariBIBMOOC 02.01 - Esecutore ideale e istruzioni elementari
BIBMOOC 02.01 - Esecutore ideale e istruzioni elementari
 
BIBMOOC 02.02 - Sequenze di istruzioni ripetizione e condizioni
BIBMOOC 02.02 - Sequenze di istruzioni ripetizione e condizioniBIBMOOC 02.02 - Sequenze di istruzioni ripetizione e condizioni
BIBMOOC 02.02 - Sequenze di istruzioni ripetizione e condizioni
 
BIBMOOC 01.03 - Le biblioteche e la loro funzione sociale - Chiara Faggiolani
BIBMOOC 01.03 - Le biblioteche e la loro funzione sociale - Chiara FaggiolaniBIBMOOC 01.03 - Le biblioteche e la loro funzione sociale - Chiara Faggiolani
BIBMOOC 01.03 - Le biblioteche e la loro funzione sociale - Chiara Faggiolani
 
BIBMOOC 1.2 - Coding e pensiero computazionale
BIBMOOC 1.2 - Coding e pensiero computazionaleBIBMOOC 1.2 - Coding e pensiero computazionale
BIBMOOC 1.2 - Coding e pensiero computazionale
 
BIBMOOC 1.1 - Informazione e rappresentazioni digitali
BIBMOOC 1.1 - Informazione e rappresentazioni digitaliBIBMOOC 1.1 - Informazione e rappresentazioni digitali
BIBMOOC 1.1 - Informazione e rappresentazioni digitali
 
CodyTrip a BTO2021
CodyTrip a BTO2021CodyTrip a BTO2021
CodyTrip a BTO2021
 
AIMOOC 7.3 - Per una IA etica - Claudia Chiavarino
AIMOOC 7.3 - Per una IA etica - Claudia ChiavarinoAIMOOC 7.3 - Per una IA etica - Claudia Chiavarino
AIMOOC 7.3 - Per una IA etica - Claudia Chiavarino
 
AIMOOC 7.2 - La strategia europea per l'I.A. - Lucilla Sioli
AIMOOC 7.2 - La strategia europea per l'I.A. - Lucilla SioliAIMOOC 7.2 - La strategia europea per l'I.A. - Lucilla Sioli
AIMOOC 7.2 - La strategia europea per l'I.A. - Lucilla Sioli
 
AIMOOC 5.5 - Programmazione o addestramento? - Alessandro Bogliolo
AIMOOC 5.5 - Programmazione o addestramento? - Alessandro BoglioloAIMOOC 5.5 - Programmazione o addestramento? - Alessandro Bogliolo
AIMOOC 5.5 - Programmazione o addestramento? - Alessandro Bogliolo
 
AIMOOC 1.5 - La coscienza - Mario Rosanova
AIMOOC 1.5 - La coscienza - Mario RosanovaAIMOOC 1.5 - La coscienza - Mario Rosanova
AIMOOC 1.5 - La coscienza - Mario Rosanova
 
AIMOOC 5.4 - L'intelligenza della forza bruta - Alessandro Bogliolo
AIMOOC 5.4 - L'intelligenza della forza bruta - Alessandro BoglioloAIMOOC 5.4 - L'intelligenza della forza bruta - Alessandro Bogliolo
AIMOOC 5.4 - L'intelligenza della forza bruta - Alessandro Bogliolo
 
AIMOOC 5.3 - Il libero arbitrio dell'esecutore ideale - Alessandro Bogliolo
AIMOOC 5.3 - Il libero arbitrio dell'esecutore ideale - Alessandro BoglioloAIMOOC 5.3 - Il libero arbitrio dell'esecutore ideale - Alessandro Bogliolo
AIMOOC 5.3 - Il libero arbitrio dell'esecutore ideale - Alessandro Bogliolo
 
AIMOOC 4.3 - Conoscenza e comunicazione fra neuroni - Stefano Sartini
AIMOOC 4.3 - Conoscenza e comunicazione fra neuroni - Stefano SartiniAIMOOC 4.3 - Conoscenza e comunicazione fra neuroni - Stefano Sartini
AIMOOC 4.3 - Conoscenza e comunicazione fra neuroni - Stefano Sartini
 
AIMOOC 1.3 - Memoria di lavoro e funzioni esecutive - Manuela Berlingeri
AIMOOC 1.3 - Memoria di lavoro e funzioni esecutive - Manuela BerlingeriAIMOOC 1.3 - Memoria di lavoro e funzioni esecutive - Manuela Berlingeri
AIMOOC 1.3 - Memoria di lavoro e funzioni esecutive - Manuela Berlingeri
 
AIMOOC 5.2 - Adattamento al contesto - Alessandro Bogliolo
AIMOOC 5.2 - Adattamento al contesto - Alessandro BoglioloAIMOOC 5.2 - Adattamento al contesto - Alessandro Bogliolo
AIMOOC 5.2 - Adattamento al contesto - Alessandro Bogliolo
 
AIMOOC 4.2 - Machine Learning - Valerio Freschi
AIMOOC 4.2 - Machine Learning - Valerio FreschiAIMOOC 4.2 - Machine Learning - Valerio Freschi
AIMOOC 4.2 - Machine Learning - Valerio Freschi
 
AIMOOC 2.1 - Alan Turing - Vincenzo Fano
AIMOOC 2.1 - Alan Turing - Vincenzo FanoAIMOOC 2.1 - Alan Turing - Vincenzo Fano
AIMOOC 2.1 - Alan Turing - Vincenzo Fano
 

AlgoMOOC 05.03. Dignità di algoritmo