Centro Morin   CENTRO RICERCHE DIDATTICHE
  Ugo Morin
 
  C.F. 92008620269   -  P.IVA 04895950261
Pieve del Grappa (TV)  
Via S. Giacomo, 4  
tel. 371 377 8032   
crdm@filippin.it  
Centro Morin
Informazioni Rivista Biblioteca Bollettino bibliografico Seminari Corsi | => Gestione Biblioteca Mail
  Articoli     
«
 
Log in
Login
Password
Memorizza i tuoi dati:
Visitatori
Visitatori Correnti : 25
Membri : 0

Per visualizzare la lista degli utenti collegati alla community, devi essere un utente registrato.
Iscriviti
Eventi
<
Agosto
>
L M M G V S D
-- -- -- -- 01 02 03
04 05 06 07 08 09 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
-- -- -- -- -- -- --

Questa settimana
Top - Siti web
Iscritti
 Utenti: 362
Ultimo iscritto : Lorenza
Lista iscritti
Versioni
 
piccola avventura combinatoria
Inserito il 23 agosto 2013 alle 17:41:38 da polarprof.

completamento del puzzle

Riassunto del problema: fissato un valore r per le ripetizioni e un valore n per la lunghezza, voglio calcolare il numero di sequenze di lanci che terminano dopo n lanci perché una faccia si è ripetuta r volte.

Supponiamo che nell'ultimo lancio (il numero n) sia uscita la faccia "1"; allora negli n-1 lanci precedenti devono essere uscite altre r-1 facce "1". Questo può verificarsi in molti modi, tanti quanti r-1 facce "1" possono disporsi sulle n-1 caselle disponibili, quindi le combinazioni di n-1 oggetti di classe r-1. Per ognuna delle disposizioni degli "1" rimangono n-r caselle in cui distribuire le restanti 5 facce in modo che possano ripetersi al massimo r-1 volte: questo è quello che abbiamo imparato a calcolare nella pagina precedente con la funzione generatrice esponenziale: a scopo di notazione introduco una funzione F(t,u,v) che calcola il numero di sequenze lunghe t, formate da lettere prese da un insieme di u lettere in modo che ognuna possa ripetersi al massimo v volte.  Con queste notazioni e tenendo conto che quanto detto per la faccia "1" può ripetersi anche per le altre, la soluzione del problema di inizio pagina diventa: \( 6\cdot \binom{n-1}{r-1}\cdot F(n-r,5,r-1) \)

