View Full Version : formula matematica per un codice di controllo sequenza numerica
tornadobluVR
13-01-2011, 21:56
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
forse non ho capito bene io, ma che relazione lega il "codice di controllo" al relativo numero a 6 cifre?
non ho capito il codice di controllo a cosa ti serve all'atto pratico e come te lo calcoli :mbe:
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
tornadobluVR
14-01-2011, 11:48
forse non ho capito bene io, ma che relazione lega il "codice di controllo" al relativo numero a 6 cifre?
non ho capito il codice di controllo a cosa ti serve all'atto pratico e come te lo calcoli :mbe:
e' quello che voglio trovare,
una formula che leghi i numeri iniziali con il numero di controllo!
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
il codice di controllo mi serve per CONTROLLO dato che devo stampalo su dei biglietti da distribuire perche' non voglio ci siano multipli o falsi!
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 ;)
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 -
Dumah Brazorf
14-01-2011, 12:56
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...
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 -
Per fare ciò occorre uno spazio di codici di controllo pari a 999'999 caratteri (+1 se è compreso anche 000000), il ché mi sembra abbastanza arduo da attuare :stordita:
tornadobluVR
15-01-2011, 14:31
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 mi reputo un matematico cosi bravo! e non lo diventerò mai!
(nel caso riuscissi perche' solo ultimi 100 anni, è un po' poco :D)
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!
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.
vedo che hai capito :)
Il problema è farlo in excel...
infatti e' questo che cerco!
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.
Dumah Brazorf
16-01-2011, 13:45
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.
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.