19. juni 2000 - 13:48Der er
15 kommentarer og 2 løsninger
randomize, uden de samme tal
har problemer med at den kører i et uendeligt loop, kan i give mig et råd om hvad og hvor fejlen er. Denne her skal kunne udvælge 9 tal, 7 rigtige og 2 tillægstal, i et Lotto system.
'- Tjekker for ens tal sub ifens do while t < 10 if check = Randnum(t) then Randnum(i) = Int(Rnd * 36) +1 check = Randnum(i) t = 0 else end if t = t+1 response.write t loop end sub
En skitse til en løsning: Læg de 36 tal, 1 til 36, i et array, og bland dette grundigt. Tag derefter de 7+2 første. Id'e til blanding: I en løkke bytter du 1'te element med et tilfældigt andet, 2't element med et tilfældigt andet ... og så det 36'te element med et tilfældigt andet. Du er sikker på at få blandet grundigt, og du bliver færdig i endelig tid. Vil du eller skal jeg? ;-)
for i=1 to 9 Randnum(i) = NewNumber(i) Response.Write(i & ": " & Randnum(i) & "<BR><BR>") next
Function NewNumber(i) DIM NytTal, EnsTemp EnsTemp = 1 NytTal = Int(Rnd * 36) + 1 DO WHILE EnsTemp>0 EnsTemp = 0 FOR j=1 TO i-1 IF Randnum(j) = NytTal THEN EnsTemp=EnsTemp+1 NytTal = Int(Rnd * 36) + 1 EXIT FOR END IF NEXT LOOP NewNumber = NytTal END FUNCTION
dim tal(36) randomize for i=1 to 36 tal(i)=i next for i=1 to 36 x=Int(Rnd*36)+1 tmp=tal(x) tal(x)=tal(i) tal(i)=x next response.write "De 7 tal: " for i=1 to 7 response.write tal(i) & " " next response.write "Tillægstal" for i=8 to 9 response.write tal(i) & " " next
Utestet - men ideen er der. Sone: Med din løsning ved du aldrig hvornår du bliver færdig... ;-)
Jeg bliver færdig når jeg har fundet de x forskellige tal. Da der på det y'te tal er (36-y+1)/36 chance for at finde et ikke brugt tal, så er jeg ret sikker på at blive færdig.
Sone jeg prøvede ikke din, da Erikjacobsen påpegede at man ikke er helt sikker på at den så bliver færdig. Men Erikjacobsen din virker, jeg skal bare lige lave lidt om på den, så ikke netscape brokker sig.. Men det er såmænd småting, Mange tak for hjælpen.
Det er da forhåbentlig ikke min algoritme, der får Netscape til at brokke sig.... ;-) Hvad mener du, min stribede ven, hvilken er bedst sones eller min ?? Hehe, I mine unge dage gjorde jeg som sone, helt klart. Man bliver klogere, tykkere, gladere og rigere med årene. ;-)
ARRRGHH!!! UPS! (STORT UPS), det var selvfølgelig din, Erik, jeg mente :o)) Jeg har selv haft brug for den funktion en del gange og aldrig tænkt videre over at det kunne løses så nemt :o))
Klart nok, det er selvfølgelig erikjacobsens løsning der er den rigtige!
Se det kan jeg lide: ros, ros og ros. En meget glad erikjacobsen ;-)))
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.