Grazie e saluti.
John
Per caratteri intendi i 36 alfanumerici?
Cosa intendi per univoci:
1 - i codici differiscono per almeno un carattere
2 - i codici differiscono per almeno un carattere e/o
per l'ordine in cui i caratteri si susseguono?
Bruno
immagino che voglia qualcosa tipo i farmacode che usano un sistema di
codifica-decodifica trasformando un numero a 10 cifre in base 10 in un
codice a 6 caratteri [0-9B-DF-GJ-NP-Z] in base 32 ... tutto per
risparmiare spazio nelle piccole confezioni ...
però come ben dicevi occorrono maggiori specifiche
ciao
r
>On 10 Apr, 19:40, Bruno Campanini <brunoca...@libero.it> wrote:
>> rg on 10-04-11 wrote:
>> > Ciao a tutti,
>> > avrei necessit=E0 di trasformare tramite qualche algoritmo dei codici
>> > prodotto di 10 caratteri fissi in 4 caratteri fissi univoci (per
>> > ragioni di lunghezza di un capo) . Esiste qualche esempio
>> > di criptatura per le esigenze su indicate?.
>>
>> Per caratteri intendi i 36 alfanumerici?
>>
>> Cosa intendi per univoci:
>> 1 - i codici differiscono per almeno un carattere
>> 2 - i codici differiscono per almeno un carattere e/o
>> =A0 =A0 per l'ordine in cui i caratteri si susseguono?
>>
>> Bruno
>
>immagino che voglia qualcosa tipo i farmacode che usano un sistema di
>codifica-decodifica trasformando un numero a 10 cifre in base 10 in un
>codice a 6 caratteri [0-9B-DF-GJ-NP-Z] in base 32 ... tutto per
>risparmiare spazio nelle piccole confezioni ...
>
>per=F2 come ben dicevi occorrono maggiori specifiche
>ciao
>r
Ciao per caratteri intendo 1 26 alfabetic
esempio:
codice 10: 01ABK01005
CFODICE 4 XYZA
univoci perchè la trascodifica deve sempre dare il codice originale.
saluti e grazie
jonh
Non riesco a capire il trucco (algoritmo) che porta a convertire senza
ambiguità una codifica numerica di 10 caratteri (cifre) in base 10 (10
miliardi di diposizioni) in una codifica di 6 caratteri in base 32
(poco più di un miliardo di disposizioni).
Secondo i dati dell'OP poi una codifica di 10 elementi tratti dai 26
caratteri alfanumerici (oltre 141 000 miliardi di disposizioni)
dovrebbe tradursi in una di 4 su 26 (nemmeno mezzo milione di
disposizioni).
Evidentemente la codifica originale non sfrutta tutte le possibilità,
occorre pertanto conoscerne la chiave.
Bruno
oppure utilizzare più caratteri ... come vuole l'op non è fattibile
senza quello che chiedi tu.
saluti
r
nel caso del farmacode ...
il primo carattere deve essere una A e quindi è solo un carattere di
controllo ...
quindi dovrebbe tornare ...
saluti
r
>On 11 Apr, 11:01, Bruno Campanini <brunoca...@libero.it> wrote:
>> r on 11-04-11 wrote:
>> > On 10 Apr, 19:40, Bruno Campanini <brunoca...@libero.it> wrote:
>> >> rg on 10-04-11 wrote:
>> >>> Ciao a tutti,
>> >>> avrei necessit=E0 di trasformare tramite qualche algoritmo dei codici
>> >>> prodotto di 10 caratteri fissi in 4 caratteri fissi univoci (per
>> >>> ragioni di lunghezza di un capo) . Esiste qualche esempio
>> >>> di criptatura per le esigenze su indicate?.
>>
>> >> Per caratteri intendi i 36 alfanumerici?
>>
>> >> Cosa intendi per univoci:
>> >> 1 - i codici differiscono per almeno un carattere
>> >> 2 - i codici differiscono per almeno un carattere e/o
>> >> =A0 =A0 per l'ordine in cui i caratteri si susseguono?
>>
>> >> Bruno
>>
>> > immagino che voglia qualcosa tipo i farmacode che usano un sistema di
>> > codifica-decodifica trasformando un numero a 10 cifre in base 10 in un
>> > codice a 6 caratteri [0-9B-DF-GJ-NP-Z] in base 32 ... tutto per
>> > risparmiare spazio nelle piccole confezioni ...
>>
>> Non riesco a capire il trucco (algoritmo) che porta a convertire senza
>> ambiguit=E0 una codifica numerica di 10 caratteri (cifre) in base 10 (10
>> miliardi di diposizioni) in una codifica di 6 caratteri in base 32
>> (poco pi=F9 di un miliardo di disposizioni).
>
>
>nel caso del farmacode ...
>il primo carattere deve essere una A e quindi =E8 solo un carattere di
>controllo ...
>quindi dovrebbe tornare ...
>saluti
>r
>
Salve,
chiedevo solamente se è fattibile e come (alcgoritmo hash)
trasformare un codice alfanumero di 10 caratteri in un codice breve di
4 caratteri alfabetici che lo rappresenti in maniera univoca ,
esempio:
codice descrizione codice breve
01ABCDE000 PRODOTTO A XYZL
02RAL01001 PRODOTTO B SWGH
Saluti.
John
ci provo l'ultima volta ... personalmente ho già perso la pazienza
prendi un codice binario dove i caratteri usati sono due lo zero e
l'uno ...
per rappresentare l'8 devi usare 4 caratteri 1000 ... in un sistema
decimale ne basta 1 l'otto appunto ... perchè? ... perchè un sistema a
base 10 dispone di 10 diversi caratteri che possono essere usati per
restituire l'informazione. Un sistema esadecimale ad esempio utilizza
16 diversi caratteri (oltre ai numeri le lettere da A a F ... quindi
se volessimo rappresentare l'informazione 15 si avrebbe:
1111 (binario)
15 (decimale)
F (esadecimale)
se hai un codice alfanumerico (36 caratteri [0-9A-Z]) lungo 10
elementi puoi potenzialmente esprimere 3.656.158.440.062.980
informazioni (bruno dico bene?)
Ti occorrerebbe un set di caratteri di 7.776 diversi elementi per
restituire le stesse informazioni con serie di soli 4 elementi ... tu
conosci il cinese?
saluti
r
ecco ...
Function conv_to_china_code(da_base As Integer, _
a_base As Integer, sCodice As String) As String
'Function di Erik Oosterwal modificata
Dim J, K, D, X, P, Y As Integer
Dim S, O As String
Dim I As Long
S = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Y = Len(sCodice)
For J = 1 To Y
For K = 1 To da_base
If Mid(sCodice, J, 1) = Mid(S, K, 1) Then
P = 1
For I = 1 To Y - J
P = P * da_base
Next
D = D + (K - 1) * P
Exit For
End If
Next K
Next J
While D > 0
X = ((D / a_base) - Int( _
D / a_base)) * a_base + 1
O = ChrW(X + 20000) & O
D = Int(D / a_base)
Wend
conv_to_china_code = O
End Function
poi se hai il codice in A1 in B1 scrivi:
=conv_to_china_code(36;7776;A1)
e otterrai il tuo codice univoco di 4 caratteri cinesi :-)
saluti
r
>On 11 Apr, 08:05, nomail@. (rg) wrote:
>> On Mon, 11 Apr 2011 02:47:46 -0700 (PDT), r <robb....@gmail.com>
>> wrote:
>>
>>
>>
>> >On 11 Apr, 11:01, Bruno Campanini <brunoca...@libero.it> wrote:
>> >> r on 11-04-11 wrote:
>> >> > On 10 Apr, 19:40, Bruno Campanini <brunoca...@libero.it> wrote:
>> >> >> rg on 10-04-11 wrote:
>> >> >>> Ciao a tutti,
>> >> >>> avrei necessit=3DE0 di trasformare tramite qualche algoritmo dei c=
>odici
>> >> >>> prodotto di 10 caratteri fissi in 4 caratteri fissi univoci (per
>> >> >>> ragioni di lunghezza di un capo) . Esiste qualche esempio
>> >> >>> di criptatura per le esigenze su indicate?.
>>
>> >> >> Per caratteri intendi i 36 alfanumerici?
>>
>> >> >> Cosa intendi per univoci:
>> >> >> 1 - i codici differiscono per almeno un carattere
>> >> >> 2 - i codici differiscono per almeno un carattere e/o
>> >> >> =3DA0 =3DA0 per l'ordine in cui i caratteri si susseguono?
>>
>> >> >> Bruno
>>
>> >> > immagino che voglia qualcosa tipo i farmacode che usano un sistema d=
>i
>> >> > codifica-decodifica trasformando un numero a 10 cifre in base 10 in =
>un
>> >> > codice a 6 caratteri [0-9B-DF-GJ-NP-Z] in base 32 ... tutto per
>> >> > risparmiare spazio nelle piccole confezioni ...
>>
>> >> Non riesco a capire il trucco (algoritmo) che porta a convertire senza
>> >> ambiguit=3DE0 una codifica numerica di 10 caratteri (cifre) in base 10=
> (10
>> >> miliardi di diposizioni) in una codifica di 6 caratteri in base 32
>> >> (poco pi=3DF9 di un miliardo di disposizioni).
>>
>> >nel caso del farmacode ...
>> >il primo carattere deve essere una A e quindi =3DE8 solo un carattere di
>> >controllo ...
>> >quindi dovrebbe tornare ...
>> >saluti
>> >r
>>
>> Salve,
>> =A0chiedevo solamente se fattibile e come (alcgoritmo hash)
>> trasformare un codice alfanumero di 10 caratteri in un codice breve di
>> 4 caratteri alfabetici che lo rappresenti in maniera univoca ,
>> esempio:
>>
>> codice =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0descrizione =A0 =A0 =A0 =A0 =A0 =A0=
> =A0codice breve
>> 01ABCDE000 =A0 =A0PRODOTTO A =A0 =A0 =A0 =A0XYZL
>> 02RAL01001 =A0 =A0 PRODOTTO B =A0 =A0 =A0 =A0SWGH
>>
>> Saluti.
>>
>> John =A0 =A0 =A0 =A0 =A0
>
>ci provo l'ultima volta ... personalmente ho gi=E0 perso la pazienza
>prendi un codice binario dove i caratteri usati sono due lo zero e
>l'uno ...
>per rappresentare l'8 devi usare 4 caratteri 1000 ... in un sistema
>decimale ne basta 1 l'otto appunto ... perch=E8? ... perch=E8 un sistema a
>base 10 dispone di 10 diversi caratteri che possono essere usati per
>restituire l'informazione. Un sistema esadecimale ad esempio utilizza
>16 diversi caratteri (oltre ai numeri le lettere da A a F ... quindi
>se volessimo rappresentare l'informazione 15 si avrebbe:
>1111 (binario)
>15 (decimale)
>F (esadecimale)
>
>se hai un codice alfanumerico (36 caratteri [0-9A-Z]) lungo 10
>elementi puoi potenzialmente esprimere 3.656.158.440.062.980
>informazioni (bruno dico bene?)
>Ti occorrerebbe un set di caratteri di 7.776 diversi elementi per
>restituire le stesse informazioni con serie di soli 4 elementi ... tu
>conosci il cinese?
>
>saluti
>r
>
>
>
Ciao Sapiente,
il cinese non lo conoscom ma tu non conosci neanche
il modo di spiegare le cose, fatti un corso di simpatia e se perdi la
pazienza non rispondere alle richieste.
Ciao Sapiente,
il cinese non lo conoscom ma tu non conosci neanche
il modo di spiegare le cose, fatti un corso di simpatia e se perdi la
pazienza non rispondere alle richieste.
*********************************
Hai perso una buona occasione
per tenere le mani lontane dalla
tastiera.
Roberto *è* il newsgroup di Excel
in questo momento, offenderlo gratuitamente
non è una cosa che ti faccia onore.
Forse Roberto e Bruno stanno solo cercando
di spiegarti che la cosa non è così semplice.
Prova a postare la tua richiesta in un newsgroup
di matematica, ad esempio:
it.scienza.matematica
Una volta ottenuta la risposta e la logica
che può eventualmente risolvere il tuo
problema, possiamo provare(se possibile)
di trasformarlo in un algoritmo vb.
Grazie per l'attenzione.
--
---------------------------
Mauro Gamberini
Microsoft MVP - Excel
http://www.riolab.org/
http://www.maurogsc.eu/
> Ciao Sapiente,
Sapiente? mi piace, grazie :-)
> il cinese non lo conosco
peccato! purtroppo nemmeno io, anche se mi piacerebbe
> m ma tu non conosci neanche
> il modo di spiegare le cose,
non hai ancora capito?
a mamma mia!
hai posto una domanda in modo approssimativo ...
alle richieste di precisione hai risposto in modo impreciso (26
caratteri alfabetici, invece poi erano 36 alfanumerici) quasi il
problema fosse nostro anzichè tuo
hai poi insistito riproponendo cocciutamente la domanda senza nemmeno
cercare di capire il senso delle risposte, come un asino che
raglia ...
almeno con la tua ultima, non hai chiesto nuovamente un algoritmo per
trasformare il dna di un cavallo in quello di una ameba ... in modo
univoco ...
questo però è già un passo avanti ... voglia di galoppare poca ... ma
almeno non sei piatto come una ameba
> fatti un corso di simpatia
ne ho già fatti 3 ... ma in tutti mi hanno detto che sono un asino e
non imparerò mai ... quindi rinuncio
>e se perdi la pazienza non rispondere alle richieste.
fallo anche tu ... prima di rispondere a questa mia ultima ...
ma almeno l'hai provata la funzione? ... no perchè risponde
perfettamente alle tue esigenze!
saluti
r
> Forse Roberto e Bruno stanno solo cercando
> di spiegarti che la cosa non cos semplice.
certo che è semplice!
>
> Prova a postare la tua richiesta in un newsgroup
> di matematica, ad esempio:
>
> it.scienza.matematica
si, prova ... magari bruno gli risponde :-)
>
> Una volta ottenuta la risposta e la logica
> che pu eventualmente risolvere il tuo
> problema, possiamo provare(se possibile)
> di trasformarlo in un algoritmo vb.
la soluzione l'ha già avuta ... se non esiste una chiave diversa da
quella sequenziale (Bruno glie l'ha già chiesto) quella è l'unica
soluzione possibile.
>
> Grazie per l'attenzione.
ma grazie a te :-)
ciao
r
Ma ROTFL!!!
anche tu non sai il cinese eh? :-)
anche tu non sai il cinese eh? :-)
***************************
No. Ma mi sto studiando il bolognese.
Maledizione, oramai lo parlano in pochi.
---------------------------
Mauro Gamberini
------------------------------------------------------
Io volele impalale cinese ma inciampale semple su ideoglammi, cosě
linunciato; tloppe cadute, mio naso semple lotto.
Plefelile dialetto bolognese: soccmel!
ciao paoloald
http://www.liolab.olg
LOL, risposta notevole che suscita la mia piena dichiarazione di
simpatia, della quale non avevi bisogno.:-))
E per fare contento l'OP...mi unisco al raglio.:-D)
Fumate orientali, un po' acidule.:-(
Eliano