Esercizio: Due matematici, tre fisici e cinque ingegneri sono seduti in prima fila ad una conferenza. Dire in quanti modi si possono disporre se quelli dello stesso corso si considerano indistinguibili?
Soluzione proposta: Si tratta delle permutazioni con ripetizioni di 10 elementi, di cui 2, 3 e 5 rispettivamente uguali fra loro; si divide quindi per le permutazioni interne ai tre gruppi: (9!)/(2!3!5!)= 252
Soluzione mia: il problema è analogo al numero di anagrammi di una parola di 10 lettere con 2,3 e 5 lettere uguali, ossia (10!)/(2!3!5!)=2520
in più prima di chiedere qua ho scritto un programma al volo che calcolasse il numero e veniva 2520 (sospetto quindi una svista nella scrittura della dispensa), allego il programma:
Codice: Seleziona tutto
def r(fila,studenti,comb,i):
if i==len(studenti):
comb[''.join(fila)] = 1
return 0
for j in range(len(studenti)):
if studenti[j]=='0':
continue
fila[i] = studenti[j]
studenti[j] = '0'
r(fila,studenti,comb,i+1)
studenti[j] = fila[i]
fila = ['0' for i in range(10)]
studenti = ['I','I','I','I','I','M','M','F','F','F']
comb = {}
r(fila,studenti,comb,0)
print(len(comb))