Ich arbeite momentan mit meinem Team an einem kostenlosen Künstler Support Netzwerk. Wir werden Künstlern aus den Richtungen Elektronik, HipHop, RnB und Reggae kostenlosen Speicherplatz für deren Audio Dateien zur Verfügung stellen.
User können die Werke kostenlos runterladen, bewerten, Kommentare schreiben und noch vieles mehr.
Wir wollen auch verschiedene Charts anbieten für die jeweiligen Genres (Wochencharts, Monatscharts, usw)
Ich zerbreche mir nun schon seit Stunden den Kopf über eine vernünftige Berechnung aber ich komme einfach auf keinen grünen Zweig.
Folgende Faktoren sollen in die Charts einfliessen:
1) Das durchschnittliche Rating (1-5) der Zeitperiode (Wochencharts: letzte Woche, Monat: letzter Monat, usw) [wird bis auf 8 Nachkommastellen genau gespeichert)
2) Anzahl der Votes der Zeitperiode (Jeder Vote wird mit Zeitpunkt einzeln gespeichert, nur registrierte Mitglieder können abstimmen)
3) Anzahl downloads der Zeitperiode
Da die Anzahl der Downloads einfach zu manipulieren ist soll dieser Faktor die geringste Gewichtung erhalten.
Das Rating muss abhängig sein von der Anzahl der Votes.
Am besten kann man sich die Problematik an einem Beispiel verdeutlichen:
Code: Alles auswählen
Song | Rating | Votes | Downloads
#1 5 10 15
#2 4,85 20 30
#3 2,5 40 60
Bei einer Formel wie
P = x * Rating + y * Votes + z * Downloads / 3
kommt unweigerlich der als Sieger raus der am meisten Votes und Downloads hat.
Ein anderer Ansatz wäre sowas in der Richtung wie:
P = Rating * (1+(Votes/X)n) + (Downloads/Y)m)
aber auch diese Formel führt leider nicht zum Ergebnis.
Ne Überlegung wäre Wert, dass Rating evtl. als Potenz in die Formel einzubauen aber da stellen sich dann ähnliche Probleme
Ach ja was noch wichtig ist:
Da das nachher von Scripten berechnet wird muss es nicht unbedingt eine Formel sein. Ihr könnt auch gerne in 2 oder mehr Schritten zu ner Lösung kommen.
Ich hatte ursprünglich vor Scores zu verteilen.
Das beste Rating bekommt 100 Punkte
Das zweitbeste 99 usw.
Und dann mit den Scores rechnen.
Aber hat auch irgendwie nicht funktioniert.
Ich wäre für Ideen oder Lösungsvorschläge echt dankbar.
Mit freundlichen Grüßen
Michael S.