• HOME
  • Scuola e cultura
    • Chi siamo
    • Video
    • Pubblicità
    • Contatti
  • Le materie
  • Migliora la tua intelligenza
  • Test e quiz
  • albanesi.it

Problema di Albanesi

Anni fa fui invitato a cena da un professore di matematica; a un certo punto la discussione si spostò sugli scacchi, dopo che mi ero lasciato sfuggire la tesi che nel giro di una ventina d’anni al massimo (era il 1990) un computer avrebbe battuto facilmente il campione del mondo (cosa che è poi successa realmente nel 1997). Toccato nel suo orgoglio di uomo, il professore era nettamente contrario, sostenendo che un ammasso di ferraglia mai avrebbe oscurato la genialità e la creatività di un campione di scacchi. Gli feci presente che comunque dietro c’erano sempre degli umani, cui in teoria bastava progettare un computer superveloce che analizzasse in modo rozzo, ma efficace tutte le mosse ragionevoli a livello di un semplice giocatore di livello nazionale. Per confutare la mia tesi il professore spostò la discussione sul fatto che una semplice potenza di calcolo non era in grado di sostituirsi all’intelligenza. Un computer non sarebbe mai stato in grado di comprendere i più difficili problemi matematici. Ancora una volta non seppi star zitto e gli spiegai che, grazie a un computer, un individuo mediamente dotato era in grado di trovare la soluzione di problemi che non possono certo essere risolti con eguale facilità da un mediocre conoscitore della matematica. Per esempio, l’estrazione della radice quadrata di 754.345 è banale per un programmatore che abbia a disposizione uno strumento informatico (basta una calcolatrice), mentre con carta e penna è durissima. Il professore ribatté che i miei esempi erano solo confinati al brutale calcolo. Eravamo al secondo piatto.

Poiché nel salotto era in bella vista l’ultimo modello di personal computer, dopo il caffè posi al professore una piccola sfida. Gli pregai di risolvere questo problema, mentre io con l’ausilio del computer avrei fatto altrettanto.

Due giocatori di basket si sfidano a una gara di tiri liberi. Il giocatore X ha una percentuale di tiro del 50%, il giocatore Y del 40%; i due contendenti tirano alternativamente. Vince chi riesce, a parità di tiri, ad andare in vantaggio sull’altro di 3 canestri. Che probabilità di vincere ha il giocatore X?

Accesi il computer e in una decina di minuti scrissi il programmino che risolveva il problema (la probabilità di vittoria di X è del 77%), mentre il professore stava ancora scavando nella sue nozioni di calcolo delle probabilità. La morale della favola è che innamorarsi della propria materia e farne una soluzione a ogni aspetto razionale dell’esistenza è molto riduttivo e semplicistico. La razionalità si sviluppa con mezzi diversi e complementari che consentono sempre la risposta più efficiente.

Il programma – Implementa il seguente ragionamento in Javascript. Ci sono due vettori a 5 elementi, quello della situazione attuale (ipres) e quello della situazione dopo il prossimo tiro (ipros). Relativamente al giocatore X ogni elemento contiene la probabilità di uno dei 5 possibili stati: vantaggio di +2, vantaggio di +1, parità, svantaggio (segno negativo) di 1, svantaggio di 2.

Ovviamente dopo il primo tiro il primo e il quinto elemento del vettore ipres sono nulli.

a1 rappresenta la probabilità che X aumenti di 1 il suo vantaggio (cioè che X abbia fatto canestro e Y abbia sbagliato); a2 rappresenta il fatto che lo scarto resti uguale (entrambi hanno sbagliato o entrambi hanno fatto canestro); a3 rappresenta la probabilità che il vantaggio di X diminuisca di 1 (cioè che abbia sbagliato mentre Y ha fatto canestro).

a1, a2, e a3 permettono di passare dallo stato presente a quello successivo. In questo passaggio si deve verificare che X o Y non vincano perché il loro scarto è diventato 3 (vittxparz e vittyparz). Sommando le probabilità parziali di vittoria (relative all’n-esimo tiro) si ottiene la probabilità di vittoria fino all’n-esimo tiro. Quando la somma delle due probabilità di vittoria è superiore a 0.999 il programma termina, considerando le probabilità definitive.

