2. Slumpa ut en siffra beroende på sannolikhet... här får du nog fråga nån annan, men här är en "ovettig"
Randomize 'för att det ska slumpas...
while antal1000 + antal500 + antal100 ... > 0
randomValue = 8 * Rnd() + 1
intRandomValue = Int(randomValue)
select case intRandomValue
case 1
if antal1000 > 0 then
Response.write "1000, "
antal1000 = antal1000 - 1
end if
case 2
if antal500 > 0 then
Response.write "500, "
antal500 = antal500 - 1
end if
case 3
if antal100 > 0 then
Response.write "100, "
antal100 = antal100 - 1
end if
end select
loop
Detta är inte den snyggaste koden ... men det var enkelt att göra...
Grejjen är att det hela tar väldigt mycket extra tid... för när en har "tagit slut" ... så kommer var 8:e loop att vara i onödan...
när två, var 4:e .. när 3, var 3/8 ...
det betyder att när det är ett nummer kvar så kommer den loopa 8 ggr (ca) för att få fram just det nummret... vilket inte är spec bra....
Men det funkar.. :)
tills alla har varit använda tills alla står på noll
Men man måste registrera om en blivit använd
gör man lättast mot en databas
Det som är frågan är hur man slumpar fram vilken
man ska ta bäst och alla måste bli använda en gång
D.V.S tex 100 ska komma fram 10 gånger av 14000
och 0 ska komma fram 12669 av 14000
MySQL = "SELECT tal.tal, tal.antal FROM tal;"
Set objRecordset1 = Server.CreateObject("ADODB.Recordset")
objRecordset1.Open MySQL, Con, adOpenKeyset
n = objRecordset1.Recordcount
dim vinstnummer(10)
Dim vinstnummer_antal(10)
Det som finns i databasen
tal 1000 Antal 1
tal 500 Antal 2
tal 100 Antal 10
tal 50 Antal 20
tal 10 Antal 100
tal 5 Antal 200
tal 0 Antal 12000
for i = 1 to n
tal = objRecordset1("tal")
antal = objRecordset1("antal")
alla_tal = alla_tal -- antal
if tal = 0 or antal = 0 then
Else
vinstnummer(i) = tal
vinstnummer_antal(i) = antal
antal_vinster = abs(antal_vinster -- antal)
End if
objRecordset1.MoveNext
next
set objRecordset1 = nothing
Randomize Timer
Slump_tal = INT(RND*alla_tal) + 1
Om slumptalet är mindre än antal_vinster
if Slump_tal =< antal_vinster then
Else
response.write "Ingen vinst"
End if
Den ska välja efter databasen
Om slumpalet är 4 så ska den välja tal 100
Eller om slump talet är 180 ska den välja tal 5
Eller om slumptalet är 15 ska den välja tal 50
Är slumptalet högre än 333 går den in i else
Och skriver "ingen vinst"
Hur ska få till det på bästa sätt?
Alfa
266 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25