6 x 9 = 42

“Ho sempre detto che c’era qualcosa di fondamentalmente sbagliato nell’universo…” (Arthur Dent)

L’Utilità del Caso

Posted by scardax su settembre 3, 2008

Nel mondo dell’informatica esiste un affascinante paradosso, ma per percepirlo dobbiamo prima fare una rapida osservazione iniziale: i computer sono stati progettati in modo da essere macchinari completamente deterministici, che é una parola tecnica che possiamo tranquillamente intendere come “perfettamente prevedibili“. Questo é un punto talmente ovvio che sembra stupido anche solo farlo notare: del resto devono fare conti, e cosa c’é di più prevedibile dell’Aritmetica? Se faccio eseguire ad un processore l’operazione di somma, e gli passo due sequenze di 1 e 0 che rappresentano, mettiamo, 3 e 2, mi aspetto di ottenere in uscita la sequenza corrispondente a 5, nient’altro, nessuna sorpresa.

Eppure, ecco la stranezza: uno dei compiti che si richiede maggiormente ad un computer, oggigiorno, é… la generazione di numeri casuali! Come questo possa avvenire, pur essendo estremamente interessante, non é l’argomento di questo post, quanto piuttosto: a cosa puo’ servire un numero, o meglio ancora, una sequenza casuale? Sicuramente la maggior parte della risposta si trova nel mondo dei videogiochi: se non avessimo la possibilità di ottenere numeri random, i giochi di oggi assomiglierebbero a quei primi Super Mario in cui, ricominciando cinquanta volte lo stesso livello, si rincontravano gli stessi nemici, negli stessi posti, sulle stesse piattaforme. Chiaramente, divertente solo fino ad un certo punto. A parte l’universo videoludico, pero’, abbiamo altri campi di applicazione per numeri casuali: esiste tutta una classe di metodi (raggruppati sotto il nome generale di Montecarlo) che, basandosi sulla generazione di sequenza randomiche, risolvono una notevole gamma di problemi estremamente variegati.

Ad esempio, supponiamo di voler calcolare il valore di pigreco con una decente approssimazione, ma di non potere (per qualche ragione) applicare una delle tante formule per i suoi decimali, come quella di Leibniz:

Ecco in che maniera possiamo procedere. Pensiamo ad un quarto di circonferenza iscritto in un quadrato di raggio unitario, che appendiamo ad un muro e usiamo come bersaglio per un lancio di freccette. La domanda chiave é: di tutte le freccette che colpiranno il quadrato, quante di queste andranno a finire (in media) all’interno della circonferenza stessa? Si puo’ intuire che questo é strettamente legato al rapporto fra le due aree:

# Freccette all’interno della circonferenza / # Freccette all’interno del quadrato = Area circonferenza / Area quadrato

L’area del quadrato é data da r² = 1, mentre l’area del quarto di cerchio é 1/4 * π * r² = 1/4 * π. Sostituendo nella formula di prima, otteniamo che… il rapporto fra le freccette é proprio uguale ad un quarto di pigreco, ovvero al valore che stiamo cercando!

Naturalmente questo é solo un esempio per far intuire come qualcosa di casuale (il punto in cui ogni freccetta andrà a colpire, in questo caso) possa servire per calcolare un valore preciso: é ovvio che per funzionare bisognerebbe fare un numero altissimo di lanci, possibile in pratica solo con una simulazione al computer, che se la caverebbe decisamente più in fretta a fare il calcolo con la formuletta vista prima. Nonostante cio’, algoritmi di Montecarlo (anche molto simili a questo) sono realmente usati nella pratica.

Se l’argomento vi interessa, scrivetelo nei commenti e nei prossimi posts ne spieghero’ alcuni decisamente più utili (e forse interessanti)!

Annunci

4 Risposte to “L’Utilità del Caso”

  1. Caterina said

    A me l’argomento interessa!
    Il random degli mp3 mi ha sempre incuriosita. Avevo chiesto come funzionava e mi era stato detto ”credo con algoritmi, però è complicato”. Poi per pigrizia mentale avevo abbandonato la questione vista la mia inesistente conoscenza riguardo gli algoritmi -.-
    Sarei molto felice se potessi aiutarmi.

    Grazie

  2. scardax said

    Ti aiuterei volentieri, ma non capisco cosa intendi con “random degli mp3“. L’mp3 é un formato di codifica audio che permette di ridurre la taglia di un file audio eliminando parti non strettamente necessarie (ed usando altri accorgimenti), quindi non ha nulla di casuale.

    Se ti interessa, posso rispolverare le mie conoscenze audio e cercare di scrivere un post sull’algoritmo usato dall’mp3, é abbastanza interessante.

  3. Caterina said

    Perdona l’imperfezione xD. Non intendevo il formato, ma un lettore mp3. Cioè mi interesserebbe sapere qualcosa sull’opzione “riproduzione casuale” che si trova nei lettori mp3.

  4. scardax said

    Bé, i lettori mp3, cosi’ come qualunque programma per computer che abbia bisogno di valori casuali (prendi ad esempio un videogioco) utilizza delle funzioni che generano sequenze di numeri ‘pseudocasuali’, ovvero che sembrano casuali viste dall’esterno ma in pratica dipendendono solo dal valore di partenza della serie. Ne ho parlato un po’ qua:

    https://seipernove42.wordpress.com/2008/09/14/giocando-a-dadi/

    La principale caratteristica di un algoritmo che produce numeri pseudorandom é l’uniformità, ovvero probabilità simile di generare un qualunque numero nell’insieme di possibilità.

    Poi ovviamente sono complicati secondo le esigenze, ad esempio ho letto qua (http://keyj.s2000.ws/?p=66) che la Apple ordina anche i risultati della playlist casuale in modo che brani con una votazione maggiore appaiano, in generale, prima di brani con una votazione minore.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

 
%d blogger hanno fatto clic su Mi Piace per questo: