Avatar billede tjacob Juniormester
17. december 2000 - 16:08 Der er 17 kommentarer og
1 løsning

15 hurtige point her:

Nu har jeg kæmpet med den her i en halv time, og jeg har lidt småtravlt så:

En Sub eller funktion der kan udvælge 4 tilfældige tal (a, b, c, d) mellem 1 og 8.

NB: De skal alle 4 være forskellige

MVH Tjacob
Avatar billede scb Praktikant
17. december 2000 - 16:12 #1
tal = Int((8 * Rnd) + 1)    \' Generate random value between 1 and 8.

denne linie kører du 4 gange, bagefter sammenligner du de 4 tal og hvis der er ens tal kører du linien igen, til de alle er forskellige.
-SCB
Avatar billede jimmidreng Nybegynder
17. december 2000 - 16:15 #2
Generere 4 tilfældige i Arrayet Donner.
Hent med Donner(1) Donner(2) osv.

Sub Tilfaeldig()
Dim Total, Hej, Donner
Total = \",\"
Randomize Time

For Counter = 1 to 4
    Hej = Int(Rnd * 8) +1
    If Instr(Total,\",\" & Hej & \",\") = 0 then
        total = total & hej & \",\"
    Else
        counter = counter - 1
    End if
Next
donner = split(total,\",\")
End Sub
Avatar billede tdaugaard Nybegynder
17. december 2000 - 16:16 #3
Dim Tal(7) As Integer
Dim idx, r, i, b

Do
  intR = Int(Rnd * 8) + 1

  b = false
  For i = 0 To 7
    If intR = Tal(i) Then b= true
  Next

  if b = false then Tal(idx) = intR: idx = idx +1
  If idx = 8 Then Exit Do
Loop
Avatar billede tjacob Juniormester
17. december 2000 - 16:17 #4
-->SCB
Den havde jeg sådan set grejet, det er sammenligningen bagefter der er problemet.
Hvis du kan komme med den også, sætter jeg pointene op til 30.
Avatar billede tdaugaard Nybegynder
17. december 2000 - 16:18 #5
Upz . .en lille fejl

Dim Tal(3) As Integer
Dim idx, r, i, b

Do
  intR = Int(Rnd * 8) + 1

  b = false
  For i = 0 To 7
    If intR = Tal(i) Then b= true
  Next

  if b = false then Tal(idx) = intR: idx = idx +1
  If idx = 4 Then Exit Do
Loop
Avatar billede tjacob Juniormester
17. december 2000 - 16:19 #6
Hold da kæft, hvor er i hurtige!!
Jeg skal lige tjekke svarene, så er der points om 5 minutter.
MVH Tjacob
Avatar billede tdaugaard Nybegynder
17. december 2000 - 16:21 #7
tjacob:> min er helt fin, men okai ..
Avatar billede scb Praktikant
17. december 2000 - 16:26 #8
Dette giver 4 forskellige tal mellem 1-8

Dim a, b, c, d

a = Int((8 * Rnd) + 1)

Do
b = Int((8 * Rnd) + 1)
Loop Until a <> b

Do
c = Int((8 * Rnd) + 1)
Loop Until c <> b And c <> a


Do
d = Int((8 * Rnd) + 1)
Loop Until d <> a And d <> b And d <> c


-SCB
Avatar billede tdaugaard Nybegynder
17. december 2000 - 16:28 #9
scb:> det er også lidt overkill ...

men anyway ..

(sidder jeg virkelig og kæmper for 15 point!? *jeg må være langt ude*)
Avatar billede scb Praktikant
17. december 2000 - 16:33 #10
tdaugaard:> Ja, hvad laver man ellers en Søndag eftermiddag.
Avatar billede tdaugaard Nybegynder
17. december 2000 - 16:35 #11
scb:> hæ hæ .. tjaa ..
Avatar billede tdaugaard Nybegynder
17. december 2000 - 16:35 #12
hmm .. tjacob ?
Avatar billede tjacob Juniormester
17. december 2000 - 16:37 #13
-->tdaugaard
Din virker ikke  -noget med Tal går fra 0 - 3,
men du bruger i som argument (går fra 0 - 7).

-->SCB
Din virker. Jeg lovede dig 15 ekstra, så jeg opretter lige et nyt spm. til dig.
Avatar billede scb Praktikant
17. december 2000 - 16:44 #14
Hvor mange muligheder er der egentlig, med 4 forskellige tal ud af 8 ?
-SCB
Avatar billede tdaugaard Nybegynder
17. december 2000 - 16:45 #15
:-( ja ..  en lille fejl ..  7 skal erstattes med 3 .. men anyway
Avatar billede tjacob Juniormester
17. december 2000 - 16:51 #16
-->SCB  Det må være noget med 8*7*6*5 = 1680
Avatar billede tdaugaard Nybegynder
17. december 2000 - 16:57 #17
Der er da kun 8*4 forskellige !?
Avatar billede tjacob Juniormester
17. december 2000 - 17:09 #18
Der er 32 forskellige kombinationer af 4 tal mellem 1 og 8, men hvis placeringen er ligegyldig (og det er den; 1234 <> 4321), så er der mange flere.
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