Hur skulle en bit kod se ut som Slumpar fram ett tal och sedan kollar om detta tal finns i en array eller inte?
Om talet finns så slumpar den fram ett nytt tal ända tills ett tal som inte finns med i arrayen kommer upp.
Då fortsätter koden..
Jag vet hur man slumpar, men jag kommer inte riktigt på hur jag ska bygga dessa loopar.
dAEkMedlem sedan feb. 20041 816 inlägg Här är ett sätt...
Om det slumpade talet finns i arrayen slumpas ett nytt tal fram tills att det inte finns i arrayen.
[nedan slumpas ett tal mellan 1-25]
Option Explicit
Dim iArray(13)
iArray(0) = 1
iArray(1) = 2
iArray(2) = 3
iArray(3) = 4
iArray(4) = 5
iArray(5) = 6
iArray(6) = 7
iArray(7) = 8
iArray(8) = 9
iArray(9) = 10
iArray(10) = 11
iArray(11) = 12
iArray(12) = 13
iArray(13) = 14
Dim arrLen, rndNumber
arrLen = clng(UBound(iArray))
Randomize
rndNumber = clng((24-1 +1)*Rnd() +1)
Call chkRndNumber(rndNumber)
Sub chkRndNumber(lngNumber)
Dim i
Dim bMatch
bMatch = false
for i=0 to arrLen
if (CLng(iArray(i)) = CLng(lngNumber)) then
bMatch = true
exit for
end if
next
if (bMatch) then '// talet finns i arrayen, slumpa fram ett nytt och jämför det mot arrayen
Response.write(lngNumber &" finns, slumpar på nytt")
Randomize
rndNumber = clng((24-1 +1)*Rnd() +1)
Call chkRndNumber(rndNumber)
else
Response.write(lngNumber &" finns ej, fortsätt...")
end if
end Sub
PDahlenMedlem sedan apr. 2004778 inlägg * REDIGERAD *
Skräp också. Är tydligen så trött och bakfull att jag inte ens kan läsa den ursprungliga frågan ordentligt.
Men, men. Nedan är i alla fall en funktion för att enkelt kunna slumpa fram något ur en array. :)
En fråga, varför göra en koll om numret finns? Är det inte bättre att ta fram storleken på din array och sedan ta fram en slumpad siffra mellan 0 och arraystorleken. Sedan ta fram det som finns i array(slumpsiffra).
Defitionen av Rnd
Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
Dim iArray(13)
iArray(0) = 1
iArray(1) = 2
iArray(2) = 3
iArray(3) = 4
iArray(4) = 5
iArray(5) = 6
iArray(6) = 7
iArray(7) = 8
iArray(8) = 9
iArray(9) = 10
iArray(10) = 11
iArray(11) = 12
iArray(12) = 13
iArray(13) = 14
Dim arrLen, rndNumber
arrLen = clng(UBound(iArray))
Randomize
rndNumber = Int((arrLen - 0 + 1) * Rnd + 0)
Response.Write iArray(rndNumber)
Tack för svaren!!
Nu fick jag precis svar på det jag tänkte på tidigare!
PDahlen, tanken är att jag ska ta ut 200 (av 3000) poster ur en databas utan att få dubbletter, och då tänkte jag spara in ID't för varje post jag använt i en array. Och sedan kolla om den finns i arreyen allt eftersom jag slumpar vidare