Próbuję wymyślić sposób, aby obliczyć pozycję. Teraz po prostu bierze stosunek zwycięstw/strat każdego pojedynczego wpisu, np. jeden wygrywa 99 razy na 100, ma 99% zwycięskiej rangi. ALE jeśli pozycja wygra 1 z 1 ogólnej liczby głosów, będzie miała 100% wygrywającą rangę, ale zdecydowanie nie może być wyższa od wygranej 99 razy. Jaki byłby lepszy sposób na zrobienie tego?Algorytm głosowania: jak obliczyć rangę?
Odpowiedz
zależności od tego, jak skomplikowany chcesz to zrobić, zastosowania systemu Elo szachy (lub coś podobnego) może być to, co chcesz: http://en.wikipedia.org/wiki/Elo_rating_system
Nawet jeśli dana osoba zdobyła 1/1 mecze, jego ocena byłaby daleko poniżej kogoś, kto wygrał/przegrał setki meczów przeciwko trudnym przeciwnikom, na przykład.
Dzięki, doskonały zasób. –
jeśli dobrze rozumiem pytanie, wtedy ktokolwiek zdobędzie więcej głosów, ma wyższą rangę.
Nie, zobacz mój komentarz do dball917 powyżej –
możesz również użyć czegoś takiego, aby uzyskać wynik%: score = (wygrana/(wygrana + przegrana)) * 100 – infinitloop
Zawsze można użyć systemu punktowego, a nie wskaźnika wygranych/strat. Wygrywanie zawsze dawało punkty, a następnie można było rozegrać z usunięciem punktów za przegraną, nie przyznając punktów za przegraną lub przyznając mniej punktów za przegraną. Wszystko zależy od tego, w jaki sposób chcesz, aby ludzie byli w rankingu. Na przykład możesz dać 2 punkty za wygraną i 1 punkt za przegraną, jeśli chcesz faworyzować osoby, które biorą udział w grze nad tymi, którzy tego nie robią (co brzmi trochę tak, jak mówisz w swoim przykładzie osoby grającej 100 gier vs 1 gra). NHL używa podobnej techniki do rankingów (2 punkty za wygraną, 1 punkt za przegraną, 0 punktów za normalną stratę). To może dać ci trochę więcej elastyczności.
W ten sposób nowe lepsze wpisy NIGDY nie będą w stanie dogonić starszych, jeśli użyjemy punktów. Zawsze będą mieć opóźnienie, nawet jeśli ich współczynnik wygranych/strat będzie wyższy. –
Tak, jak powiedziałem, zależy to od tego, co chcesz zrobić. Post wydawał się wskazywać, że chciał faworyzować ludzi z większą ilością gier. – dball917
Czy sensownym rozwiązaniem byłoby dodanie większej pozycji do zwycięskiego wpisu, jeśli utrata pozycji początkowo miała znacznie wyższą rangę, np. o wiele silniejszy konkurent?
spróbować czegoś takiego:
votes = wins + losses
score = votes * (wins/votes)
ten sposób coś z 50% zwycięstw, ale milion głosów będzie nadal wyprzedza coś z wygrywa 100%, ale tylko jeden głos.
Można dodać na dodatkowym ciężarem ze względu na wiek (w dniach w tym przykładzie), też coś
if age < 5:
score = score + ((highest real score on site) * ((5 - age)/5)
ten wprowadzi zupełnie nowe wpisy prawo na górze pierwszej strony, a następnie będą przesuwać się powoli w dół w ciągu kolejnych 5 dni (zakładam, że wiek jest liczbą ułamkową, a nie tylko liczbą całkowitą). Po upływie 5 dni zostaną one umieszczone na liście wyłącznie na podstawie wyniku z poprzedniego fragmentu pseudokodu.
Myślę, że masz wynik = głosy * (wygrane/przegrane) – assaqqaf
- 1. FREETEXTTABLE zawsze ma rangę 0
- 2. Jak mogę wdrożyć system głosowania?
- 3. Jak obliczyć T (N) dla tego primes algorytm Finder
- 4. Prosty system głosowania PHP
- 5. Jak modelować system głosowania "lubi" z MongoDB
- 6. Sass: Słuchajcie powrócili do głosowania
- 7. Jak wykonać algorytm MFCC?
- 8. Django Metoda głosowania w górę/w dół
- 9. Skrypt do głosowania w górę/w dół
- 10. Jak obliczyć entropię wykresu?
- 11. Jak obliczyć wyniki?
- 12. Jak obliczyć czas trwania?
- 13. Jak obliczyć współwystępkę słowa
- 14. Jak obliczyć współczynnik klikalności
- 15. Jak obliczyć sumę kontrolną
- 16. Jak obliczyć centroid 3D?
- 17. Jak obliczyć szerokość czcionki?
- 18. Jak obliczyć GMSCamera zoom
- 19. Jak obliczyć FAT
- 20. FPS jak to obliczyć?
- 21. algorytm zlewni w matlab
- 22. Jak obliczyć podobieństwo dwóch liczb całkowitych?
- 23. Jak obliczyć najkrótsze unikatowe przedrostki zestawu ciągów?
- 24. Algorytm dopasowania
- 25. Jak zaimplementować algorytm AO *?
- 26. Jak działa algorytm GZip?
- 27. Jak działa algorytm MD5Sum?
- 28. Algorytm rezystancji pomocniczej - analiza techniczna
- 29. Próbuję znaleźć "algorytm barmański"
- 30. Outline kreślenia algorytm
PS Jedyne o czym mogę myśleć to poprawienie pozycji na podstawie "dojrzałości" wpisu (ile razy suma ta była w konkursie). Z drugiej strony to podejście zakazywałoby wszystkim nowym hasłom zdobywania najwyższych rang tylko dlatego, że są nowe, ponieważ nie dostają najwyższych głosów (dopóki nie "dojrzewają" i ranga nie jest już skorygowana) –