Analisi Combinatoria
con la TI-92
di Roberto Ricci, Liceo Scientifico "A.Righi", Bologna
Consideriamo ora il problema:
Quanti sono i risultati di 5 estrazioni ordinate, un oggetto alla volta, da un'urna che ne contiene 10 - tutti diversi tra loro- quando gli oggetti vengano reinseriti nell'urna dopo la loro estrazione ?
Supponendo che gli oggetti siano contrassegnati ad esempio con lettere
{a,b,c,d,e,f,g,h,i,j}® urna
per un totale di elementi pari a
dim(urna) 10
è possibile simulare ogni risultato delle 5 estrazioni senza reinserimento con
seq(urna[rand(10)],i,1,5) {e,f,c,e,h}
Applicando ancora il primo criterio per contare si può capire che la risposta è 105.
In questi casi si parla di disposizioni con ripetizione di n elementi k alla volta, il cui numero è nk.
Altri esempi:
Un caso particolare interessante è quello in cui Sn={0,1}; in questo caso, interpretando il simbolo 1 come ‘ scelta dell’elemento che gli corrisponde ’ e il simbolo 0 come ‘non scelta …’, le funzioni f : Sk ® {0,1} sono in evidente corrispondenze biunivoca con i sottoinsiemi di Sk. Il loro numero è dunque 2k.
Per costruire in ordine lessicografico le disposizioni con ripetizioni di n elementi presi k alla volta si può ricorrere alla numerazione in base n.
Una utile function con argomenti i simboli che rappresentano gli elementi dell’urna, il numero k di disposizioni e il numerro di disposizione richiesto nell’ordinamento lessicografico, può fornire risultati come i seguenti:
dispRip({a,b,c,d,e},3,4) {a,a,d} dispRip({a,b,c,d,e},3,124) {e,e,d}
Il codice della function potrà essere il seguente:
dispRip(lst.k,nOrd) Func Local nn, num Dim(lst)® nn If n< nn^k Then InBase(lst,nOrd-1)® num< Return augment(seq(lst[1],i,1,dim(num)),num) EndIf EndFunc
Si appoggia a una function per trasformare un numero in base dieci in una qualunque altra base di cui siano date le cifre
InBase(cifre,n) Func Local bb, num Dim(cifre)® bb {}® num While floor(nn/bb)>0 augment({cifre[mod(nn,bb)+1]}, num)® num floor(nn/bb)® nn EndWhile augment({cifre[mod(nn,bb)+1]}, num)® num Return num EndFunc
Si possono costruire le disposizioni con ripetizione anche algebricamente, ad esempio i termini di
Expand((a1+b1+d1)(a2+b2+d2)(a3+b3+d3)(a4+b4+d4))
producono i risultati di 4 estrazioni dall’urna contenente a, b, d se si interpreta ad es il termine a1a2b3a4 come il risultato in cui è uscito a nella 1a, 2a e 4a estrazione e b nella 3a. Invece
Expand((a+b+d)(a+b+d)(a+b+d)(a+b+d))
Non fa differenza nell’ordine delle estrazioni ma fornisce ugualmente qualche informazione; ad esempio il termine 4a3b mi dice sono quattro le estrazioni in cui è uscito 3 volte a e una volta b.
Per contarle è sufficiente porre a=b=d=1 ottenendo 34.
Si consideri ora il problema:
Quanti sono i risultati di 5 estrazioni ordinate, un oggetto alla volta, senza reinserimenti, da un’urna che ne contiene 10 tra i quali 6 sono di uno stesso tipo, indistinguibili tra loro, e così pure i rimanenti.
Una simulazione si può realizzare esattamente come per le disposizioni semplici, senza ripetizioni, da un’urna rappresentata da una lista {a,a,a,a,a,a,b,b,b,b}.
Contare tutte le possibilità in questo caso non è difficile pensando alle disposizioni con ripetizioni di due oggetti a e b presi 5 alla volta e che solo la disposizione bbbbb è impossibile. Ma questa riflessione non si appoggia a un metodo e ci si può facilmente convincere che nella sua forma più generale il problema di contare il numero delle possibili estrazioni di k oggetti in un'urna di n oggetti raggruppabili in n1, n2,…,nh gruppi ciascuno formato da oggetti identici, con n1+n2+…nh=n, non è di facile soluzione.
Se invece il numero delle estrazioni esaurisce tutti gli oggetti ci si può servire di una
II regola per contare
Se gli elementi da contare si possono ottenere in seguito a scelte il cui ordine non conta, effettuare il conteggio come se l’ordine contasse e dividere poi per il numero degli elementi ordinati che danno luogo a un elemento non ordinato.
In tal modo si può contare che sono i diversi modi di estrarre uno a uno, tenendo conto dell’ordine, tutti gli oggetti di un’urna che ne contiene 6 indistinguibili tra loro e i rimanenti anch’essi indistinguibili tra loro.
In generale le permutazioni di n oggetti in cui il primo è ripetuto k1 volte, il secondo k2 volte, …l’ultimo kn volte è
Si tratta anche del problema di contare il numero di partizioni ordinate di un insieme, cioè del numero di modi in cui un insieme
di n elementi può essere suddiviso in k sottinsiemi in modo che il primo ne contenga n1, il secondo n2, l’ultimo nk.
La risposta è
Si tratta anche del problema di contare il numero di anagrammi, con significato o meno, di una parola. Ad esempio volendo fare un anagramma della parola ‘pippo’ occorre tener presente che ciascun elemento come ‘pippo’ stesso, può essere ottenuto permutando tra loro le tre lettere ‘p’; dunque i 5! Elementi che si contano considerando l’ordine, debbono essere divisi per 3!.
Altri esempi: