01. maj 2001 - 21:36Der er
12 kommentarer og 2 løsninger
hit-liste / grundliggende princip ?
hej.
jeg er interesseret i at finde ud af hvordan jeg nemmest løser følgende opgave:
Lad os sige jeg har en hitliste med 10 navne som er rangeret efter antal stemmer. Man kan stemme på et ukendt antal navne. Alligevel vil jeg altid have en liste med de 10 mest populære.
Hvordan vil man gøre dette. Altså lad os sige at listen var.:
1. bent =10 2. kurt =7 3. eva =7 4. mogens = 7 5. gert = 5 6. per = 5 7. hans = 4 8. åge = 4 9. alan = 3 10. sven = 2
så hvis der foreksempel blev stemt på gert hans kurt gert kurt kurt
ja, så ville det være svært at vurdere hvordan og hvornår kurt skulle komme ind, numindre man har et eller andet sted man gemmer oplysningerne om hvor mange gange man har stemt på kurt.
lad os sige at vi har 100.000 mulige navne. så bliver det jo svært (og uhensigtsmæssigt) at gemme oplysninger om dem alle, hvis man kun vil have en hitliste med de 10 øverste.
hvad vil an i praksis gøre. jeg vil meget gerne se nogle asp eksempler eller høre forslag.
Efter ti år i London, Madrid, Paris og Utrecht kommer Sabios AI-fokuserede program af arrangementer om kundeoplevelser, ‘Disrupt’, for første gang til Danmark.
Set myConn = Server.CreateObject(\"ADODB.Connection\") strSQL = \"SELECT top 10 * FROM stem ORDER BY stem DESC;\" myConn.Open Conn Set rs = myConn.Execute(strSQL) If Not (rs.BOF Or rs.EOF) Then Do While Not rs.EOF
jeg ser ikke andre muligheder end at gemme alle brugere og deres stemmer i en database. Og hver gang der bliver stemt på en bruger lægger man 1 til hans stemmer, som du selv skriver.
Set myConn = Server.CreateObject(\"ADODB.Connection\") strSQL = \"SELECT top 10 * FROM tabelnavn ORDER BY stem DESC;\" myConn.Open Conn Set rs = myConn.Execute(strSQL) If Not (rs.BOF Or rs.EOF) Then Do While Not rs.EOF
nej det er ikke grundliggende kode jeg er interesseret i. I min situation kan f.eks. have 2000 brugere, der hver har en hitliste med deres 10 øverste.. (ud af x antal ukendte)
jeg er derfor nødt til at finde en god metode. Jeg kan sagtens kode skidtet hvis jeg har den rigtige formel...
et eller andet sted er du jo nødt til at gemme oplysninger om de navne (eller whatever) der ligger uden for top-10 - ellers vil du jo aldrig kunne finde ud af om en der fx ligger nr. 1000 måske nærmer sig top-10, hvis den lige pludselig får mange stemmer!
jamen det er jo præsic det der er mit problem.. Men jeg leder altså efter en smart rutine. F.eks. et eksempel hvor man bruger en applikationsvariabel til at tjekke dette eller lign.
mit problem er at jeg ikke vil have 2000 felter da jeg risikerer at skulle have funktionen i 2000 instanser..
Nej det dur nok ikke for jeg ved ikke hvad \"hitlisten\" kommer til at indholde og den er forskellig fra bruger til bruger.. én bruger kan have 4 værdier mens en anden kan have 300.. (og det er ikke de samme)
derfor er du også NØDT til at gemme oplysninger om dem ALLE. Hvis du nøjes med at gemme det i en applikationsvariabel - så ryger dine data jo - hvis fx serveren skal genstartes! Det kan ikke lade sig gøre at lave en statistik uden at gemme noget data om ALT det man vil lave statistik over - om så det er 10000 records eller ej! Sorry pal.... hvis man vil lave statistik over et stort antal fx urls - så skal man også gemme store mængder urls. There\'s no easy way!
ok. jeg har iøvrigt fundet en løsning. (: tak for jeres forslag
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.