|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Nov 2006
Messaggi: 942
|
formula matematica per un codice di controllo sequenza numerica
Salve a tutti,
mi serve trovare una formula matematica di questo tipo: vi scrivo alcuni numeri: 000001 5 000002 7 000003 3 ... 001255 8 001256 7 ... 999999 6 la sequenza dovrebbe essere formata da: numero finale = numero in successione + codice di controllo legato ai numeri della successione come negli esempi numero in successione = 6 cifre numeriche (no lettere) codice di controllo = 1 cifra dato che devo implementare una tebella in excel devo trovate la formula per il codice di controllo, come posso fare? qualcuno ha idee saluti M
__________________
♫ ♪ ♫♪ ♫♪ ♫ ♪ Ultima modifica di tornadobluVR : 14-01-2011 alle 11:50. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Feb 2009
Messaggi: 845
|
forse non ho capito bene io, ma che relazione lega il "codice di controllo" al relativo numero a 6 cifre?
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Dec 2006
Messaggi: 3808
|
non ho capito il codice di controllo a cosa ti serve all'atto pratico e come te lo calcoli
non è che per caso ti basta la codifica Delta se vuoi tenere gli indici di una lista molto lunga? http://it.wikipedia.org/wiki/Codifica_delta |
|
|
|
|
|
#4 | |||
|
Senior Member
Iscritto dal: Nov 2006
Messaggi: 942
|
Quote:
Quote:
una formula che leghi i numeri iniziali con il numero di controllo! Quote:
serve per creare un'unicita' di codice, me la creerò io, cercand di utilizzare un'unione o una smma tra la funzione delta (troppo facile da decifrare anche avendo solo 2 biglietti) e qualche serie o quella di taylor o di Laurent... pero' se qualcuno ha altre idee scriva pure
__________________
♫ ♪ ♫♪ ♫♪ ♫ ♪ |
|||
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jun 2004
Città: London, UK
Messaggi: 10708
|
Non so se dico una castroneria, ma se stai cercando di condensare un numero a 6 cifre in un codice di controllo ad 1 cifra, e intendi che sia biunivoca la relazione, cioe' che ad un numero di 6 cifre corrisponda uno ed un solo codice, e che dal codice di controllo si possa risalire all'unico numero di 6 cifre che lo genera, ecco penso che se il tuo obiettivo e' questo se ci riesci sei il miglior matematico degli ultimi 100 anni di storia almeno.
- CRL -
__________________
"non è compito del mod dare una mano di bianco sul grigio della vita" [cit.] |
|
|
|
|
|
#6 |
|
Bannato
Iscritto dal: Oct 2002
Messaggi: 29264
|
Se fai una funzione complicata non puoi controllare i biglietti a mente, se la fai troppo semplice la trovano subito. Dunque dovrai comunque avere una lista di controllo.
Tanto vale che metti numeri a caso senza alcuna connessione col numero di successione. Visto che vuoi mettere un solo carattere non limitarti ai soli numeri 0-9 ma potresti mettere anche le lettere alfabetiche e volendo l'intera tabella ascii. Si potrebbe generare un numero random e da questo ricavare il codice ascii a cui corrisponderà un carattere. Il problema è farlo in excel... |
|
|
|
|
|
#7 | |
|
Member
Iscritto dal: May 2006
Città: A 32 km da Ferrara, 35 da Bologna e 38 da Modena
Messaggi: 201
|
Quote:
|
|
|
|
|
|
|
#8 | ||
|
Senior Member
Iscritto dal: Nov 2006
Messaggi: 942
|
Quote:
(nel caso riuscissi perche' solo ultimi 100 anni, è un po' poco poi, non so piu' come spiegare ciò che cerco e' un codice di controllo non una sintesi numerica!! non e' una corrispndenza biunivoca! sarebbe piu una cosa suriettiva dato che i numeri sono 10! e utilizzerei solo numeri per la sintesi! e li inserirei in un tabulato calcolato automaticamente con excel partendo dalla prima cifra! 000001 a 999999 aggiungo una spiegazione con un esempio: codice esempio: 0112258 verifica: numero proveniente dalla successione: 011225 numero di controllo: 8 8 e' il codice corretto?? e quindi il biglietto nn e' contraffatto? calcoli: se ya = yb verifica ok! allora ya = 8 valore iniziale proveniente dal codice X = funzione(011225) = 128.567,5685668 Yb = "scelgo la cifra delle migliaia o dei millesimi di"(X)= 8 e' una scelta nn una sintesi!! il valore e' giusto! biglietto originale se mi arrivasse un biglietto con codice: 0112255 rifacendo i calcoli troverei 5 = 8 ? NO allora biglietto fasullo!! cio che cerco e' quindi una funzione abb complessa che generi un numero di parecchie cifre (piu di 10) nel quale andare poi ad estrapolare un numero a piacimento prestabilito la funzione deve essere esistere nel dominio [000001-999999] il totale di cio' che cerco e' un semplice generatore di un numerio partendo da 6 numeri e da inserire il calcolo in excel! Quote:
infatti e' questo che cerco!
__________________
♫ ♪ ♫♪ ♫♪ ♫ ♪ |
||
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Un algoritmo semplice:
Somma tutte le cifre fra di loro. Se ottieni un numero piu' grande di 10, continua a sommare, ricorsivamente, fino a che non ottieni un valore solo, che userai allo scopo. Comunque stai cercando una "Firma", non un codice di controllo (che poi tu lo usi per controllare qualcosa, e' un altro discorso) Cerca in letteratura algoritmi per creare firme. Ne troverai a bizzeffe. La maggior parte di tali algoritmi usa anche una chiave, nota solo a chi scrive l'algoritmo, per complicare eventuali reverse-engineering del metodo ed evitare quanto piu' possibile le contraffazioni.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
|
|
|
|
#10 |
|
Bannato
Iscritto dal: Oct 2002
Messaggi: 29264
|
Vabbè metti un codice di controllo sul biglietto, ma poi come gestisci il controllo?
Vuoi controllare tutti i biglietti uno per uno? Servirebbe troppo tempo. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:10.




