Il calcolo della funzione F(t,u,v) si effettua così: si calcola questa potenza \( (1+x+\frac{x^2}{2!}+...+\frac{x^v}{v!})^u \) , si moltiplica ogni termine del risultato per il fattoriale dell'esponente della x e poi si prende il coefficiente del termine di grado t .
Naturalmente si vorrebbe che i calcoli li facesse un CAS. Iniziai con Derive, ma mi fermai perché non so come estrarre i coefficienti del polinomio (se qualcuno lo sa per favore lo scriva in un commento qui sotto). Passai a Maple, l'altro CAS disponibile, che non conoscevo bene; però ha un help ricco e con un po' di pazienza sono riuscito a mettere insieme un'espressione funzionante in questo modo:
per generare il primo polinomio ho pensato che si tratta del primo pezzo dello sviluppo in serie di ex e per questo nel package Student[NumericalAnalysis] c'è la funzione TaylorPolynomial che ho scritto così TaylorPolynomial(ex,x,order=v) che dice di generare il polinomio di Taylor dell'esponenziale fino all'esponente v ; la cosa importante è che il risultato è riconosciuto come polinomio. Poi ho elevato il risultato a u ottenendo un altro polinomio. Ora bisogna creare una lista dei coefficienti del polinomio e si fa con la funzione CoefficientList del package PolynomialTools. Poi bisognerebbe moltiplicare ogni coefficiente per il fattoriale dell'esponente di x, cosa non semplice, però un esempio visto per caso mi ha aiutato: la funzione listtolist del package gfun dedicato alle funzioni generatrici ha un parametro che impostato a 'Laplace' moltiplica ogni elemento per il fattoriale di cui si è detto [cosa c'entri Laplace e perché funzioni così non riesco a immaginarlo, ma funziona] e quindi con questo ho modificato la lista precedente; Infine con la funzione op ho estratto il termine di posto t+1 dalla lista, corrispondente al coefficiente del termine di grado t. Mettendo tutto assieme ne risulta questa formula: \[ with(Student[NumericalAnalysis]):with(PolynomialTools):with(gfun):\] \[ F:=(t,u,v)\rightarrow op(t+1,listtolist(CoefficientList((TaylorPolynomial(e^x,x,order=v))^u,x),'Laplace')) \]

A questo punto ho potuto provare a vedere se riottenevo i risultati riportati in Cabrinews, dove però è riportata la probabilità che una sequenza si fermi dopo n lanci avendo ottenuto r ripetizioni di una faccia: per ottenerla basta dividere il numero di sequenze che si fermano dopo n lanci per il numero totale di sequenze lunghe n, che è 6n . Quindi ho costruito la funzione P(n,r) che dà questa probabilità \[ P:=(n,r)\rightarrow\frac{6\cdot binomial(n-1,r-1)\cdot F(n-r,5,r-1)}{6^n} \]

Esempio: vogliamo fermarci dopo 3 ripetizioni e calcoliamo la probabilità che succeda al settimo lancio: n=7 r=3 viene \( P(7,3)=\frac{25}{144} \) che corrisponde a quanto calcolato da Giorgio Goldoni, e ancora \( P(11,3)=\frac{4375}{93312} \) che corrisponde. Passando a 4 ripetizioni, riportate in un altro messaggio, viene \( P(11,4)=\frac{27125}{209952} \) che corrisponde ancora.

Ora è facile trovare la media dei lanci, come richiesto dal problema di partenza: la funzione M(r) calcola il numero medio di lanci necessari per ottenere una ripetizione di r volte \[ M:=r\rightarrow \sum_{i=r}^{6r-5} P(i,r)\cdot i \] Il limite superiore 6r-5 è dato da 6(r-1)+1 perché con questo numero di lanci è sicuro che si ottiene una ripetizione e quindi la sequenza più lunga ha questa dimensione.

Riporto alcuni valori forniti da Maple istantaneamente:

\( M(2)=\frac{1223}{324}  M(3)=\frac{4084571}{559872}  M(4)=\frac{247150321423}{22039921152}  M(5)=\frac{56252877655712005}{3656158440062976}  M(6)=\frac{2597868106693535971}{131621703842267136}  M(7)=\frac{1004137746946400066467061}{41451359947637504606208} \)

Se qualcuno sa scrivere le formule per altri CAS farebbe piacere se le aggiungesse in un commento a questa pagina.

Nel corso di questa avventura ho imparato parecchie cose che non conoscevo e spero che qualcuna possa essere utile anche a chi ha avuto la pazienza di leggere fin qui.

 

 

 

 


 
<< aggiustiamo il tiro e nuova sorpresa  
Commenti
2 Commenti - 5/5 - Voti : 1
Inserito il 25 agosto 2013 alle 17:26:07 da rossetto.  5/5
 
La soluzione di Gianni da la risposta generale alla soluzione del problema posto da Michele in Cabrinews. Nei giorni scorsi ho mandato a Michele una soluzione 'manuale' per il caso di 6 facce e 3 ripetizioni (e per il caso di 4 facce), la metto al link https://skydrive.live.com/redir?resid=B1526A538EF4057A!1139&authkey=!AGZNu1CTgT6jw94 Grazie a Gianni per la formula generale: resta da vedere se c'è un modo 'elementare' per calcolare la sua funzione F ...
Inserito il 29 agosto 2013 alle 17:44:04 da polarprof.  0/5
 

Girando un po' nella guida di DERIVE ho trovato quello che mi mancava e devo dire che sono sempre sorpreso della intelligenza di questo software prematuramente abbandonato. La funzione F(t,u,v) ha un'espressione semplicissima:

F(t, u, v) ≔ POLY_COEFF(SUM(x^k/k!, k, 0, v)^u, x, t)·t!

 
 © C.R.D.M. 
Contattami
Realizzato con ASP-Nuke 2.0.7
Questa pagina è stata eseguita in 0,046875secondi.
Versione stampabile Versione stampabile