Avatar billede ittraffic Nybegynder
13. juni 2006 - 15:56 Der er 19 kommentarer og
1 løsning

Forskellige tal i Randomize

Hej :)

Jeg har 3 Randomize som giver et tal op til 3.

Men jeg vil gerne have at de 3 Randomize ikke kan blive det samme tal altså fx 221 eller 222 osv...

Er der nogen der kan hjælpe med at få lavet så dette kode giver et resultat hvor de 3 tal er forskellige fra hinanden.

Koden:
<%

Randomize()
randNum1 = Int(3) * Rnd + 1

Randomize()
randNum2 = Int(3) * Rnd + 1

Randomize()
randNum3 = Int(3) * Rnd + 1
%>
<% = left((randNum1),1) %><br>
<% = left((randNum2),1) %><br>
<% = left((randNum3),1) %><br>
Avatar billede nielle Nybegynder
13. juni 2006 - 16:02 #1
Randomize skal *ikke* kaldes mere end *1* gang - det bliver ikke mere random af at gøre dette - faktisk tværtimod!
Avatar billede nielle Nybegynder
13. juni 2006 - 16:04 #2
En mulig løsning:

<%
Randomize()
randNum1 = Int(3) * Rnd + 1

randNum2 = randNum1
Do While randNum2 = randNum1
    randNum2 = Int(3) * Rnd + 1
Loop

randNum3 = randNum1
Do While randNum3 = randNum1 OR randNum3 = randNum2
    randNum3 = Int(3) * Rnd + 1
Loop
%>
<% = left((randNum1),1) %><br>
<% = left((randNum2),1) %><br>
<% = left((randNum3),1) %><br>
Avatar billede ittraffic Nybegynder
13. juni 2006 - 16:05 #3
Jamen har det et eksempel på hvordan jeg kan få 3 foreskellige tal ud som max må vøre på 3?
Avatar billede ittraffic Nybegynder
13. juni 2006 - 16:06 #4
Jeg får faktisk 2 samme tal stadig :(

3
2
2
Avatar billede arne_v Ekspert
13. juni 2006 - 16:07 #5
maaske var Do Loop Until mere tydelig end Do While Loop
Avatar billede arne_v Ekspert
13. juni 2006 - 16:08 #6
ittraffic>

hvis du vitkeligt vil fordybe dig i random number generation saa har jeg skrevet
3 artikler om emnet her paa E
Avatar billede nielle Nybegynder
13. juni 2006 - 16:10 #7
Avatar billede ittraffic Nybegynder
13. juni 2006 - 16:11 #8
Okaay tak jeg kigger lige :)
Avatar billede ittraffic Nybegynder
13. juni 2006 - 16:12 #9
Jamen det er ikke asp ?
Avatar billede nielle Nybegynder
13. juni 2006 - 16:20 #10
Artiklerne handler om faldgrupper når man arbejder med randowm-tal. Faldgrupperne har intet at gøre med om man udvikler i C, Java, C# eller som i dit tilfælde i ASP.

Du får lige en version med Do Loop Until:

<%
Randomize()

randNum1 = 3 * Rnd + 1

Do
    randNum2 = 3 * Rnd + 1
Loop Until randNum2<>randNum1

Do
    randNum3 = 3 * Rnd + 1
Loop Until randNum3<>randNum1 And randNum3<>randNum2

%>
<% =randNum1 %><br>
<% =randNum2 %><br>
<% =randNum3 %><br>
Avatar billede ittraffic Nybegynder
13. juni 2006 - 16:32 #11
Jamen det var mere fordi jeg ik har forstand på java osv bruger de også meget sjælendt.

Men det script du sendte mig virker ikke når jeg trimmer tallet til 1 decimal.

altså således:
<% = left((randNum1),1) %><br>
<% = left((randNum2),1) %><br>
<% = left((randNum3),1) %><br>

For hvis jeg ikke trimmer det bliver det til tal med komma'er
Avatar billede arne_v Ekspert
13. juni 2006 - 16:42 #12
<> skal nok laves paa det CInt'ede
Avatar billede arne_v Ekspert
13. juni 2006 - 16:42 #13
Der er kommet en tredie artikel http://www.eksperten.dk/artikler/951 som
kommer lidt ind paa PHP og ASP
Avatar billede arne_v Ekspert
13. juni 2006 - 16:55 #14
f.eks.:

<%
Randomize()

randNum1 = Fix(3 * Rnd + 1)

Do
    randNum2 = Fix(3 * Rnd + 1)
Loop Until randNum2<>randNum1

Do
    randNum3 = Fix(3 * Rnd + 1)
Loop Until randNum3<>randNum1 And randNum3<>randNum2

%>
<% =randNum1 %><br>
<% =randNum2 %><br>
<% =randNum3 %><br>
Avatar billede ittraffic Nybegynder
13. juni 2006 - 17:01 #15
Uha Tak arne_v det er lige hvad jeg spurgte efter :)

Sender du ik et svar? :)
Avatar billede ittraffic Nybegynder
13. juni 2006 - 17:07 #16
Hvad gøre Fix entlig? :D
Har aldrig brugt det før?
Avatar billede dar86 Nybegynder
13. juni 2006 - 17:08 #17
En anden måde du kan lave det på er ved at bruge en function der laver forskellige tal... Vil os gøre det meget nemmere at udbygge hvis du en dag skal bruge flere end 3 tal.


<%
Function NytTal()
tal = Int((3 * Rnd) + 1)
    If Brugtetal(tal) = 1 Then
        NytTal = NytTal()
    Else
        NytTal = tal
        Brugtetal(tal) = 1
    End If
End Function

%>

<%= NytTal() %>
<%= NytTal() %>
<%= NytTal() %>
Avatar billede dar86 Nybegynder
13. juni 2006 - 17:14 #18
Glemte lige:

Dim Brugtetal(3)
Randomize()

skal sættes ind før funktionen
men ellers virker det :)
Avatar billede arne_v Ekspert
13. juni 2006 - 18:44 #19
Fix konverterer til heltal - jeg troede egentligt at det var CInt, men jeg
har brugt Fix i den sidste artikel og det er der sikkert en grund til.

Jeg kan godt ligge et svar, men det er faktisk nielle som har bidraget mest
(kun kalde randomize en gang, loekker som fortsaette indtil unik) - jeg
har kun bidraget med den sidste detalje (konvertering til heltal)
Avatar billede nielle Nybegynder
14. juni 2006 - 17:02 #20
Det var da også en rigtig doh af mig at glemme den :^)
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