Avatar billede Slettet bruger
17. marts 2003 - 20:22 Der er 3 kommentarer og
3 løsninger

Trækning af unikke numre

Hej -

Er der nogen der kender en god metode til trækning af unikke numre i en konkurrence?

Jeg har 100.000 lodder, hvor der f.eks. er præmie på 50 lodder. Hvert lod med præmie skal kun kunne genereres én gang.

Jeg ønsker ikke en decideret kode, men blot lidt indsigt i en praktisk metode, der også tager højde for performance, sikkerhed og sandsynlighed etc.

Mvh, Michael
Avatar billede ellebaek Nybegynder
17. marts 2003 - 21:06 #1
hvis det er noget der ligger på din server kan du opbygge det som et array og tjekke om de forskellige værdier er gået, men du kan også bare tage tilfældige tal mellem 1 og 100.000 og så sætte en tæller på, der tjekker hvor mange gevinster der er uddelt...
Håber du forstår...
Avatar billede mortrr Praktikant
17. marts 2003 - 21:20 #2
Ved Database:
Lodderne skal bruge en kolonne til et unikt fortløbende nummer, og en kolonne til om det er udtrukket. (indekser begge kolonner)
Vælg et tilfældigt tal op til 100.000, og udvælg den record der kommer nærmest.
SELECT TOP 1 * FROM Lodder WHERE Udtrukket=0 order by abs(TilfældigtTal-LodNr)
Marker den som udtrukket.

Uden database:
Lav et array med lodnumrene.
Vælg et tilfældigt tal mellem 0 og UBound(array)
Flyt array-member over i et nyt array.
Avatar billede hossein Nybegynder
17. marts 2003 - 21:41 #3
på den måde kan du ha unikke "Random nummer" mellem 1 og 100000:

<%
Maks_nummer = 100000
tot_unikke = 5 'antal tal som skal vises
dim random_nummer, counter, check, unikke_nummers
redim random_nummer(tot_unikke)
randomize
For counter = 1 to tot_unikke
random_nummer(counter) = Int(Rnd * Maks_nummer)+1
for check=1 to counter-1
if random_nummer(check)= random_nummer(counter) then
counter=counter-1
end if
next
next
%>
<p>
<%
For counter = 1 to tot_unikke
response.write "<li>" & random_nummer(counter) & "</li>"
next
%>
Avatar billede hossein Nybegynder
17. marts 2003 - 21:41 #4
det var måske et svar!
Avatar billede Slettet bruger
17. marts 2003 - 23:21 #5
Takker :)

Jeg vil nok lave en randomize mellem 1 0g 100.000, tjekke op i en database om tallet er en 'vinder', sætte et flueben, så tallet ikke kan forekomme igen. Jeg har dog ikke i sinde at registrere samtlige lodder i db'en

men, hvilken database vil i anbefale til dette job?
Avatar billede mortrr Praktikant
17. marts 2003 - 23:26 #6
Hvis det kun er 50 udtrækninger, og du ikke vil gemme alle lodder, så kan det lige så godt være en access database (eller en tekst-fil)

Eller mySQL hvis det skal være gratis.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester