da HarryGPotter » 16/01/2017, 14:29
Mi scuso se sono stato poco chiaro, e vi ringrazio infinitamente per aver letto e preso in considerazione i miei quesiti scoordinati anche se non ci conosciamo.
Solo per non passare totalmente per matto, spendo qualche rigo in più qui cercando di spiegare meglio la mia esigenza ed il mio quesito. Intanto sto facendo andare un po’ di cicli for e se riesco a produrre, con la forza bruta, qualche primo esempio di quello che vorrei fare, ve lo posto, non fosse altro per provare ad essere ancora più chiaro.
Il tutto nasce da una esigenza di molti anni fa: quella di organizzare una tombolata di beneficenza in oratorio alla quale partecipava un centinaio di persone. Diciamo che nelle serate di maggior successo si arrivava a tenere in gioco 200-250 cartelle contemporaneamente.
Una cosa molto fastidiosa che capitava di frequente erano le vincite concorrenti, ovvero due o più giocatori che facevano ambo, o terno, o quaterna, etc. all’estrazione del medesimo numero. Ogni volta partiva la baraonda per assegnare l’unico premio disponibile ad uno dei diversi contendenti…
So bene che è matematicamente impossibile evitare che tali vincite concorrenti si verifichino. Sono eventi comunque e sempre possibili dal momento che se in gioco ci sono già solo 7 cartelle allora ci son numeri ripetuti su più cartelle. Ma, mi son chiesto, come mettere in gioco delle cartelle, “molto diverse tra loro”, in modo da ridurre il più possibile la probabilità che vi siano vincite concorrenti?
Cartelle “Molto diverse tra loro” significa cartelle con righe che hanno “pochi” numeri in comune.
Ad esempio, se su una riga di una cartella abbiamo i 5 numeri {1, 23, 34, 62, 77}, auspicabilmente vorrei che in nessuna altra cartella in gioco vi fosse una riga, ad esempio, contenente i numeri {1, 29, 34, 62, 77}. Sono entrambe righe valide, non sono uguali (differiscono per il numero in seconda posizione) ma… aumentano la probabilità che i due giocatori “vadano a segno” con gli stessi numeri.
Da questa esigenza dunque son poi partite le domande e le curiosità matematiche e “teoriche” che provavo a condividere con voi…
1) Quante cartelle posso generare e mettere in gioco le cui righe non abbiamo tra di loro più di 1 numero uguale? Quante se invece rilasso il vincolo e consento al massimo 2 numeri uguali? E così via…
2) Esiste un modo (un algoritmo) per generare uno di questi insieme di cartelle con un programma al computer?
Quanto di meglio son riuscito a fare finora consiste nel generare serie di 6 cartelle ciascuna impiegando tutti e 90 i numeri a disposizione in modo casuale e poi confrontare tra loro le cartelle e “scartare” le coppie di cartelle che presentano troppi numeri uguali, rimpiazzandole con nuove cartelle e ricominciando da capo i confronti… un metodo molto “forza bruta” e molto “poco deterministico” per i miei gusti…
Per quanto riguarda il primo punto, ho iniziato a rilassare il vincolo sulle decine che si ha per le righe delle cartelle del gioco della tombola e, per semplificare, ho iniziato a considerare le combinazioni di 90 numeri a 5 a 5. Anche in questo caso ho agito di forza bruta con un po’ di cicli for sul computer ed ho trovato, empiricamente:
- Potrei mettere in gioco 358 righe che hanno al più un numero in comune;
- Potrei mettere in gioco 8.861 righe che hanno al più due numeri in comune.
Ma… mi chiedevo: Esiste una formula, un metodo non empirico per calcolare questi due valori?
Ed esiste un metodo per generare queste disposizioni di 5 numeri che non sia il “generale tutte e scarta quelle che non ti piacciono”?
Continuo nelle mie elucubrazioni da mezzo matto e se raggiungo qualche nuovo risultato lo posto. Su internet non sono riuscito a trovare nulla, né tanto meno problemi analoghi in libri di testo...
Intanto… spero di esser stato un po’ meno confuso e di avervi spiegato il senso dei miei quesiti, che continuo a trovare sensati. Ve lo dovevo, almeno per la pazienza e la gentilezza che mi avete dimostrato.
Cordialmente,
Harry G.