Un terno al LOTTO!

Il forum di Base5, dove è possibile postare problemi, quiz, indovinelli, rompicapo, enigmi e quant'altro riguardi la matematica ricreativa e oltre.

Moderatori: Gianfranco, Bruno

Rispondi
Gartin
Nuovo utente
Nuovo utente
Messaggi: 2
Iscritto il: lun dic 01, 2008 6:45 pm

Un terno al LOTTO!

Messaggio da Gartin »

Ciao a tutti. Sono Marco e mi sono appena iscritto al forum sia per il piacere di frequentare un posto dove si pongono e si risolvono problemi, che per chiedervi un aiuto in merito alla seguente questione: posto che il terno 1-2-3 è il primo e che 88-89-90 è il 117480°, qual è l'n-esimo? E che numero è il terno A-B-C?(intendendo ovviamente che siano ordinati come a < b < c ).
Grazie in anticipo a tutti.
Ultima modifica di Gartin il mar dic 02, 2008 12:09 pm, modificato 2 volte in totale.

panurgo
Livello 9
Livello 9
Messaggi: 1603
Iscritto il: sab nov 19, 2005 3:45 pm
Località: Padova

Re: Un terno al LOTTO!

Messaggio da panurgo »

Dipende da come decidi di ordinarli... :wink:
il panurgo

Principio di Relatività: $\mathbb{m} \not \to \mathbb{M} \, \Longleftrightarrow \, \mathbb{M} \not \to \mathbb{m}$
"Se la montagna non va a Maometto, Maometto NON va alla montagna"

Pasquale
Livello 12
Livello 12
Messaggi: 2854
Iscritto il: mer mag 25, 2005 2:14 am

Re: Un terno al LOTTO!

Messaggio da Pasquale »

Ciao, benvenuto!

Questo problema fu discusso tempo fa, con i contributi di Gegè e Pietro, e ne scaturì da parte di Pietro, mi pare, un programma scritto in Decimal Basic, che ho leggermete adattato alla tua esigenza.
Il programma ti chiederà di inserire il numero di posizione e quindi ti darà la combinazione corrispondente. Si intende che tutti i terni siano elencati in ordine crescente, come in questo esempio:

1 2 3
1 2 4
...
1 2 9
2 3 4
2 3 5
...
2 3 9
3 4 5
3 4 6
....
....
88 89 90

Segue il programma (se non hai Decimal Basic, puoi scaricare qui la versione più recente, scaricandoti il file BASICE728.zip; il comando END deve esserci una sola volta):


n=90
k=3
DIM c(k)
LET j=k
LET combinazioni = comb(n,k)
10 INPUT PROMPT "Inserisci la posizione p: ":p
LET ps=p
PRINT
IF p>combinazioni THEN
PRINT "La posizione non può superare la quantità delle combinazioni totali"
PRINT "Inserisci nuovamente la posizione"
GOTO 10
END IF

FOR r=1 TO k
LET x=0
FOR s=n-1 TO j-1 STEP -1
LET a=x
LET cont=cont+1
LET x=x+comb(s,j-1)
IF p<=x THEN
LET c(r)=cont
LET p=p-a
LET n=s
LET j=j-1
EXIT FOR
END IF
NEXT S
NEXT R

PRINT "Il terno corrispondente è:"
PRINT
FOR m=1 TO k
PRINT STR$(c(m));" ";
NEXT M
END
Ultima modifica di Pasquale il sab dic 06, 2008 5:30 pm, modificato 2 volte in totale.
_________________

$\text { }$ciao Immagine ciao
E' la somma che fa il totale (Totò)

Admin
Amministratore del sito
Amministratore del sito
Messaggi: 877
Iscritto il: mer apr 20, 2005 3:47 pm
Località: Benevento

Re: Un terno al LOTTO!

Messaggio da Admin »

Ciao Gartin,
come dice Pasquale la questione è stata discussa tempo fa in questa lunga e interessante discussione:
https://www.base5forum.it/viewtopic.php?t=433

E' lunga, però vale la pena di leggerla tutta.
Alla fine della stessa (qui), comunque, trovi il programmino che ho fatto in java, per il calcolo della posizione di un terno, e per il calcolo del terno a partire dalla posizione.
Ricordo che c'erano alcuni bug, che poi non ho più corretto, per cui se lo provi e riscontri problemi fammi sapere.

Ciao
Pietro
Pietro Vitelli (Amministratore del Forum)
"Un matematico è una macchina che converte caffè in teoremi" Paul Erdös
www.pvitelli.net

Gartin
Nuovo utente
Nuovo utente
Messaggi: 2
Iscritto il: lun dic 01, 2008 6:45 pm

Re: Un terno al LOTTO!

Messaggio da Gartin »

Ciao Pasquale, ciao Pietro. Grazie per il benvenuto e ovviamente per le risposte. In effetti il mio problema è esattamente quello che avete ampiamente sviscerato nella discussione segnalatami da Pietro: individuare quale terna A-B-C delle C(90,3) combinazioni occupa l'n-esimo posto e viceversa, data la terna individuare il numero d'ordine. Grazie anche per i programmi e per gli algoritmi segnalati cmq mi interessava proprio la risoluzione matematica del problema.

Come fatto da Pietro nella vecchia discussione di cui sopra, anch' io ero partito dalla constatazione che se 1-2-3 è il primo terno allora tutti i terni che si possono formare avendo l'1 in 1^ posizione sono le combinazioni degli altri 89 elementi a 2 a 2. E così dicasi per quelli che iniziano per 2: la loro quantità corrisponde a quella delle coppie (combinazioni semplici) che si possono formare con gli altri 88 presi a 2 a 2, ecc.

La differenza fra C(89,2) e C(88,2) è 88, mentre fra C(88,2) e C(87,2) è 87... Ciaoè abbiamo progressivamente 88, 87, 86, 85, ecc coppie in meno che si possono formare.

Inoltre ho calcolato che se 1-2-3 è il n°1, il terno 1-89-90 è il 3916.

Fatte queste premesse ho pensato che per calcolare il numero d'ordine di un terno A-B-C intanto potevo stabilire che tale numero era dato da tutti i terni che precedono A-B-C e cioè tutti quelli che si possono formare con ogni numero che precede A, fino a (A-1)-89-90. Questo numero è dato da 3916*(A-1) meno 88 volte la somma dei numeri da 1 ad A-2, più le combinazioni di (A-1) a tre a tre.

Posto quindi (A-1)=n ottengo che i terni che precedono quelli della forma A-x-y sono 3916*n - 88*[1/2*n*(n-1)] + C(n,3). E' quest'ultimo elemento deriva da un colpo d'occhio sui fogli dove provavo i vari calcoli.

Questa è quindi la prima parte della formula che cercavo ma avevo bisogno di trasformare C(n,3) come funzione di A.

Cmq nell'attesa di parola definitiva mi studio perbene la vostra vecchia discussione.
Grazie.

Rispondi