esperienze e competenze
domenica 29 agosto 2010
nuova applicazione su PieroTofy.it!
Ho creato mathPlotting, un piccolo progetto che permette all'utente di
creare grafici di funzioni definite dall'utente.
Si può scaricare da qui mathPlotting.
Le funzioni vengono definite come
nome(parametro)=espressione
In via di sviluppo l'inserimento di funzioni matematiche e trigonometriche e una nuova interfaccia grafica creata con Tkinter.
Stay tuned!
mercoledì 25 agosto 2010
Membro della PieroTofy Community!
lunedì 16 agosto 2010
esercizio 6 Euler Project Python
The sum of the squares of the first ten natural numbers is,
The square of the sum of the first ten natural numbers is,
Hence the difference between the sum of the squares of the first ten natural numbers and the square of the sum is 3025
385 = 2640.
Find the difference between the sum of the squares of the first one hundred natural numbers and the square of the sum.
---------------------------------------------------------------------------------------------------------
beh, si vede, è molto semplice, sia in Python che in C++
codice Python
-------------------------------------------------------------------------------------
#!/usr/bin/env python
sum_square=lambda n: sum([i**2 for i in xrange(n+1)])
square_sum=lambda n: ((n*(n+1))/2)**2
problem_6=lambda n: square_sum(n)-sum_square(n)
#in alternativa... versione ricorsiva!
sum_square_rec=lambda number, actual=0: return actual==number and number**2 or (actual**2)+sum_square(number, actual+1)
square_sum_rec=lambda number, actual=0: return (actual==number and number) or (actual==0 and square_sum(number, actual+1)**2) or actual+square_sum(number, actual+1)
-------------------------------------------------------------------------------------
Spieghiamo ora il codice.
sum_square: questa semplice funzione fa la somma di tutti gli elementi di una list comprehension, nella quale ogni elemento è il quadrato di un numero che va da 0 a n+1
square_sum: questa semplice funzione ricava la somma di tutti i numeri da 1 a n compreso tramite una semplice formula: (n*n+1)/2. Ci vuole poco poi per farne il quadrato.
sum_square_rec: questa semplice funzione ha come caso base il confronto tra actual e number, se sono uguali viene restituito number elevato alla seconda, altrimenti si richiama la funzione sommando actual alla seconda.
square_sum_rec: questa semplice funzione ha 2 casi base:
- se actual==number: viene restituito number
- se actual==0: viene restituito il risultato della funzione con actual aumentato di 1 elevato alla seconda. questo caso base serve per poter avere un'elevazione a potenza della somma di tutti i numeri.
- caso normale: si somma actual al risultato della funzione con actual aumentato di 1
appare molto semplice, no? ecco la potenza del Python!
stay tuned!
mercoledì 11 agosto 2010
attivare idle python da terminale!
- aprite il terminale
- scrivete
python -c "from idlelib import idle" - divertitevi
