Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    Trovare subito i numeri mancanti di una serie

    Ciao,

    ho un piccolo problema da risolvere in logica di programmazione.

    Ossia io ho un database con tanti messaggi, ogni messaggio ha allegato un hash del tipo MD5 o Sha1 (da decidere).



    Un mio amico ha un altro database con altri messaggio con altri hash.


    Quale è il metodo più semplice, che non richiede lo scambio di molte informazioni tra i due pc, per trovare subito quali messaggi mancano?


    Grazie in anticipo.

  2. #2
    in che formato è il file o db che contiene gli hash?
    file di testo o qualcosa tipo mysql?
    linguaggio preferito?
    PyGTK GUI programming
    un impegno concreto: eliminare la k dalle tastiere italiane

  3. #3
    Utente di HTML.it L'avatar di MMarzia
    Registrato dal
    Mar 2001
    Messaggi
    1,781
    quali db?
    io sono festosamente cicciottello :: e. cartman

    t'amo senza sapere come, nè quando nè da dove,
    t'amo direttamente senza problemi nè orgoglio:
    così ti amo perchè non so amare altrimenti

  4. #4
    bo, non saprei, più che altro mi servirebbe un algoritmo da usare in uno socket, quindi che non scambi tanti messaggi per via della banda.

    cioè, il problema del database è superfluo.

    imho

  5. #5
    Se i due non si sono mai confrontati prima, l'unico modo è passarsi TUTTI gli hash!

    Altrimenti, se la cosa deve essere incrementale, diventa possibile ridurre di molto le trasmissioni segnandosi quali messaggi sono già stati trasferiti e quali no, e confrontare solo quelli alle trasmissioni successive.

    Ciao!
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  6. #6
    °_°


    No, non posso confrontaarli uno ad uno.
    Nessuno ha altre idee?

  7. #7
    prova a mandarti prima un elenco semplice della chiave primaria (credo sia quallo che chiami te hash) quindi fai una
    SELECT chiaveprimaria1 FROM tabellalocale WHERE chiaveprimaria1 NOT IN SELECT chiaveprimaria2 From Tabellaricevuta)
    e otterrai l'elenco delle chiavi mancanti sul locale idem per l'latro verso


    bye
    *** Rachele TI AMO DA MORIRE!!! ***

  8. #8
    Originariamente inviato da LordSaga640
    °_°


    No, non posso confrontaarli uno ad uno.
    Nessuno ha altre idee?
    Fidati, se i due non si sono MAI presentati prima, NON ESISTE altro modo se non che i due si scambino la lista di hash.

    E non è una questione di non volerti aiutare: si tratta di matematica.

    Gli hash sono stati creati perchè fossero:

    1) monodirezionali (ovvero la funzione che genera lo hash non fosse invertibile, e non si potesse quindi recuperare la frase iniziale dallo hash)
    2) caotici (ovvero gli hash di due frasi molto simili fossero molto diversi)

    Queste caratteristiche fanno si che gli hash anche di una sequenza numerica continua siano praticamente casuali, e sia quindi impossibile trovare una qualsiasi regolarità che permetta di risparmiare sulla trasmissione.

    Quindi, è IMPOSSIBILE farlo diversamente, e se percaso tu ci riuscissi, sappi che avresti in mano una miniera d'oro, da rivendere subito ad un qualche servizio segreto...
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  9. #9
    Originariamente inviato da Dardino
    prova a mandarti prima un elenco semplice della chiave primaria (credo sia quallo che chiami te hash) quindi fai una
    SELECT chiaveprimaria1 FROM tabellalocale WHERE chiaveprimaria1 NOT IN SELECT chiaveprimaria2 From Tabellaricevuta)
    e otterrai l'elenco delle chiavi mancanti sul locale idem per l'latro verso


    bye
    Ovvero gli stai dicendo che deve trasferire via socket TUTTI gli hash, esattamente come dicevo io...
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  10. #10
    Originariamente inviato da Shores
    Fidati, se i due non si sono MAI presentati prima, NON ESISTE altro modo se non che i due si scambino la lista di hash.

    E non è una questione di non volerti aiutare: si tratta di matematica.

    Gli hash sono stati creati perchè fossero:

    1) monodirezionali (ovvero la funzione che genera lo hash non fosse invertibile, e non si potesse quindi recuperare la frase iniziale dallo hash)
    2) caotici (ovvero gli hash di due frasi molto simili fossero molto diversi)

    [...]
    E se faccio un hash degli hash ogni 10 messaggi? e individuo così le parti per blocchi?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.