Vai al contenuto

Problemino di Gauss

  • Senza categoria

Quanto vale la somma dei numeri da 1 a 100?


Soluzione 1

Svolgi 100 noiosissime addizioni…

|-----|-------------------|
|  n  |       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

somma=0
For n=1 To 100
   somma=somma+n
EndFor
TextWindow.WriteLine(somma)

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
  • 100*101/2=5050.
TextWindow.Write("n = ")
n=TextWindow.ReadNumber()

somma=n*(n+1)/2

TextWindow.WriteLine(somma)

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.