![]() |
![]() |
||||||||||
|
|
![]() |
|
Strumenti della discussione | Modalità di visualizzazione |
![]() |
#11 |
Utente
![]() ![]() Data di registrazione: May 2007
Ubicazione: Trentino
Messaggi: 883
|
![]() Non so se può essere un aiuto: considerando che la prima sestina è 1,2,3,4,5,6 e l'ultima 85,86,87,88,89,90, sottraendo termine a termine viene una sestina in cui i nuovi A,B,C,D,E,F sono tutti 84,84,84,84,84. Ma anche esprimendoli come 84^5*A+84^4*B ecc non ne vengo a capo.
|
![]() |
![]() |
![]() |
#12 | |
Utente Super
![]() ![]() ![]() ![]() ![]() Data di registrazione: Sep 2007
Messaggi: 4,494
|
![]() Quote:
![]() |
|
![]() |
![]() |
![]() |
#13 |
Utente Super
![]() ![]() ![]() ![]() ![]() Data di registrazione: Sep 2007
Messaggi: 4,494
|
![]() 1= 1 2 3 4 5 6
41507643= 2 3 4 5 6 7 80683395= 3 4 5 6 7 8 117633252= 4 5 6 7 8 9 152459554= 5 6 7 8 9 10 185261071= 6 7 8 9 10 11 216133087= 7 8 9 10 11 12 245167483= 8 9 10 11 12 13 272452819= 9 10 11 12 13 14 298074415= 10 11 12 13 14 15 322114431= 11 12 13 14 15 16 344651946= 12 13 14 15 16 17 365763036= 13 14 15 16 17 18 385520851= 14 15 16 17 18 19 403995691= 15 16 17 18 19 20 421255081= 16 17 18 19 20 21 437363845= 17 18 19 20 21 22 452384179= 18 19 20 21 22 23 466375723= 19 20 21 22 23 24 479395632= 20 21 22 23 24 25 491498646= 21 22 23 24 25 26 502737159= 22 23 24 25 26 27 513161287= 23 24 25 26 27 28 522818935= 24 25 26 27 28 29 531755863= 25 26 27 28 29 30 540015751= 26 27 28 29 30 31 547640263= 27 28 29 30 31 32 554669110= 28 29 30 31 32 33 561140112= 29 30 31 32 33 34 567089259= 30 31 32 33 34 35 572550771= 31 32 33 34 35 36 577557157= 32 33 34 35 36 37 582139273= 33 34 35 36 37 38 586326379= 34 35 36 37 38 39 590146195= 35 36 37 38 39 40 593624956= 36 37 38 39 40 41 596787466= 37 38 39 40 41 42 599657151= 38 39 40 41 42 43 602256111= 39 40 41 42 43 44 604605171= 40 41 42 43 44 45 606723931= 41 42 43 44 45 46 608630815= 42 43 44 45 46 47 610343119= 43 44 45 46 47 48 611877058= 44 45 46 47 48 49 613247812= 45 46 47 48 49 50 614469571= 46 47 48 49 50 51 615555579= 47 48 49 50 51 52 616518177= 48 49 50 51 52 53 617368845= 49 50 51 52 53 54 618118243= 50 51 52 53 54 55 618776251= 51 52 53 54 55 56 619352008= 52 53 54 55 56 57 619853950= 53 54 55 56 57 58 620289847= 54 55 56 57 58 59 620666839= 55 56 57 58 59 60 620991471= 56 57 58 59 60 61 621269727= 57 58 59 60 61 62 621507063= 58 59 60 61 62 63 621708439= 59 60 61 62 63 64 621878350= 60 61 62 63 64 65 622020856= 61 62 63 64 65 66 622139611= 62 63 64 65 66 67 622237891= 63 64 65 66 67 68 622318621= 64 65 66 67 68 69 622384401= 65 66 67 68 69 70 622437531= 66 67 68 69 70 71 622480035= 67 68 69 70 71 72 622513684= 68 69 70 71 72 73 622540018= 69 70 71 72 73 74 622560367= 70 71 72 73 74 75 622575871= 71 72 73 74 75 76 622587499= 72 73 74 75 76 77 622596067= 73 74 75 76 77 78 622602255= 74 75 76 77 78 79 622606623= 75 76 77 78 79 80 622609626= 76 77 78 79 80 81 622611628= 77 78 79 80 81 82 622612915= 78 79 80 81 82 83 622613707= 79 80 81 82 83 84 622614169= 80 81 82 83 84 85 622614421= 81 82 83 84 85 86 622614547= 82 83 84 85 86 87 622614603= 83 84 85 86 87 88 622614624= 84 85 86 87 88 89 622614630= 85 86 87 88 89 90 Questa è una selezione di tutte le sestine possibili. Sono quelle in cui il primo numero della sestina chiamato c1 aumenta di una unità. Quindi già dal primo numero della sistina si può stabilire il numero n di una sestina entro quali numeri sarà compreso. Ad esempio se c1=81 il numero n della sestina sarà maggiore o uguale a 622614421 e minore di 622614547. Ora qui per il momento c'è una tabella che ci dice che a c1=81 corrisponde a 622614421, ma questo valore si può ottenere con una formula, che sto cercando di scrivere. Poi bisognerà trovare le formule anche per c2, c3 ecc. Per cui data una qualsiasi sestina, si può trovare il numero n corrispondente, sommando il numero dei cicli che ciascun c ha fatto per divenire ciò che è. Per il momento bisogna trovare la formula che per c1=81 dia 622614421. Siccome c1 parte da 1 ... continua ... ![]() Ultima modifica di astromauh : 28-09-14 14:30. |
![]() |
![]() |
![]() |
#14 |
Utente
![]() ![]() Data di registrazione: May 2007
Ubicazione: Trentino
Messaggi: 883
|
![]() L'algoritmo è corretto, confermo, ma serve la formula inversa come detto da Erasmus, per passare da una sestina qualunque al valore k o sestina k-esima che dir si voglia.
|
![]() |
![]() |
![]() |
#15 | |
Utente Super
![]() ![]() ![]() ![]() ![]() Data di registrazione: Sep 2007
Messaggi: 4,494
|
![]() Quote:
A me sembra il sistema più facile, perché lambiccarsi il cervello per trovare un metodo difficile? Se volete un programma che data una sestina qualsiasi trova il numero d'ordine corrispondente, ve lo faccio. Visto che i numeri del super-enalotto escono una o due volte a settimana, qualche secondo di tempo per aspettare l'output del programma, lo potete pure sprecare (mi pare). Mi sono stufato. ![]() |
|
![]() |
![]() |
![]() |
#16 | |
Utente Super
![]() ![]() ![]() ![]() ![]() Data di registrazione: Feb 2008
Ubicazione: Unione Europea
Messaggi: 6,384
|
![]() @ astromauh
Ti riscrivo ... "alla Pascal" e ti cambio colore: Quote:
–––––––––– Ma se intendi che una sestina è [c1, c2, c3, c4, c5, c6] questa routine è sbagliata in ogni senso, perché questi 6 numeri sono costanti mentre cerchi a quale intero corrisponde la tua sestina! Forse intendevi così: Codice:
k:=0; for n1= c1 to 85 do for n2= c2 to 86 do for n3= c3 to 87 do for n4= c4 to 88 do for n5= c5 to 89 do for n6= c6 to 90 do k:=k+1; Se metto S = [85, 86, 87, 88, 89, 90] ogni for funziona un colpo solo e quindi viene n =0+1 = 1. Sicché (sempre supposto che l'algoritmo vada bene per una S qualsiasi, cioè che non succeda che per due S diverse venga lo stesso k), questo sistema di numerazione mette le sestine in ordine inverso. Per raddrizzare l'ordine basterà poi fare n:= 622614630 – k + 1 e considerare la nuova funzione n = n(S). Dai, astromauth: prova a vedere se davvero questa n(S) funziona. –––––––– P.S. Leggo solo ora il tuo ultimo intervento. Dai: non prendertela! Non era per preoccupazione di tempi troppo lunghi che avevo fatto quel rilievo! ![]() Supponiamo che la routine che hai fatto tu per "codificare" le sestine con un intero vada bene. Non ci hai però ancora detto come fai a generare le combinazioni. Era questo il rilievo che intendevo. ------------ A me dell'Enalotto non imnporta! Invece, visto che invecchiando non mi ricordo più nemmeno quello che avevo trovato autonomamente, mi interessa l'aspetto matematico della questione. Ossia ... come segue. ![]() Dati n oggetti distinti A1, A2, A3, ..., An, consideriamo le combinazioni a m a m di questi n oggetti. Il numero di combinazioni distinte è C(n, m) = (n!)/[m!·(n–m)!] =[n·(n–1)·(n–2)· ...·(n–m+1)]/m! Questa è una frazione apparente (cioè con numeratore sempre multiplo intero del denominatore) con • numeratore prodotto di m interi in discesa a partire da n; • denominatore prodotto di m interi in salita a partire da 1. Proponiamoci di fare una "codifica" di queste C(n, m) combinazioni con un intero da 1 a C(n, m). Occorre realizzare due routine: a) Una routine che mette in fila le combinazioni e le numera nell'ordine, ossia codifica le combinazioni con un intero k compreso tra 1 e C(n, m) inclusi. [Quest'ultima è quella che hai affrontato tu e che io ho chiamato k = k(S), dove s era la "sestina" variabile]. b) Una routine che per ogni k tra 1 e C(n, m) inclusi mi produce una combinazione sempre diversa , cioè decodifica un intero k [tra 1 e C(n, m) inclusi] in una combinazione [a m a m di quegli n oggetti]. Questa è la routine che produce la funzione da me indicata come S = S(k), dove ora la variabile è k ed S è la sua "decodifica" in una combinazione biunivocamente associata. ––––– ![]()
__________________
Erasmus «NO a nuovi trattati intergovernativi!» «SI' alla "Costituzione Europea" federale, democratica e trasparente!» Ultima modifica di Erasmus : 28-09-14 20:53. |
|
![]() |
![]() |
![]() |
#17 |
Utente Super
![]() ![]() ![]() ![]() ![]() Data di registrazione: Sep 2007
Messaggi: 4,494
|
![]() Ho provato a lavorare su dei numeri più piccoli.
1, 2, 3, 4 quartina iniziale; e 7, 8, 9, 10 quartina finale Ci sono 210 quartine. Attribuisco a ciascuna quartina un numero da 1 a 210. for c1= 1 to 7 for c2= c1 + 1 to 8 for c3= c2 + 1 to 9 for c4= c3 + 1 to 10 n= n + 1 next next next next Data una quartina qualsiasi come faccio a trovare il suo numero d'ordine n? Prendiamo ad esempio la quartina 2, 5, 8, 9 Debbo calcolare le differenze tra i numeri di questa quartina e la quartina n.1 o quartina di base (1, 2, 3, 4) 2 - 1 = 1 5 - 2 = 3 8 - 3 = 5 9 - 4 = 5 1, 3, 5, 5 Quartina Differenza A questo punto debbo entrare in delle apposite tabelle. Tabella c1 (valida per il primo numero a sinistra)
Tabella c2 (valida per il secondo numero)
Tabella c3 (valida per il terzo numero)
1, 3, 5, 5 Quartina Differenza 56 + 46 + 20 + 5 + 1 = 128 Numero d'ordine della quartina 2, 5, 8, 9 = 128 Naturalmente per applicare questo metodo alle sestine con i 90 numeri del lotto, bisognerà preparare 5 tabelle molto più lunghe di queste. Metodi più "eleganti" non ne conosco. ![]() |
![]() |
![]() |
![]() |
#18 |
Utente Super
![]() ![]() ![]() ![]() ![]() Data di registrazione: Sep 2007
Messaggi: 4,494
|
![]() Con quella routine che per ogni n trova la corrispondente sestina c1, c3, c3, c4, c5, c6.
![]() Noi non vogliamo le permutazioni delle varie sestine, e per evitare che compaiano delle permutazioni, facciamo in modo che in tutte le sestine valga sempre: c1 < c2 < c3 < c4 < c5 < c6 for c1= 1 to 85 for c2= c1 + 1 to 86 for c3= c2 + 1 to 87 for c4= c3 + 1 to 88 for c5= c4 + 1 to 89 for c6= c5 + 1 to 90 n= n + 1 S(n)= c1, c2, c3, c4, c5, c6 next next next next next next c1 parte da 1 per arrivare a 85 che è il numero più alto che si può trovare in c1 c2 parte da c1 + 1 perché c2 deve essere sempre maggiore di c1 e arriva fino al suo massimo che è 86 c3 parte da c2 + 1 perché c3 deve essere sempre maggiore di c2 e arriva fino al suo massimo che è 87 e così via ... Con questo metodo si generano TUTTE e SOLO le sestine desiderate, ordinate con numerazione crescente da sinistra a destra. ![]() |
![]() |
![]() |
![]() |
#19 | |
Utente
![]() ![]() Data di registrazione: May 2007
Ubicazione: Trentino
Messaggi: 883
|
![]() Quote:
Allora adesso serve la formula per calcolare le apposite tabelle ![]() ![]() |
|
![]() |
![]() |
![]() |
#20 |
Utente Super
![]() ![]() ![]() ![]() ![]() Data di registrazione: Sep 2007
Messaggi: 4,494
|
![]() Queste tabelle le ho elaborate facendo i calcoli a mano.
Siccome le tabelle necessarie per i numeri del super-enalotto sono molto più grandi, non so se si possono elaborare a mano, bisognerebbe scrivere un programma per automatizzare il processo, e c'è il rischio di commettere degli errori. Il problema è a che serve tutto questo? Se si vuole sapere il numero d'ordine di una certa sestina, è sufficiente vedere qual è il suo numero d'ordine scorrendo tutte le sestine. Ma poi a che serve conoscere questo numero d'ordine? Questo numero d'ordine è solo il numero d'ordine delle sestine, che si ottiene se si adotta il metodo particolare che ho usato per generarle, non ha certo un valore assoluto. E quindi perché lo vuoi conoscere, non mi pare che serva a nulla? ![]() ![]() |
![]() |
![]() |
![]() |
Links Sponsorizzati |
Strumenti della discussione | |
Modalità di visualizzazione | |
|
|