Newsgroup: it.comp.lang.visual-basic
Titolo: rendere un "numerone" ricordabile

poniamo che un utente debba ricordarsi, ad esempio, il suo numero di
telefono (10 cifre) o il suo "numero utente" (per esempio 15 cifre)
avete una strategia (informatica) per "comprimere" in qualche modo il
numero in modo da renderlo più facilmente ricordabile "a memoria"?
non ho bisogno di ricostruire il numero iniziale, questo lo farei da
db, ma chiaramente il "numero compresso" deve rimanere univoco (non va
bene ad es il solo checksum), e deve essere generato automaticamente.
grazie.

kitesurfz wrote:
hash?

>db, ma chiaramente il "numero compresso" deve >rimanere univoco (non va
ok, sono un niubbo di merda ;)
pero' dico la mia lo stesso :)
Un campo contatore nella tabella?
Cosi' magari il contatore 1322 è associato direttamente a ..che ne so .. 
115293382910283..
no? :) 


non capisco lo scopo, se ad esempio un numero X ha come hash 350 o in hex 
viene &hFFD34F... come fa l'utente a ricordarsi il numero X ?
io ricordo cf + telefoni + cc separando le cifre a blocchi, ad esempio il 
mio numero ha delle cifre tipo 
3474665229
io me le ricordo cosi' :
347.466.522.9 anziche' lo scomodo 347.46.65.229 stessa cosa per le 16 cifre 
del CC per il CF ad esempio le divido per i loro valori: XXX YYY ZZZZZ AAAA 
B
tu cosa cerchi di preciso ?
-- 
[Gigio2k]
Accorcia i link gratis e in modo semplice :
G2kSnipUrl : 
http://www.g2kweb.it/?3015
---> No alla CONFISCA delle moto : 
http://www.maxkava.com/moto
 <--- 

 hash?
Hashish?
-- 
Stay Cool, Stay Free, and then You will see.
It's Best to Stay Mellow!
http://www.assandshirt.com
Venerate anche voi il dio Flying Spaghetti Monster, andate su
http://www.venganza.org

una idea.
ricordare 39488586 è più difficile che ricordare LSDOR, per esempio,
perchè la seconda è una "parola".

eh? ovvero?
ricorda che il "numero" deve rimanere univoco: parlo di un numero utente

Ciao, prova questa:
'------------------------------------------------------------------
Function NumToWord(ByVal numero As Long) As String
    Const BS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
 
    Dim tmpstr As String
    Dim dDiv As Integer
 
    dDiv = Len(BS)
 
    Dim tmpNum, tmpMod
    tmpMod = -1
    tmpNum = numero
 
    While tmpMod <> 0 ' dDiv
        tmpMod = tmpNum Mod dDiv
        tmpNum = CLng(tmpNum / dDiv)
 
        If tmpMod <> 0 Then tmpstr = Mid(BS, tmpMod, 1) & tmpstr
    Wend
    NumToWord = tmpstr
End Function
'----------------------------------------------------------------
E' un po' arrabattata ma [dovrebbe] convertire un numero decimale in un
numero a base 26, usando le lettere invece dei numeri...


 numero in modo da renderlo più facilmente ricordabile "a memoria"?
Post-it?
Alberto
-- 
Si è visto di meglio,
ma si è scopato di peggio,
qualche volta a pago
e non erano neanche sempre donne
[Paolo]

OTTIMO, potrebbe essere una buona soluzione.
provo

ok, post it.
Ragazzi, sapete un buon metodo per archiviare i post-it?   ;-)
hehe

 Ragazzi, sapete un buon metodo per archiviare i post-it?   ;-)
Regola 1: MAI buttare via un post-it. Diventerà fondamentale dieci 
minuti dopo che la rumena ha vuotato il cestino.
Regola 2: Avere sempre una cartellina sulla scrivania dove inserire i 
post-it e lì lasciarli all'infinito
Regola 3: Avere sempre sulla scrivania due pacchetti di post-it, grandi 
e piccoli
Regola 4: Usare con abbondanza gli evidenziatori, con codifica ben 
definita: Giallo=Appuntamento di lavoro; Verde=Appuntamento personale; 
Arancione=Hobby/Sport; nessuna evidenziazione=Da dimenticare.
Ciao


kitesurfz wrote:
Uhm... mi sono accorto che nella codifica manca lo 0 ...


 Uhm... mi sono accorto che nella codifica manca lo 0 ...
E che ho sbagliato tutto! comunque si può fare... mo perfeziono!


'appero! mi hai risposto sul serio!
allora forse posso farti una qualsiasi domanda, e probabilmente
otterrò risposta :-)
la vita può essere più facile di quello che sembra...

allora tolgo una mucchina (tucows rules)

 otterrò risposta :-)
Purchè sia OT.


 perchè la seconda è una "parola".
ok ma metti che ti ricordi "LSDOR" ok ? come fai ad arrivare a "39488586" ?
Cioe' se e' un numero telefonico e io lo associo a "CICCIO" poi quando
prendo un telefono per chiamare che io mi ricordo "CICCIO" non mi serve a
nulla, devo sempre arrivare al numero  di telefono no ? quindi mi serve un
algoritmo di ricostruzione.
-- 
-Gigio@work-
G2kSnipUrl : 
http://www.g2kweb.it/?3015
( il servizio accorcia link + Gigioso che conosciate ! )


certo. algoritmo informatico. pkunzip, per spararne una.




Tu vuoi una roba tipo DNS
Invece di ricordarti il numerone potresti ricordarti una parola 
associata ad esso.
Se la cosa deve essere automatica, beh, per quanto sforzo potrai fare, 
un hash (che è univoco) sarà sempre più difficile da ricordare di un 
numerone (a meno che il tuo numero abbia diciamo più di 30 cifre...)
Altrimenti ti consiglio:
1-Tabella di database con campi "Numero" e "ParolaAssociata"
2-L'utente associa una parola al numero immesso
3-Quando vuole il numero digita la parola.
bye

quello che cerchi, se non ricordo male, si chiama steganografia:
devi costruirti un "alfabeto privato", magari dinamicamente utilizzando 
le informazioni dell'utente.
per es:
1234567890=>IZEASLTBQO
così il numero:
2394 2934 7865
diventa:
ZEQA ZQEA TBLS
se devi rendere mnemonica la cosa usa le sillabe:
1=UN
2=AD
3=EC
4=IS
ecc..ecc...
così 1234 diventerebbe: UNADECIS
4132 => ISUNECAD
ovviamente non hanno senso, ma una parola si ricorda meglio di un numero.
Tecnicamente non c'è bisogno di tante spiegazioni, 1 array di stringhe 
di dieci elementi e il gioco è fatto.
Volendo puoi esagerare e cercare "mappe" di sillabe che insieme danno 
frasi di senso compiuto, ma rischieresti di fare la fine di John Nash.
Cerca steganografia su gugol e troverai un sacco di esempi storici già 
pronti.
--
Dr.Tarr
