formula matematica vot rank cu stelute [rezolvat]

Orice discutie care nu se isi are locul in alt forum. Zona off-topic.

Moderatori: cristi, icsfails, Moderatori

Avatar utilizator
Birkoff
Senior Member
Mesaje: 6380
Membru din: Joi Mar 18, 2004 2:34 pm
Localitate: Bucuresti
Contact:

formula matematica vot rank cu stelute [rezolvat]

Mesajde Birkoff » Lun Oct 12, 2009 8:20 am

Ultima oară modificat Lun Oct 12, 2009 11:23 pm de către Birkoff, modificat 1 dată în total.


1) )
2)
3) (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.

Avatar utilizator
Niku02
Senior Member
Mesaje: 837
Membru din: Joi Noi 13, 2008 1:16 pm
Localitate: Constanta
Contact:

Mesajde Niku02 » Lun Oct 12, 2009 9:39 am

Lucrez la o firma de si am un magazin de .

Avatar utilizator
LyVyU VT
Senior Member
Mesaje: 224
Membru din: Lun Sep 29, 2008 8:58 am
Localitate: Râmnicu Sărat
Contact:

Mesajde LyVyU VT » Lun Oct 12, 2009 10:55 am

Pai banuiesc ca un rating mai mare ca 10 nu iti poate returna... Sau chiar daca iti returneaza il faci tu 10.

Pai ai 5 stelute. Ar veni rating/2

1,72/2=0,86 - o steluta
2,33/2=1,165 - o steluta
9,49/2=4,745 - 4 stelute jumate
9,66/2=4,83 - 4 stelute jumate
10/2=5 - 5 stelute

alexcsandru
PHPRomania Supporter
Mesaje: 12
Membru din: Sâm Sep 05, 2009 6:25 pm
Localitate: <?php echo "Here" ;?>
Contact:

Mesajde alexcsandru » Lun Oct 12, 2009 10:58 am

Cred ca asta o sa te ajute... http://www.komodomedia.com/blog/2006/01 ... part-deux/

Am incercat si eu odata , mai aveam o pagina dar nu o mai gasesc :) .

Oricum, totul tine sa reprezinti , poti reprezenta si cu case... :)

iftvio
Junior Member
Mesaje: 45
Membru din: Mie Dec 14, 2005 8:00 am
Contact:

Mesajde iftvio » Lun Oct 12, 2009 4:31 pm

Prin formula data de tine (v/(v+m))*R+(m/(v+m))*C se calculeaza rank-ul obtinut de acel articol. Detaliez putin. Rank-ul in acest caz este influentat de mediile obtinute de restul articolelor precum si de numarul votantilor pentru respectivul articol. Deci (punctez inca odata) - formula asta o poti folosi doar ca sa calculezi rank-ul articolelor (iar pe baza acestui rank poti sa faci un top al articolelor).

Numarul de stelute pentru fiecare articol in parte, reprezinta media aritmetica a voturilor obtinute (adica in cazul tau 159/93 = 1.70).

Deci stelutele se refera la felul in care este vazut acel articol de catre cititorii sai.
Rank-ul se refera la modul in care veste vazut respectivul articol (de catre cititori), comparativ cu celelalte articole.

TOTUSI PENTRU A APLICA IN MOD CORECT ACEASTA FORMULA, VOTURILE CARE SUNT LUATE IN CALCUL TREBUIE SA APARTINA ACELOR CITITORI CARE VOTEAZA IN MOD CONSTANT.

Pe mail ti-am trimis un exemplu in Excel si explicatia aferenta.

Pirahna
Senior Member
Mesaje: 5985
Membru din: Dum Aug 22, 2004 2:04 am
Localitate: la birou
Contact:

Mesajde Pirahna » Lun Oct 12, 2009 5:08 pm

Nu am citit atent articolul, dar uite cum o gandesc eu (ca de obicei, simplu).

