Visualizzazione risultati 1 fino 12 di 12

Discussione: problema votazione sito in directory

  1. #1
    L'avatar di seneca
    seneca non è connesso Super Moderatore
    Data registrazione
    18-12-2004
    Residenza
    la Città Eterna
    Messaggi
    8,376

    Question problema votazione sito in directory

    in seguito a delle segnalazioni di miei amici, ho riscontrato che la votazione (quella da 1 a 10), che si può dare ad un sito presente nelle varie categorie, non conteggia bene i voti assegnati, almeno nel mio caso: ho fatto la prova per una decina di volte consecutive votando con 10 ed ho visto che il voto non viene modificato (neanche il centesimo di voto), mentre appena si mette un voto 1, subito il voto complessivo viene aggiornato e diminuito. si può risolvere in qualche modo questo problema?

    il link per il voto è http://siti.altervista.org/cgi-bin/r...18158&cid=3210


    -- Aut Roma Aut Nihil!

  2. #2
    L'avatar di chrisbiro
    chrisbiro non è connesso Utente storico
    Data registrazione
    23-03-2004
    Residenza
    Sud-Est Asiatico
    Messaggi
    4,363

  3. #3
    L'avatar di Gianluca
    Gianluca non è connesso Amministratore
    Data registrazione
    15-02-2001
    Messaggi
    18,035

    Predefinito

    Non è possibile comunque votare più volte consecutivamente per un sito.
    Gianluca

  4. #4
    L'avatar di seneca
    seneca non è connesso Super Moderatore
    Data registrazione
    18-12-2004
    Residenza
    la Città Eterna
    Messaggi
    8,376

    Predefinito

    Citazione Originalmente inviato da Gianluca
    Non è possibile comunque votare più volte consecutivamente per un sito.
    è possibile se lo faccio da tot computer diversi, ad esempio in ufficio...


    -- Aut Roma Aut Nihil!

  5. #5
    L'avatar di Gianluca
    Gianluca non è connesso Amministratore
    Data registrazione
    15-02-2001
    Messaggi
    18,035

    Predefinito

    Da quello che vedo, avendo fatto prove con altri siti e controllando il codice non mi sembra esista un problema nelle votazioni tale che i voti pari a 10 non siano contati.
    Gianluca

  6. #6
    L'avatar di seneca
    seneca non è connesso Super Moderatore
    Data registrazione
    18-12-2004
    Residenza
    la Città Eterna
    Messaggi
    8,376

    Predefinito

    Citazione Originalmente inviato da Gianluca
    Da quello che vedo, avendo fatto prove con altri siti e controllando il codice non mi sembra esista un problema nelle votazioni tale che i voti pari a 10 non siano contati.
    forse non ho spiegato bene il problema nel primo post, il voto viene contato nella variabile "numero voti totali" ma la variabile "media voti totali" si aggiorna solo con voti bassi. faccio un esempio pratico:
    il mio sito ha 200 voti totali e una media di 8.97;
    --> se voto 10, il sito ha ora 201 voti totali e la media rimane a 8.97 (quando dovrebbe cambiare almeno di un centesimo)
    --> se voto 1, il sito ha ora 201 voti totali e la media diventa 8.95 (come correttamente deve accadere)


    -- Aut Roma Aut Nihil!

  7. #7
    L'avatar di Gianluca
    Gianluca non è connesso Amministratore
    Data registrazione
    15-02-2001
    Messaggi
    18,035

    Predefinito

    È una questione matematica, non un problema tecnico.

    Se su una media di 8,97 su 200 valori aggiungi un 10 hai una variazione del valore medio oltre la seconda cifra decimale, se ci aggiungi un 1, che è un valore che maggiormente si distacca dalla media attuale hai una variazione che vedi perchè è nella seconda cifra decimale.

    ((8,97 * 200) + 10) / 201 = 8,97[512437810945273631840796019]

    ((8,97 * 200) + 1) / 201 = 8,93[03482587064676616915422885572]
    Gianluca

  8. #8
    L'avatar di seneca
    seneca non è connesso Super Moderatore
    Data registrazione
    18-12-2004
    Residenza
    la Città Eterna
    Messaggi
    8,376

    Predefinito

    perdonami, non vorrei essere pedante con questo thread, ma non pensavo ti mettessi con la calcolatrice a fare i conti e così ho fatto un esempio a casaccio, senza pensare alle implicazioni matematiche... così ora ti riporto i valori reali.
    proprio 5 minuti fa da alcune postazioni differenti ho fatto 8 votazioni dando sempre 10 come voto:
    --> numero voti di partenza: 329 media voto: 9.06
    --> nuovo numero di voti: 337 media voto: 9.06
    non dovrebbe essere ((9.06 x 329) + 80)/337)= 9.0823145?


    -- Aut Roma Aut Nihil!

  9. #9
    L'avatar di Gianluca
    Gianluca non è connesso Amministratore
    Data registrazione
    15-02-2001
    Messaggi
    18,035

    Predefinito

    Tu puoi calcolare una media approssimata assumendo che ogni valore sia 9.06, in realtà non è così perchè è un valore approssimato, per fare un calcolo esatto dovresti avere la somma di tutti i voti ricevuti i precedenza e qui credo si tratti di una questione nè più nè meno che di approssimazione, anche perchè il codice è corretto e funziona regolarmente come si può constatare votando altri siti.

    È chiaro che con una media oltre il 9 porta una maggior variazione un valore pari a 1 che pari a 10.
    Gianluca

  10. #10
    L'avatar di seneca
    seneca non è connesso Super Moderatore
    Data registrazione
    18-12-2004
    Residenza
    la Città Eterna
    Messaggi
    8,376

    Predefinito

    Tu dici che il codice funziona regolarmente per gli altri siti, e infatti ha funzionato anche per il mio (l'ho constatato con i primi voti).
    Mi sono accorto di questo comportamento anomalo solo ultimamente e ti assicuro che c'è, matematicamente parlando: nelle prove di cui ti ho parlato nel post precedente si assume che la media voto sia 9.0600000 e non 9.0634532 o qualcos'altro (c'è quindi un'approssimazione per difetto); e dire che un voto è 9.05 e un altro è 9.07 oppure che entrambi sono 9.06, ai fini della media, è uguale: la media rimane sempre 9.06.
    In ugual modo, possiamo fare l'ipotesi che io abbia una media di poco superiore a 9.05 e il sistema, solo nel visualizzare la media e non nei calcoli, mi approssima all'intero superiore, quindi a 9.06, come mi suggerisci tu; ma anche in questo caso la mia media dovrebbe essere superiore a 9.06 e te lo dimostro: ((9.05x329)+80)/337=9.072551929!
    Comunque se tu mi dici che il codice è corretto, pazienza... è una di quelle cose che io classifico come "questioni di fede" dell'informatica (e ci tengo a precisare che sono ingegnere informatico e dovrei asserire che per ogni cosa su un computer esiste una spiegazione!)
    Stammi bene e colgo l'occasione per farti i complimenti per il servizio che offrite!
    Ultima modifica di seneca : 18-01-2006 alle ore 18.56.49


    -- Aut Roma Aut Nihil!

  11. #11
    L'avatar di Gianluca
    Gianluca non è connesso Amministratore
    Data registrazione
    15-02-2001
    Messaggi
    18,035

    Predefinito

    ((9.05x329)+80)/337=9.072551929

    Il tuo ragionamento effettivamente è corretto, sinceramente non so trovare un motivo a ciò se non in una qualche successione di arrotondamenti e troncamenti che si perde per strada alcune cifre decimali.
    Gianluca

  12. #12
    L'avatar di Evcz
    Evcz non è connesso Utente storico
    Data registrazione
    31-05-2002
    Residenza
    Vicenza
    Messaggi
    5,670

    Predefinito

    se viene usata la "formula"

    ((9.05x329)+80)/337=9.072551929

    si può ipotizzare che per ogni sito sia salvata la "media attuale" e il "numero di voti"...

    ipotizzando magari una memorizzazione nel database con un precisione di 4cifre dopo la virgola... ti troveresti a dover fare la somma in maniera progressiva... e non sommando 80 di colpo... :P

    quindi:
    ((9.05x329)+10)/330=9.052878
    ((9.0528x330)+10)/331=9.055661

    etc... quindi conta molto quante cifre ti porti dietro... e se le arrotondi o le tronchi (se il dato di origine ha un precisione di 4cifre dopo la virgola teoricamente i dati dopo la 4a cifra del risultato non hanno senso non andrebbero considerati... nemmeno con arrotondamenti... :) ... o almeno così mi obbligavano a fare nei corsi di fisica ) :)
    ci sono tante cose da tenere in considerazione e ovviamente quando hai tanti voti, una media molto alta... e stai li a controllare 2cifre dopo la virgola di precisione... fai presto a trovare errori di approssimazione (naturalissimi in qualsiasi applicazione informatica... in quanto sappiamo bene che non abbiamo infinito spazio per memorizzare tutte le cifre che vogliamo :D) :P

    anche se quando la precisione richiesta è molto alta ed il numero di voti non è poi così grande si sceglie di memorizzare "somma dei voti" e "numero dei voti "in modo da avere la massima precisione possibile evitando errori di arrotondamento successivi (un solo round() fatto sul valore risultatante da una divisione :) )...
    Ultima modifica di Evcz : 18-01-2006 alle ore 22.11.58
    There are three kinds of people in this world: people who watch things happen ... people who complain about things that happen ... and people who make things happen...

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •