Avatar billede krab Praktikant
16. november 2004 - 13:29 Der er 4 kommentarer og
2 løsninger

Array med random udtræk

Hey..

Jeg har et array, men nogle forskællige tal i, fx.:

2
6
24
5
9
kan være forskællige tal!

hvordan gør jeg så jeg får 3 random tal af disse?? Det samme tal må ikke opstå mere end en gang!..

Håber i forstår, og kan hjælpe.

//krab
Avatar billede krab Praktikant
16. november 2004 - 14:13 #1
??
Avatar billede ellebaek Nybegynder
16. november 2004 - 17:26 #2
<%

str = "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15"
talArray = split(str,",")
checkArr(0) = -1
checkArr(1) = -1
checkArr(2) = -1

Randomize
cont = 0
while (cont < 3)
  tal = int(rnd * UBound(talArray))
  check = true
  for i = 0 to UBound(checkArr)
    if tal = checkArr(i) then
      check = false
    end if
  next
  if check <> false then
    response.write talArray(tal)
    checkArr(cont) = tal
    cont = cont+1
  end if
wend
%>

Ikke testet..
Og vidst ikke den pæneste kode..
men tror da den virker...!
Avatar billede krab Praktikant
16. november 2004 - 19:38 #3
Hey mester...

Jeg får fejlen:

Der opstod en Microsoft VBScript-kørselsfejl (0x800A000D)
Typer stemmer ikke overens: 'checkArr'
Avatar billede krab Praktikant
16. november 2004 - 19:38 #4
linie 5
Avatar billede ellebaek Nybegynder
16. november 2004 - 22:51 #5
laver den lidt om..

prøv det her i stedet...

<%

str = "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15"
talArray = split(str,",")
checkStr = "-1,-1,-1"
checkArr = split(checkStr,",")
Randomize
cont = 0
while (cont < 3)
  tal = int(rnd * UBound(talArray))
  check = true
  for i = 0 to UBound(checkArr)
    if tal = checkArr(i) then
      check = false
    end if
  next
  if check <> false then
    response.write talArray(tal)
    checkArr(cont) = tal
    cont = cont+1
  end if
wend
%>
Avatar billede hiks Nybegynder
17. november 2004 - 15:17 #6
det her er så mit bud:

<%
tot_unik = 3 'antallet af unikke tal
top_number = 10 'her indsætter du Ubound(ditArray)

dim random_number, counter, check, unique_numbers

Redim random_number(tot_unik)
Randomize

For counter = 1 to tot_unik
    random_number(counter) = Int(Rnd * top_number)+1
    for check = 1 to counter - 1
        if random_number(check)= random_number(counter) then
        counter = counter - 1
        end if
    next
next

For counter = 1 to tot_unik
        'nedenstående bør så indeholde ditArray(random_number(counter)) således at indhold af array kan vises
    response.write "<li>" & random_number(counter) & "</li>"
next

%>

/hiks
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