Esercizio 4 combinatoria - dispense olimpioniche

Conteggi, probabilità, invarianti, logica, matematizzazione, ...
Rispondi
Sonoda
Messaggi: 5
Iscritto il: 26 feb 2020, 10:56

Esercizio 4 combinatoria - dispense olimpioniche

Messaggio da Sonoda »

Buongiorno, mi sto approcciando allo studio della matematica olimpionica. Nel fare gli esercizi proposti nella dispensa di matematica olimpionica mi viene un risultato diverso dalla soluzione proposta e non capisco perché:

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))
fph
Site Admin
Messaggi: 3956
Iscritto il: 01 gen 1970, 01:00
Località: in giro
Contatta:

Re: Esercizio 4 combinatoria - dispense olimpioniche

Messaggio da fph »

Anche a me sembra proprio una svista della dispensa (e anche un esercizio un po' forzato, a dirla tutta).
--federico
[tex]\frac1{\sqrt2}\bigl(\left|\text{loves me}\right\rangle+\left|\text{loves me not}\right\rangle\bigr)[/tex]
fph
Site Admin
Messaggi: 3956
Iscritto il: 01 gen 1970, 01:00
Località: in giro
Contatta:

Re: Esercizio 4 combinatoria - dispense olimpioniche

Messaggio da fph »

By the way, forse non efficientissimo, ma fa il suo lavoro e secondo me c'è meno rischio di errori:

Codice: Seleziona tutto

from itertools import permutations
len(set(permutations('I'*5 + 'M'*2 + 'F'*3)))
'I'*5 + 'M'*2 + 'F'*3 genera una stringa (che in Python è un container di caratteri), permutations() lo permuta con tutti i vari duplicati, set() genera un set, cioè elimina i duplicati.
--federico
[tex]\frac1{\sqrt2}\bigl(\left|\text{loves me}\right\rangle+\left|\text{loves me not}\right\rangle\bigr)[/tex]
Sonoda
Messaggi: 5
Iscritto il: 26 feb 2020, 10:56

Re: Esercizio 4 combinatoria - dispense olimpioniche

Messaggio da Sonoda »

fph ha scritto: 26 feb 2020, 11:29 Anche a me sembra proprio una svista della dispensa (e anche un esercizio un po' forzato, a dirla tutta).
Okay, grazie mille :D
JackBoncko
Messaggi: 12
Iscritto il: 16 gen 2019, 20:26

Re: Esercizio 4 combinatoria - dispense olimpioniche

Messaggio da JackBoncko »

Ma no raga è giusto quello delle olimpiadi, se vi interessa ancora ve lo spiego
Rispondi