Quanto vale la somma dei numeri da 1 a 100?
Soluzione 1
Svolgi 100 noiosissime addizioni…
i | Somma |
0 | |
1 | 0+1=1 |
2 | 1+2=3 |
3 | 3+3=6 |
… | … |
98 | 4753+98=4851 |
99 | 4851+99=4950 |
100 | 4950+100=5050 |
Soluzione 2
Traduci l’algoritmo precedente in un programma
Program Gauss; Var i , somma: Integer; Begin somma:=0; For i:=1 To 100 Do somma:=somma+i; Writeln(somma); ReadLn; End.
Soluzione 3
Da Wikipedia: Carl Friedrich Gauss
Gauss era un bambino prodigio.
Esistono diversi aneddoti riguardo alla sua precocità; per esempio, Gauss, almeno secondo la leggenda, all’età di tre anni avrebbe corretto un errore del padre nel calcolo delle sue finanze.Un altro aneddoto, forse più verosimile, racconta che a nove anni di età, quando andava a scuola, il suo insegnante, J.G. Büttner, per mettere a tacere i turbolenti allievi, ordinò loro di fare la somma di tutti i numeri da 1 a 100.
Poco dopo, il giovanissimo Carl diede per primo la risposta esatta, sorprendendo l’insegnante ed il suo assistente Martin Bartels.
Non si è certi di quale metodo abbia adottato Gauss per risolvere il problema; presumibilmente, egli si era accorto che, mettendo in una riga tutti i numeri da 1 a 100 e nella riga sottostante i numeri da 100 a 1, ogni colonna dava come somma 101: Carl fece dunque il prodotto 100×101 e divise per 2, ottenendo facilmente il risultato.
Quindi
- 1+100 = 101
- 2+99 = 101
- …
- 100+1 = 101
e infine
Si può dimostrare effettivamente che la progressione aritmetica di ragione 1 ha come somma
Program Gauss; Var n: Integer; Begin Write('Scegli n = '); ReadLn(n); Writeln(n*(n+1)/2); ReadLn; End.