Avatar billede pcdl Nybegynder
07. november 2008 - 09:51 Der er 14 kommentarer og
1 løsning

vis 3 forskellige random numre

er der nogen der ved hvordan man kan få vist 3 random numre som er forskellige ?
Avatar billede softspot Forsker
07. november 2008 - 09:54 #1
randomize
for i = 1 to 3
  response.write rnd() & "<br>"
next
Avatar billede fennec Nybegynder
07. november 2008 - 09:57 #2
Hvis tallet skal være mellem to tal bruges denne formel:
Int((upperbound - lowerbound + 1) * Rnd + lowerbound)

http://msdn.microsoft.com/en-us/library/e566zd96(VS.85).aspx
Avatar billede Slettet bruger
07. november 2008 - 10:09 #3
Men tallene bliver da i Jeres eksempler ikke nødvendigvis tilfældige?


for i=1 to 3
    a=rnd
    b=rnd
      Do While b=a
      b=rnd
      Loop
    c=rnd
      Do While c=b or c=a
      c=rnd
      Loop
Next


Så har man vel sikret sig, at hvis et tal allerede er valgt, så findes et nyt. De tre tal er gemt i variabler a, b og c.

  // Steeven
Avatar billede Slettet bruger
07. november 2008 - 10:11 #4
Hov, jeg mente i første linje: "Tallene bliver da i Jeres eksempler ikke nødvendigvis FORSKELLIGE?"
Avatar billede Slettet bruger
07. november 2008 - 10:13 #5
Nej, nej, nej... Fjern "for...to"-kommandoen:


    a=rnd
    b=rnd
      Do While b=a
      b=rnd
      Loop
    c=rnd
      Do While c=b or c=a
      c=rnd
      Loop

  // Steeven
Avatar billede pcdl Nybegynder
07. november 2008 - 10:38 #6
tak Steeven smid et svar
Avatar billede softspot Forsker
07. november 2008 - 10:45 #7
Nej, selvom det er ret usandsynligt at tallene bliver ens, så har du da ret steeven ;-)
Avatar billede fennec Nybegynder
07. november 2008 - 10:59 #8
softspot >>
Det kommer vel an på hvad tallende skal være imellem. Er det hel tal mellem 1-10 er sandsynligheden ret stor. Er det 1 og 100000000 er den usandsynlig.
Avatar billede softspot Forsker
07. november 2008 - 11:05 #9
Nu var mit eksempel med udgangspunkt i de reelle tal...
Avatar billede softspot Forsker
07. november 2008 - 11:06 #10
...hvilket steeven's også var
Avatar billede Slettet bruger
07. november 2008 - 14:42 #11
Når man beder om nogle tilfældige men forskellige tal, så er det som regel nogle tal, der skal bruges til noget, ikke?
Ja, jeg tog udgangspunkt i alle reelle tal, men vi kan jo lige så godt give en metode, der kan bruges i andre tilfælde også, hvis blot der laves nogle tilføjelser. Så vi også svare på det spørgsmål, der faktisk er blevet stillet, ikke?

Hvis der skal vælges tre tilfældige men forskellige tal mellem 1 og 10, så kan man vel fx gøre sådan her:


    a=Round(rnd*10)
    b=Round(rnd*10)
      Do While b=a
      b=Round(rnd*10)
      Loop
    c=Round(rnd*10)
      Do While c=b or c=a
      c=Round(rnd*10)
      Loop

Så har man udvidet metoden til kun at finde 3 tal mellem 1 og 10.

  // Steeven
Avatar billede erikjacobsen Ekspert
07. november 2008 - 14:46 #12
Eller den simple:

Første tal, vælges mellem 1 og 10.

Andet tal: vælg eet tal mellem 1 og 5 og læg til første tal. Kommer vi over 10 trækker vi 10 fra (11 bliver til 1)

Tredie tal: vælg eet tal mellem 1 og 4 og læg til andet tal. Kommer vi over 10 trækker vi 10 fra (11 bliver til 1)
Avatar billede softspot Forsker
07. november 2008 - 15:07 #13
steeven >> Der er jo ikke nogen grund til at puste sig op :-)
Til tider er det også fint nok, bare at løse det der rent faktisk bliver spurgt om (hvilket så godt nok heller ikke lykkedes helt for mig i min besvarelse - men det er vist mere et spørgsmål om mine evner til at læse...). Det kunne jo være spørgeren rent faktisk vidste hvad han (m/k) ville have... eller er det bare mig der er helt forkert på den?
Avatar billede Slettet bruger
07. november 2008 - 15:36 #14
SoftSpot >>
Enig, enig! Jeg synes da heller ikke, at jeg puster mig op :) Det var i hvert fald ikke meningen.

Erik Jacobsen >>
Er du sikker på, at den metode er simplere? Så skal man jo til at inddrage "if...then"-kommandoer i stedet for "do while...". Det er vel ikke den store forskel. Og desuden skal man også til først at sørge for, at de næste tal kun er mellem hhv. 1-5 og 1-4.


  // Steeven
Avatar billede erikjacobsen Ekspert
07. november 2008 - 15:46 #15
Du ved ikke om din do-while nogensinde bliver færdig, eller hvor mange gange den tager.

Det afhænger helt af anvendelse af tallene, og hvad spørgeren egentlig spørger om, hvad der bedst.

Ellers kan man jo lave et array med tallene fra 1-10, blande det ( med rnd), og tage de 3 første.
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