Si può ampliare il risultato del programma chiedendo le percentuali di tiro dei due giocatori (anziché fissarle a 0.5 e 0.4), verificando come varia la probabilità di vittoria. Si scopre che con una percentuale di tiro doppia (50 contro 25) la probabilità di vittoria del primo giocatore è del 96,3%!

  • // la prima riga della matrice ipres contiene la situazione attuale:
  • // le varie probabilità degli scarti fra i due giocatori
  • //gli scarti possibili vanno da ik-1 a -(ik-1) e riempiono gli elementi di ipres dall’indice 1 a ic.
  • // l’indice 0 della matrice non è usato
  • // inizializzazione
  • // lo scarto vincente è 3, la percentuale di tiro di X, ix, è il 50%, quella di Y, iy, è il 40%
  • //ic sono gli elementi dello stato della partita, gli elementi della matrice degli scarti.
  • var vittxparz
  • var vittyparz
  • var a1
  • var a2
  • var a3
  • var pxtot
  • var pytot
  • var pfine
  • var ik=3
  • var x=0.5
  • var y=0.4var ic=2*(ik-1)+1
  • var ipres = new Array()
  • var ipros = new Array()
  • // il limite massimo del programma è uno scarto di 50 tiri
  • // dopo un tiro la probabilità che lo scarto sia +1 è a1, che sia 0 è a2, che sia -1 (vantaggio Y) è a3
  • a1=x*(1-y)
  • a2=(1-x)*(1-y)+x*ya3=y*(1-x)
  • for (icont=0;icont<ic+1;icont++) {
  • ipres[icont]=0
  • }
  • // inizializzazione
  • ipres[ik-1]=a1
  • ipres[ik]=a2
  • ipres[ik+1]=a3
  • // si calcola la probabilità per il tiro successivo
  • // matrice ipros
  • pxtot=0
  • pytot=0
  • pfine=0
  • while (pfine<0.999)
  • {
  • ipros[1]=ipres[1]*a2+ipres[2]*a1
  • ipros[2]=ipres[2]*a2+ipres[1]*a3+ipres[3]*a1
  • ipros[3]=ipres[3]*a2+ipres[2]*a3+ipres[4]*a1
  • ipros[4]=ipres[4]*a2+ipres[3]*a3+ipres[5]*a1
  • ipros[5]=ipres[5]*a2+ipres[4]*a3
  • vittxparz=a1*ipres[1]
  • vittyparz=a3*ipres[ic]
  • pxtot=pxtot+vittxparz
  • pytot=pytot+vittyparz
  • pfine=pxtot+pytot
  • // scambio: la partita non è finita e ipros diventa ipres
  • for (icont=1; icont<ic+1;icont++)
  • {
  • ipres[icont]=ipros[icont]
  • }
  • }
  • document.write(“Le due probabilità di vittoria sono: “+pxtot+” “+pytot)
Condividi:
  • Share via Facebook
  • Share via Twitter
  • Share via Email


L'IDEA REGALO

manuale di cultura generale Il Manuale di cultura generale è una grande opportunità per chi studia, prepara un concorso, seleziona il personale o, semplicemente, un'idea per un regalo a uno studente o a una persona di cultura. Da poche ore a pochi giorni per costruirsi un’eccellente cultura generale nella materia preferita fra le 43 trattate.


NOVITÀ 2022

La dieta italiana

Oggi la dieta italiana è uno dei modelli alimentari più innovativi e più facili da seguire. In sintesi, è la versione scientifica della dieta mediterranea, cioè non solo consigli qualitativi, ma anche quantitativi. La dieta italiana potrà servire quindi a chi vuole mangiare sano ed evitare il sovrappeso, allo sportivo che cerca un modello alimentare compatibile con la prestazione, a chi pensa giustamente che una sana alimentazione possa rallentare l'inevitabile invecchiamento. L'approccio scientifico della dieta italiana è accessibile a tutti, non richiede particolari competenze e, anzi, può essere uno strumento molto facile per capire veramente i principi della dieta mediterranea. dieta italiana

Thea – San Martino Siccomario (PV) © 2000 - 2023 | P.IVA 01527800187 | Tutti i diritti riservati