Danilo Poccia - Tecnologia et al.

martedì mar 07, 2006

Calcolare Pi greco con la funzione Random

Calcolare Pi greco "a caso", utilizzando la funzione Random messa a disposizione dai vari linguaggi di programmazione, è una procedura divertente (fin quasi irriverente), anche se è in effetti un algoritmo poco utile, se non per consumare cicli di clock di una CPU (e di fatti ne faremo uso in seguito per testare le modalità di allocazione delle risorse di Solaris 10).

L'algoritmo è basato su un concetto molto semplice: immaginiamo di avere un quadrato con un cerchio inscritto. Scegliendo n punti a caso nel quadrato e contando i c punti che si trovano dentro il cerchio, il valore di c/n tenderà ad approssimarsi, al crescere di n, al rapporto tra l'area del cerchio e quella del quadrato (Pi/4).

Solitamente l'implementazione dell'algoritmo è (per semplicità) realizzata con un quarto di cerchio inscritto in un quadrato. Anche in questo caso si ha che il rapporto c/n tende a Pi/4, per cui 4c/n tende a Pi.

Ecco un paio di semplici implementazioni (in cui il lato del quadrato, e di conseguenza il raggio del cerchio, è fissato ad 1):

Per motivi di performance entrambi i programmi effettuano la stampa a video dell'approssimazione di Pi raggiunta solo una volta ogni 1.000.000 di tentativi (ma non è difficile cambiare tale valore nei sorgenti). E' facile verificare che su tali volumi si aggiungono, alla lentezza della convergenza dell'algoritmo, i limiti dei generatori di numeri casuali.

Comments:

Post a Comment:
  • HTML Syntax: NOT allowed





    follow me on Twitter

    Calendar

    Feeds

    Search

    Blogroll

    Navigation

    Referrers

    Recent Entries