1. Ai tabel cu voturi, fiecare vot o sa aiba valoarea pe care i-o da userul dar definita de tine (1-5, 1-100,1-10 sau poate chiar de la 1 la 50). Faci un select avg si ai primit media voturilor.

2. Varianta mai taraneasca e sa selectezi toate voturile sau select sum, dupa care sa imparti manual la numarul de rezultate (num_rows sau count).


Bun, acum ca ai media voturilor, nu te mai intereseaza decat sa o afisezi.
Daca ai doar 5 stelute la dispozitie, cel mai normal lucru e ori sa folosesti DOAR 5 stelute pentru afisare, ori sa folosesti si jumatati (4 stelute si jumatate).

Cat timp valoarea definita de tine corespunde cu stelutele, nu o sa ai bataie de cap (in cazul 5 stelute, valoarea ar trebui sa fie 1-5).

La valoarea mediei ii tragi un round() (cu parametri, cum ai vrea sa rotunjeasca) astfel incat valoarea mediei (care sa zicem ca e 2.72) sa ajunga la 3 sau la 2.5 (in functie de cum setezi tu round, eu il setez sa vina inapoi daca nu ajunge la 2.75).

Si cu valoarea 3 sau 2.5, afisezei 3 sau 2.5 stelute.

Easy.
|

Avatar utilizator
Birkoff
Senior Member
Mesaje: 6380
Membru din: Joi Mar 18, 2004 2:34 pm
Localitate: Bucuresti
Contact:

Mesajde Birkoff » Lun Oct 12, 2009 6:37 pm

multumesc la toti pentru raspunsuri, LyVyU VT mi-a spus exact ce ma interesa iar iftvio m-a ajutat sa inteleg mai bine ce nu intelegeam eu...

Multumesc

formula exacta pentru cine vrea sa stie este asa:

nr_total_de_voturi_pentru_articolul_curent = x
suma_totala_a_voturilor_primite = y
numarul_de_stelute_ce_trebuie_colorate = suma_totala_a_voturilor_primite / nr_total_de_voturi_pentru_articolul_curent

si asa aflu cate stelute trebuie sa afisez pentru articolul curent.

celalalta formula e pentru topul general, asta nu intelesesem eu de fapt...

topic inchis
1) )
2)
3) (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.

Avatar utilizator
jianuovidiu
Senior Member
Mesaje: 516
Membru din: Joi Mar 16, 2006 8:48 pm
Contact:

Mesajde jianuovidiu » Mar Oct 20, 2009 9:41 pm

LyVyU VT nu are dreptate. Daca wmed = 1,72 => tb sa iti dea 1 steluta jumate nu 1.

Demonstratie

Cum R este o medie aritmetica a voturilor => R poate lua valori intre 1 si 5 (interva inchis), deci R este marginit.

Avand in vedere ca m este fix si v este variabil treci la limita cand v tinde la infinit si aplicand analiza matematica de a XI-a obtii ca:

v/(v+m) tinde la 1 cand v tinde la inf

si

( m / (v + m) ) tinde la 0 cand v tinde la inf

Deci, wmed va fi egal cu R cand v tinde la inf. Si cum R aparine [1,5] rezulta ca wmed poate lua valori doar in intervalul [1,5].

Deci poti considera valorile 1,2,3,4,5 ale lui wmed cate o steluta, 2 stelute,...,5 stelute.

Deci, daca ai 1,72 trunchiat in jos obtii 1,5 = o steluta jumate.

mandrivaressurect
Average Member
Mesaje: 97
Membru din: Vin Noi 28, 2008 10:39 pm

Mesajde mandrivaressurect » Mie Oct 21, 2009 12:51 am


Avatar utilizator
jianuovidiu
Senior Member
Mesaje: 516
Membru din: Joi Mar 16, 2006 8:48 pm
Contact:

Mesajde jianuovidiu » Mie Oct 21, 2009 10:22 am



Înapoi la “Discuţii generale”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 12 vizitatori